8回答

1收藏

[大赛作品提交] 基于LabVIEW的树莓派数据采集(DAQ)和简易示波器

Raspberry Pi Raspberry Pi 17593 人阅读 | 8 人回复 | 2017-12-30

本帖最后由 ky123 于 2018-1-31 14:08 编辑

首先十分感谢e络盟提供的比赛赞助基金。

一、项目名称:
        基于LabVIEW的树莓派数据采集系统(DAQ)

1.原理介绍和搭建环境教程
由于树莓派本省没有AI和AO,手上正好有一块ST的Nucleo F103,所以利用STM32F103的AI做了数据采集的前端,通过SMT32的SPI接口和树莓派的SPI接口相连,采集到的数据不做处理直接送到树莓派。这里STM32F103作为SPI的Slave端,树莓派作为Master端。STM32F103利用mbed现成的SPI Slave程序修改一下即可,这里偷懒了!树莓派部分利用MarkerHub的LINX工具搭建了可以运行在树莓派上的LabVIEW程序。程序比较简单,利用SPI读取到的AI数据利用LabVIEW的chart显示出来。但是在搭建环境这一块比较坎坷,下面一步一步给大家介绍搭建的步骤:
第一步:安装树莓派操作系统 Raspbian。可以利用先下载image文件在利用 Win32 Disk Imager写入SD卡安装,也可以先安装NOOBS,然后在线安装Raspbian,建议用Win32 Disk Imager安装,感觉快一些。不要在线安装比较慢,系统iamge文件下载地址:https://www.raspberrypi.org/downloads/raspbian/
第二步:安装LabVIEW和LINX。
首先安装LabVIEW,建议安装LabVIEW2014以上版本会自带VI Package Manager,这样就可以在VIPM中搜素LINX直接安装了。
安装完LINX后,就可以用网线连接树莓派安装开发环境了。
第二步:在树莓派上安装LINX环境,由于LabVIEW使用的G语言,不能直接在嵌入式系统中开发和运行,之前NI有一个vi转换成C的工具包,然后利用keil把C代码编译成hex或bin下载到MCU中,但是目前这个工具包不在更新了,目前主要利用LINX在嵌入式系统中需要安装一个runtime来运行你的LabVIEW代码,具体的细节可以参考LINX的说明文档:
https://www.labviewmakerhub.com/ ... misc:linx-internals
下面介绍怎样在你的树莓派上安装LabVIEW的运行环境LINX:
       a)、打开LabVIEW->Tool->MakerHub->LINX->LINX Target Configuration            
       b)、在打开的界面中的Hostname or IP中输入raspberrypi,我是直接用SSH或直接接显示器设定IP地址,我尝试了用raspberry访问但是每次都失败,可能是域名解析的问题,建议直接用IP地址访问。在Username中输入pi,在Password中输入raspberry,然后点击connect,然后就可以连上了。右下角会显示树莓派的logo和IP地址,然后点击Install Software按钮,开始安装LINX的树莓派端的LabVIEW的运行环境。安装前需要让你的树莓派利用WiFi联网,需要从网络下载LINX运行环境都树莓派。
      c)、安装后应该可以运行了,但是我发现总是来LabVIEW中总是链接失败,经过艰难的探索发现LINX原来是支持raspberry和BBB( Beaglebone Black),在安装后动态库文件需要指定依赖关系,需要用SSH在树莓派下运行一下指令:
cd /srv/chroot/labview
sudo schroot --run-session -c lv

这样你就进入了LINX在树莓派的运行环境,然后运行
cd /usr/lib
ls liblinx*

这里应该可以看到liblinxdevice_rpi2.soliblinxdevice_bbb.so 这两个文件就是分别对应树莓派和BBB,下面把文件指定为LINX Device,运行
ln -s ./liblinxdevice_rpi2.so ./liblinxdevice.so.
然后就可以用LabVIEW顺利连接上你的树莓派开始开发你的程序了。
2.系统版本
Raspbian Stretch with desktop  November 2017版
3.应用源代码(根据自身项目实际情况填写,以文档txt的形式);
STM32F103部分读取AI,通过SPI接口把数据送给树莓派
  1. /* Example of Reading all the ADC pins available on the Nucleo_F103RB.

  2.   By Joseph Ellsworth CTO of A2WH
  3.   Take a look at A2WH.com Producing Water from Air using Solar Energy
  4.   March-2016 License: https://developer.mbed.org/handbook/MIT-Licence
  5. */

  6. #include "mbed.h"

  7. // Host PC Communication channels
  8. Serial pc(USBTX, USBRX, 115200); // tx, rx



  9. AnalogIn   pa0(PA_0); //Analog input channel 1
  10. AnalogIn   pb0(PB_0); //Analog input channel 2


  11. DigitalOut myled(LED1);
  12. //SPISlave device(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS);
  13. SPISlave device(PA_7, PA_6, PA_5, PA_4);//spi_mosi=pa_7,spi_miso=pa6,spi_clk=pa5,spi_cs=pa4
  14. const float voltMeterARef = 3.0;

  15. float readPrint(AnalogIn ain, char *label) {
  16.   float tval = ain.read();
  17.   float volts = tval * voltMeterARef;
  18.   float perc = tval * 100.0;  
  19.   unsigned short  tvalu16 = ain.read_u16 ();

  20.   printf("adc %s R=%3.3f V=%3.3fV  U16=%u\r\n",label, tval, volts, tvalu16);
  21.   
  22.   return tval;
  23. }
  24.    

  25. int main() {
  26.   device.reply(0xAA);
  27.     while(1) {
  28.         myled = !myled; // toggle led
  29.       
  30.         readPrint(pa0, "PA_0");
  31.         
  32.         readPrint(pb0, "PB_0");
  33.         
  34.         printf("\r\n\r\n");// print the analog data to log by uart port
  35.         if(device.receive())//setup the raspberry to read analog data
  36.           {
  37.             int v=device.read();
  38.             device.reply(v);}//send the analog data to raspberry by spi bus
  39.           }
  40. }

  41.             

复制代码
LabVIEW部分代码由于是G语言,以附件形式上传。

VIPM.PNG (161.52 KB, 下载次数: 139)

VIMP中安装LINX

VIMP中安装LINX

LINX_1.png (611.43 KB, 下载次数: 140)

LINX中安装树莓派运行环境

LINX中安装树莓派运行环境

nucleo_f103rb_RBP3.png (2.06 MB, 下载次数: 122)

硬件连接图

硬件连接图

示波器.png (464.53 KB, 下载次数: 125)

示波器小程序的前面版

示波器小程序的前面版

LINX_4.png (319.95 KB, 下载次数: 110)

LINX_4.png

LINX_5.png (262.25 KB, 下载次数: 122)

选择device为树莓派,显示为树莓派2,可以支持到派3

选择device为树莓派,显示为树莓派2,可以支持到派3

LINX_6.png (399.72 KB, 下载次数: 126)

配置Device树莓派的IP地址

配置Device树莓派的IP地址

LINX_7.png (243.3 KB, 下载次数: 134)

这样就可以在配置后的树莓派上点击连接,连接成功后,就可以把开发好的程序下载到你的树莓派中运行。 ... . ...

这样就可以在配置后的树莓派上点击连接,连接成功后,就可以把开发好的程序下载到你的树莓派中运行。 ... . ...

LINX_8.png (560.21 KB, 下载次数: 121)

需要脱离PC端,在树莓派上单独开机就可以运行,需要编译一下

需要脱离PC端,在树莓派上单独开机就可以运行,需要编译一下

LINX_10.png (470.91 KB, 下载次数: 130)

LabVIEW示波器的简易程序

LabVIEW示波器的简易程序

IMG_20180102_150814.jpg (1.09 MB, 下载次数: 115)

硬件连接实物图

硬件连接实物图

VIs.rar

67.99 KB, 下载次数: 202

LabVIEW示波器和DAQ小程序,LINX库太大上传不料,需要自行安装

关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

回答|共 8 个

倒序浏览

沙发

Vincent_Wang-305035

发表于 2018-1-9 09:58:58 | 只看该作者

看来做LabVIEW的比较少
板凳

涛哥一号

发表于 2020-1-3 14:39:06 | 只看该作者

支持不支持树莓派3B+?
回复 支持 反对

使用道具 举报

地板

涛哥一号

发表于 2020-1-3 14:45:19 | 只看该作者

支持不支持树莓派3b+呢
回复 支持 反对

使用道具 举报

5#

joe19960715

发表于 2020-1-7 15:28:53 | 只看该作者

请问支持树莓派3b+吗
回复 支持 反对

使用道具 举报

6#

songjzhong

发表于 2020-6-1 09:49:19 | 只看该作者

非常有用。以后多关注哈
回复 支持 反对

使用道具 举报

7#

songjzhong

发表于 2020-6-1 09:49:19 | 只看该作者

不知道现在支持4B不?
回复 支持 反对

使用道具 举报

8#

txrsky

发表于 2020-8-13 15:14:31 | 只看该作者

为什么附件下载不了。。
回复 支持 反对

使用道具 举报

9#

caifei9280

发表于 2020-12-16 14:25:52 | 只看该作者

LabVIEW还是挺好用的 ,就玩下还是不错,做项目的话显得不够专业。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条