Jump to content

infinitenothing

Members
  • Posts

    372
  • Joined

  • Last visited

  • Days Won

    16

Posts posted by infinitenothing

  1. That looks like the LINX libraries designed for targeting either RasberryPis or Arduinos. It's certainly a fine option for I2C depending on what you're doing but you wouldn't be using an MCP2221. It looks like you  might have found something more suitable in this thread: 

     

  2. In my experience SQLite will be much slower than TDMS. My recommendation is to reshape whatever array you have into a 1D array and then that can be your waveform. Store the image dimensions in metadata. Indexing is not challenging. You can get the the waveform size out of the channel properties (NI_ChannelLength) and divide that by how many pixels are in each image to get how many images are in your TDMS. You can pull out a given image index by multiplying the image index by the image pixel count and feeding that into the offset input for TDMS read and using the pixel count for the count input. Everything takes in i64s so you don't have to worry about large indexes. You just reshape the 1D array the read.

  3. In the COVID supply chain shake up, we saw some of the dangers of being so dependent and locked into NI and the blackbox that is LabVIEW so we're trying to do more custom design on our own. I've been doing some cool stuff with Python and Verilog. One of my co-workers is doing more with micro-controllers.

  4. Option 1:

    1. Find your 2 nearest W points (minimum Euclidian distance)
    2. Find where on the line between those two W points that's perpendicular to your unknown point
    3. Use 1D interpolation between the two W points to estimate the W point's value.

    Option 2: Because W1,W2, and W3 are not colinear, you can define a surface between them. The approach would be somewhat similar to the above:

    1. Find the 3 nearest points and use them to define a surface. 
    2. Find the cross product of the two vectors give you a normal to the surface
    3. Find the cross product of the normal and your unknown point. That should give the point on the surface that corresponds to your unknown point.

    Based on what you drew (your points were nearly colinear), I expect the second method to be very sensitive to noise and thus somewhat unstable and inferior to method 1.

  5. That part that's still confusing is that it looks like you have just one independent variable (time). If that's the case, that's just 1D interpolation. Also, your time vs x and your time vs C look like it has one slope so potentially, that's even more simple in that it's just a simple Y=m*X+b calculation. Also, it's not clear how much of this is calculable offline (no real time required).  Also, your original example used extrapolation and it's not clear if that's a requirement.

  6. I don't quite recognize that node. It looks a bit like a delay node.

    Regarding the transfer function, you can always use something like the central difference to approximate the derivative and simpson's rule to approximate an integral. Once you have those, you can take the derivative of the derivative to get the higher order derivatives and so forth.  Here's an example using slightly simpler approximations:

     

    transfer function.png

  7. I don't think you're going to find an easy way to transfer this automagically to FPGA. You're going to have to break it down into developing your own nth order derivative and integral functions. Are you using compact RIO? If you don't need a crazy fast loop rate, you should be able to simulate your FPGA code as HIL running in RT which would make the development a little faster.

  8. I see no downside to learning a new language on the side. Even if you never use it professionally, it's still fun to learn new things and it will certainly help you think in different ways. My suggestion is to use the languages that keep you close to hardware:

    C++ with Arduinos. This lets you connect to other chips that will give you your ADCs, DACs, GPIO, etc.

    Python with the Raspberry Pis and other single board computers

    The LINX toolkit lets you get your feet wet with the above hardware in LabVIEW. You can go back and forth and see how each tool handles the same task.

    Verilog so you can get back to graphical programming with the IP integrator. This will also get you high speed ADCs and DACs if you need that performance.

    In other good news, you're now forced into a clear line between the UI and the backend. I suggest Javascript/HTML for the UI.

  9. Hex display shows each character of your string as two alpha numeric values. For example, if I wanted to show "My string" as hex it would show "4d7920737472696e67" where 4d was the M, 79 was the y. It's useful for undisplayable characters and things like that

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.