Bluetooth data aquisition

Hello everyone !
I'm currently working on a project for my thesis and I need to aquire data over bluetooth to my PC, using labview.
I have to say that I never used labview before and that I actualy never really learned how to use it... I read this tutorial on how to develop a bluetooth application but I'm quite confused...
The project is an instrumented shoe containing 8 force sensors that send its data over a RN-41 bluetooth module to my PC. When the shoe is "on", the bluetooth module is automaticaly powered-up and working. My PC is supposed to: be able to power-on the shoe and to power it off; aquire the data send by the shoe and to display it on the screen. So basicaly, the program will contain one on/off button, an image of a foot with 8 color boxes (one for each sensor) changing color depending on the force applied on the sensor, 8 boxes that will display the data of each sensor.
Thus said, and after reading the tutorial: I "just" have to creat a "client "application that will open a connection using the mac address of the bluetooth module, send/get data and display it, right ? There's no need for me to create the "server client" ?
Like I said, I never really had any programming/developping lessons...
Thanks =)

Hi ThiCop,
To answer your questions: i ment that the pic has to receive data from LabVIEW in order to transmit its data to LV.
You have to know that the DAC from the PIC has a resolution of 10bits. 
The PIC itself sends 16 bits to labview, 10 for the data, 3 non-used and 3 for the adress.
So, the data sent by sensor1 will be like 1111111111 (data) 000 (non-used) 000(adress); decimal value = 1023
Data sent by sensor2 will be like 1111111111 (data) 000 (non-used) 001 (adress); decimal value = 9215
Data sent by sensor3 will be like 1111111111(data) 000 (non-used) 010 (adress); decimal value = 17407
Etc...
We calculated the values in decimal, corresponding to each sensors, and imagined a way where LV would compare each value and if the value is, for exemple inferior or equal to 1023, then it's corresponding to sensor1 and will display it value on a specific graph.
And then, we wanted to insert an image of a foot in labview with colorboxes for each sensors, changing color corresponding with the data values.
Hope the flowchart will help.
Best regards
Attachments:
flowchart labview.pdf ‏146 KB
flowchart circuit.pdf ‏71 KB

Similar Messages

  • Wireless Data Aquisition

    I wanted to begin doing data aquisition wirelessly and was wondering how I would go about it. I am currently using scxi modules for my signal conditioning and a USB Data Acquisition and Control Module for the SCXI. I have read about using a something called a MiniDAT by ViaSat to connect a DAQcard to achieve wireless data acquisition capabilities but I can't find any information on the MiniDAT or if it is even still in production. Any suggestions or info about the MiniDAT would be appreciated. Thanks

    Hello Postemun
    Take a look at the TDK Blu2i module.
    I'm using this in conjunction with LB7.1 apps I've written for PDAs and PCs with bluetooth capability and it is designed as serial cable replacement, although it also has some rudimentary analogue and digital DAQ.
    In cable replacement mode it effectively converts a dumb serial device for wireless operation. Obviously there is a bandwidth issue if you're trying to get large amounts of data out of your DAQ unit ie high sampling rates, so you're limited to lower end serial comms speeds.
    The other issue is distance. How far away is your pc going to be from your wiress DAQ kit? Another alternative is to use 802.11 based serial modems for longer distances, although comms is still limited to se
    rial speeds. This website may be of interest:
    http://datahunter.com/
    Cheers,

  • Creation of Daemon for the DTO  for the real time data aquisition

    Hi i need help how to create a daemon for the DTP in the real time data aquisition.i'm learning now Sap and practicing a lot to be professional but i need a bit of hel.Can you please give me some details how to create it?
    I have to access the RSRDA T-code and what i need to do after?

    Hi First of all you need to create a real time DTP once that is done go to RSRDA T-code and click on the Create Daemon
    and right click assign DTP , here you can assign the DTP once that is done save and execute . your Daemon will run
    Thanks
    Santosh

  • I would like to use your 6035E with Matlab, Data aquisition toolbox.

    What drivers do I have to have to use the 6035E AD card with Matlab, Data aquisition toolbox?
    thanks

    You will have to check with Mathworks and see if they have a driver for that board that works with their software.
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments

  • Resizing window affects data aquisition

    Hi Guys, got a really annoying problem that I've been trying to solve for about 2 weeks now, I'm hoping someone will be able to help me.
    We communicate through a dll to our data aquisition box (custom). Our custom data aquisition box has an array which we read in a timed loop every 20ms (although the array is present for around 50ms), once read we send a command saying that we have read the data.
    Once we've read the data we put it into a queue. The logger then reads from this queue, all works fine on a normal run. However if we resize any window (not just a labview one) this seems to knock out our Timed loop. i.e. we miss 1-2 arrays worth of data (50-100ms). This is strange as we have it in a Highest priority VI running in the "Data aquisition" thread. We also do lots of other things i.e. read from a TDMS file and read/write to global variables and display data on a graph, this doesn't seems to have much of an affect on the timed loops, its just when we resize a window. Obviously we do not want to risk losing critical data, so we need a way of stopping this from happening?
    Its almost as though the VI is running in the User interface thread and is a lower priority than the resize window method.
    Does anyone have any ideas on how we can solve this issue?
    Thanks in advance
    Joe
    We are collecting data at 1Khz and our Dll is thread safe and is set to "run in any thread".
    Using Labview 2009f3

    Hi Guys,
    Thanks for all your replies. Sorry for late reply, I was out the office yesterday.
    Unfortunately i can not post my source code however i have made a small mock up of how the system generally works, to give you an idea.
    josbone: Our dll is classed as thread safe and we have it running as such - i thought this could be the case to start with. I presume because it is classed as "any thread" it could still be running in the UI thread though?
    Tinnitus: I have attached a mock up that shows the main points in the system. I think I got a little confused on my previous reply. The DAQ holds the data there for 50ms and that is our only chance to read the data(more data comes through and our buffer can only hold 50ms worth). Which if the Timed Loop executes at 20ms should be fine.
    DFGray: I got really excited reading your reply - it sounded like it was a great fix, however, unfortunately it did not work
    Hope the mock code helps
    Regards,
    Joe
    Attachments:
    Streaming example.zip ‏90 KB

  • Can I download the instrument Control and Data Aquisition Device Driver CD for 7.1?

    Greetings,
    Can I download the instrument Control and Data Aquisition Device Driver CD for 7.1?
    I'm trying to find out if I can download
    the instrument Control and Data Aquisition Device Driver CD for 7.1. Instead of downloading all the upgrades?
    Is there a link to the image file for this CD?
    TIA

    Sam,
    Unfortunately, the Device Driver CD is not available for download. However, your Technical Sales Representative should be able to send it to you (Contact Information).
    Spencer S.

  • Dynamic data aquisition on USB-6212

    I am using USB-6212 to aquire (AI) and control (DO) from/to 8 UUTs. It works perfectly. What I want to do is dynamically launch my daq vi for each UUT that will acquire AI and DO data for its respective lines.
    For example, I launch UUT-1 daq vi to get AI data from ai0 and DO data to p0.0, p0.1 and p0.2. Then launch UUT-2 to get data from ai1 and data DO to p0.3, p0.4 and p0.5 at different times.
    I want to be able to launch and stop daq at my will.
    Here is the problem. So, I tried launching VIs dynamically, which works ok. But, data aquisition is not working. It works for the first launch of the daq vi. For the other UUTs, it give me this error:
    Error -50103 occurred at DAQmx Start Task.vi:2
    Possible reason(s):
    NI Platform Services:  The specified resource is reserved. The operation could not be completed as specified.
    Task Name: _unnamedTask<15>
    So, my question is, can this be done? Would USB-6212 support dynamically allocating task resources on DAQmx?
    I have attached my main launch vi and daq vi block diagrams. Any help/feedback is appreciated.
    Attachments:
    MainLaunch vi.png ‏35 KB
    LaunchTest vi.png ‏43 KB

    Hi sbk143,
    The 6212 only has a single analog input timing engine, so you cannot run more than a single analog input task at a time.
    What you can do is acquire from all of your AI channels in a single task, then programmatically index out the channels that you are interested in.
    Your approach would work for software-timed DO, so you can control the UUTs independently at different times.
    Best Regards,
    John Passiak

  • Bluetooth Data........

    Hello All,
    I have a problem,In My N72, I have 1 gb memory Card and there are 456Mb free.
    But I'm not able to transfer data by bluetooth.
    Please tell me what is the problem.
    I think that what i had already transfered is occupying all device memory. And there is no option to save it to Memory Card from Message Inbox.

    Not entirely sure where you're getting this problem.
    The common place is with the Music Manager: you need to locate the settings in Music Manager and change the music file location on the phone to be the card.
    For messages, go to options, settings, other and select "Memory Card" for "Memory in use".

  • Use of Typecast in Receiving Bluetooth Data

    Hi everyone, I am trying to establish communication between a Bluetooth transmitter (Server) and a Bluetooth receiver (client) located in a PDA, and display the result on the PDA.  I have already setup the PDA and am able to delpoy applications to it from LabVIEW, and successfully establish pairing between the transmitter (via server address of the transmitter) and reveiver inside the Bluetooth.  The only thing remaining is to capture the data on the receiving end.  The Bluetooth transmitter is sending the datain the folllowing way:
    Header of FFFF followed by the actual 8-bit data, then a 1 second delay.  Then repeat.
    I am looking at the Bluetooth Client example given in the LabVIEW examples folder  My main question is what exactly the use of the Typecast function is in this specific program (specifically what the interger "4" wired to type is used for).  I have a slight understanding of it, that it is used to convert between data types.  I am failing to see what it is used for in this application. 
    My understanding is that the incoming data is binary, so I wrote a vi to look for the FFFF string, then capture the string after the FFFF header and extract that value.  I will then need to convert it to decimal which I know how to do, then display that value.  I will of course have to integrate it into the Bluetooth vi so the incoming string is real time   Would something like this work, or do I have to use the typecast function?
    Any suggestions on my methodology and the use of typecast in this application would greatly be appricated.  Thank you.
    Attachments:
    Bluetooth.vi ‏19 KB
    Logic Operation Test.vi ‏8 KB

    The example code is set up for a protocol completely different than what you are doing, so you can't simply copy it and hope it works.  The example code expects that the other side will send a 4-byte header containing the number of data bytes that follow, then send the data.  The example code first reads that 4-byte header, casts it to an integer, and reads that number of bytes (the second Bluetooth Read).
    When you run this with your device, the first read gets your 4 bytes - FF FF 22 33 - and converts that to an integer.  0xFFFF2233 is decimal 4294910515.  So you then try to read this huge number of bytes and you get an error - looks like error 1, an input parameter is invalid, because you can't read 4GB at once.  You can probably get your code working with a single Bluetooth Read, with a 1 second timeout (because you have a 1 second delay between packets).  You'll want to wire in some number of bytes to read that is at least the size of the largest packet you ever expect, but don't use a ridiculously huge number that generates an error.  LabVIEW will return as many bytes as are available when the timeout expires, even if it isn't as many as you asked to read (you might also get a timeout error, though, which you'll need to clear).  You can then do whatever you need to do with that data - search for FF FF, typecast anything after that to array of U16, display it. 
    The output of the Bluetooth Read is a string, but it's not text - it's exactly the bytes that were sent.  The Y with the dots over it is the way ASCII 255 (0xFF) displays (at least in that font).  ASCII 34 (0x22) is ", and ASCII 51 (0x33) is the number 3.

  • DAQmx :: Continous reading of the last 10 values of a continous data-aquisition at a fixed point

    Hello,
    I am using a NI-PCI 6259 for generating and aquiring data.
    The other configuration is:
    - LabVIEW 7.1
    - DAQ 7.3
    I need to measure three anaolg channels, and generate an analog output. Additonally I need to read some values over the RS232. The whole activity should repeat every 30ms. To get this, I am using a timed loop at the moment. I generate a clock with counter 0 and read it with counter 1 for the timed loop. Inside the timed loop I start/stop a finite aquisition for the three analog channles and the RS232 reading. The fastest aquiring supported by the RS232 is an iteration every 30ms. Without the analog aquisition the system runs without any dropped loops. By adding the analog aquisition the timed loop dropps 2-5 loops every 1000 iterations.
    I think the problem is the repeated start/stop of the aquisition. Maybe a solution is a continous aquistion by reading out the last 10 values of the buffer every start of the timed loop. But all my tests failed, because of the FIFO design of the buffer. When I start a continous aquisition outside the timed loop and read 10 values inside, I always have the first 10 values of the buffer, not the last ones.
    Does anyone has an idea, how to read loop the last 10 values of a continous aquisition inside a timed ?
    Thanks a lot for your help.
    Best regards,
    Michael
    Attached you will find the actual state of the testprogram. Because the aqusition should be in the last quarter of the generated output value, the values of the loaded waveform (output) are four times resampeled and the clock has four times the speed of the aquisition, which generates a timing event every four clocks.
    Attachments:
    Datenerfassung.zip ‏3047 KB

    To address your main issue you might try using the DAQmx control Task VI right after you call the Timing VI (outside the timed loop) and set its value to commit. This allows for more efficient starts and stops. Some other things I saw in your program which might make it a little easier and use less HW. First, you shouldn't need to create a CO task on ctr0 and then feed it to the timed loop using ctr1. Why don't you just use the Frequency personality of the timed loop? That way you will only use one counter. If you want to use the 2 counter method then to avoid using external wiring as the source for counter 1 in the timing source VI use CTR0/internaloutput. This is an advanced property for the terminal I/O control so you will need to right click on the constant and select I/O filtering. Finally, when you specify your create channel for the AI Voltage why are you doing this in a for loop. You can just have one channel string Dev1/Ai16:18 and that will create all 3 channels with the same information. Hope this helps
    StuartG

  • Nokia 2600C2 connectivity through bluetooth/data c...

    iunderstand this modle cannot be connected via data cable. When i connect through bluetooth i get the following msg authentication failed & when i try through one touch access i get the msg bluetooth modem not installed i have installed Nokia PC suite version 7.0.8.2 & also blueSoleil 2.6.0.9 Release 070606 Stack Version 06.03.29.20061212.
    Pl tell me how to proceed from begining . My Operating sys Windows XP SPII,i have external bluetooth adaptor

    According to one of the reviews on this page yes it is possible and works with Macs and PCs.
    Works great as a Bluetooth modem with EDGE service on T-Moblie using both Macs and PCs.

  • PROCESS CHAIN FOR REAL TIME DATA AQUISITION

    hi,
    how can i create a process chain for dso which is getting data from xi push
    i created a deamon which is having both infopackage and reat time dtp
    now i want to close the request for 24 hours
    i have 10 dso's in this way
    how to create process chain for this?

    hi,
    how can i create a process chain for dso which is getting data from xi push
    i created a deamon which is having both infopackage and reat time dtp
    now i want to close the request for 24 hours
    i have 10 dso's in this way
    how to create process chain for this?

  • How to solve delay in a program with data aquisition and processing

    Hello, I am a starter in Labview programing. I am working on a system which contains a roller, a piston and a A/D cart which is from Data Translation Inc (DT304). I am using labview to get speed data of the roller (which is voltage first then be converted into speed) from Analog Input Channels, and then using Analog Output Channels to control the friction force being appylied to the roller by using a piston.
    I am using a Waveform Chart to show the speed of roller. However, as I am adding more components to the program, I always get delay in the speed display and also the output control of the piston. Also, as I spent more time using the program eg. from morning to night, it became slower too.
    My question is, how does labview store data and how are the data been stored and released in the buffer.Is it because I am loading too much data in the buffer so that it became slower? And also how to solve these delays?
    I am using the "save to file" function to write data to a ".lvm" file, but I did some changes to the saving by using a button to enable and disable saving. So I don't think the problem is because I am always saving the data into a file.
    Thank you very much.
    Jessie

    I'm betting it's two things:
    1. Program Architecture
    and 2. Dynamically resizing arrays.
    With the program architecture... if you have one do-while loop that acquires data from teh DAQ, processes it, opens/indexes/writes/closes a file, then comes back around... as your arrays and files increase in size, the loop is going to take longer to execute.  A Producer-Consumer loop (a good tutorial on them can be found here) has one loop that acquires data and stuffs the data into a queue.  This will buffer the data while it's in transition between acquisition and processing.  A second loop in parallel takes data in from the queue, processes it, then comes back around.  The two loops operate independently of each other, so even if the consumer loop takes longer as the files or math gets more complex, the producer loop continues to run full speed.
    Second is the arrays.  Every time you append data into an array, LabVIEW has to make a copy of the data that's in the array.  If you append small amounts of data to an array over and over and over again, eventually LabVIEW is going to be copying very large amounts of data over and over and over again.  The producer-consumer architecture can alleviate this problem.

  • N73 - lack of bluetooth data

    Does anybody know why Nokia have stopped providing Signal-Strength and Battery-Status information over bluetooth for the N-series phones?
    This information gets used on hands-free car-kits which have displays. I have found it very useful.
    It seems that the simpler/cheaper phones all provide this informaiton, but the 'leading-edge'/expensive phones don't! Haven't Nokia got this the wrong way around?
    My previous phone, 6822, provided all this information. But my N73 doesn't! Which one is the 'smart' phone?

    I transfer media files between my Lumias 920, 820 and 800 all the time without going through an intermediary. Can you please provide a little more detail of the difficulty you are having in transferring files? Note that you need WP7.8 to share media files on the older WP7 phones. 

  • Data aquisition from spectrophotometer in two analog channels, X-Y plot

    Dear colleagues!
    I am new to LabView and I am only starting to learn the system (I have never been a programmer, I'm a chemist to be precise).
    I have before me a task to interface an old analog scanning spectrophotometer to PC via LabView.
    It has two output analog channels: one is wavelength (two ranges, currenlty let it be 190 to 390 nm; it reads on multimeter as 0.19-0.39 V range) and another one is absorbance (0-1V range). An UV spectrum sholud be an X-Y graph wherein X is wavelength and Y is absorbance.
    I am able to read one channel OR another. I am able to read BOTH channels simultaneously, but how can I plot them AGAINST each other, not against TIME?
    I am using DAQPad-1200 (LPT interface) and LabView 6.1 (that's why I am unable to read most of the VI's posted on the forum ).
    Is such an interfacing even possible given my software and hardware limitations???
    Thank you all in advance!

    Thanks a lot, johnsold!
    I am now able to get something which looks like an UV spectrum! %)
    1. I will post an image (later); however, my primary objective is to get two columns of numbers, not necessary to see an X-Y graph onscreen.
    2. Without inserting arrays like I did LV always tells about error connecting this data line from two channels to save "2-D data to file" option telling me that input is 1D!
    3. I have a manual for the device, it has all of the schematics. I am no electrician though. I will post scanned circuit diagrams then when I manage to scan them.
    Now I see two more opportunities to control the device.
    A. There is a circuit (+12V DC) on the rear of one of the modlues, which, if shorted for at least 500 milliseconds (according to Tracor manual) can initialize automatic scan. How can this be done using Labview and DAQ device? My first guess is to use an analog output and some kind of a relay, either electromagentic or semiconductor one. Is there any other possibility?
    B. In my code I am always asked to write to a file after I initialize the sequence. Can this be done AFTER the sequence is finished?
    C. Finally, is it possible to automatically stop the While loop when the number generated by shift register becomes equal to 190?
    Here are attached a new code and a sample of data.
    Attachments:
    Tracor970A-v1.0.vi ‏53 KB
    UV-test-01.txt ‏15 KB

Maybe you are looking for