TA的每日心情 | 开心 2018-1-2 15:19 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I
|
本帖最后由 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.so 和 liblinxdevice_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接口把数据送给树莓派。- /* Example of Reading all the ADC pins available on the Nucleo_F103RB.
-
- By Joseph Ellsworth CTO of A2WH
- Take a look at A2WH.com Producing Water from Air using Solar Energy
- March-2016 License: https://developer.mbed.org/handbook/MIT-Licence
- */
-
- #include "mbed.h"
-
- // Host PC Communication channels
- Serial pc(USBTX, USBRX, 115200); // tx, rx
-
-
- AnalogIn pa0(PA_0); //Analog input channel 1
- AnalogIn pb0(PB_0); //Analog input channel 2
-
- DigitalOut myled(LED1);
- //SPISlave device(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS);
- SPISlave device(PA_7, PA_6, PA_5, PA_4);//spi_mosi=pa_7,spi_miso=pa6,spi_clk=pa5,spi_cs=pa4
- const float voltMeterARef = 3.0;
-
- float readPrint(AnalogIn ain, char *label) {
- float tval = ain.read();
- float volts = tval * voltMeterARef;
- float perc = tval * 100.0;
- unsigned short tvalu16 = ain.read_u16 ();
-
- printf("adc %s R=%3.3f V=%3.3fV U16=%u\r\n",label, tval, volts, tvalu16);
-
- return tval;
- }
-
-
- int main() {
- device.reply(0xAA);
- while(1) {
- myled = !myled; // toggle led
-
- readPrint(pa0, "PA_0");
-
- readPrint(pb0, "PB_0");
-
- printf("\r\n\r\n");// print the analog data to log by uart port
- if(device.receive())//setup the raspberry to read analog data
- {
- int v=device.read();
- device.reply(v);}//send the analog data to raspberry by spi bus
- }
- }
-
-
复制代码 LabVIEW部分代码由于是G语言,以附件形式上传。
|
-
VIMP中安装LINX
-
LINX中安装树莓派运行环境
-
硬件连接图
-
示波器小程序的前面版
-
-
选择device为树莓派,显示为树莓派2,可以支持到派3
-
配置Device树莓派的IP地址
-
这样就可以在配置后的树莓派上点击连接,连接成功后,就可以把开发好的程序下载到你的树莓派中运行。 ... . ...
-
需要脱离PC端,在树莓派上单独开机就可以运行,需要编译一下
-
LabVIEW示波器的简易程序
-
硬件连接实物图
-
-
VIs.rar
67.99 KB, 下载次数: 195
LabVIEW示波器和DAQ小程序,LINX库太大上传不料,需要自行安装
|