查看: 15044|回复: 8

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

[复制链接]
  • TA的每日心情
    开心
    2018-1-2 15:19
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-12-30 21:40:39 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 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语言,以附件形式上传。

    VIMP中安装LINX

    VIMP中安装LINX

    LINX中安装树莓派运行环境

    LINX中安装树莓派运行环境

    硬件连接图

    硬件连接图

    示波器小程序的前面版

    示波器小程序的前面版
    LINX_4.png

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

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

    配置Device树莓派的IP地址

    配置Device树莓派的IP地址

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

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

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

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

    LabVIEW示波器的简易程序

    LabVIEW示波器的简易程序

    硬件连接实物图

    硬件连接实物图

    VIs.rar

    67.99 KB, 下载次数: 191

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

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-2 15:19
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2018-1-9 09:58:58 | 显示全部楼层
    看来做LabVIEW的比较少
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-1-3 14:39:06 | 显示全部楼层
    支持不支持树莓派3B+?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-1-3 14:45:19 | 显示全部楼层
    支持不支持树莓派3b+呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-1-7 15:28:53 | 显示全部楼层
    请问支持树莓派3b+吗
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-6-1 09:49:19 | 显示全部楼层
    非常有用。以后多关注哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-6-1 09:49:19 | 显示全部楼层
    不知道现在支持4B不?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-8-13 15:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-8-13 15:14:31 | 显示全部楼层
    为什么附件下载不了。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-12-16 14:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-12-16 14:25:52 | 显示全部楼层
    LabVIEW还是挺好用的 ,就玩下还是不错,做项目的话显得不够专业。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 23:56 , Processed in 0.188357 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.