原标题:如何让LabVIEW程序运行在树莓派3B(此处有坑)
上次转载了LabVIEW部署树莓派的文章后,很多小伙伴很兴趣,一个个都说要把压箱底的树莓派拿出来清下灰尘,也不知道到底拿出来没有。
放个之前文章链接如下:
零基础上手树莓派+免费正版LabVIEW Community Edition
有小伙伴在留言区提问:
1,教程是4B的板子,那么能不能运行在3B板子上,毕竟4B刚出来,手里3B存货还想继续用。
2,程序能不能独立脱离PC运行?
还是先说答案:
1, 能运行在3B。
2,程序是 独立运行在树莓派上的。类似NI的的Crio和Myrio的RT系统。
正好,我手里有个3B+。如果经常关注我的文章,大家可以看到,很久以前我发过一个文章:
LabVIEW通过WIFI远程控制树莓派
上述文章中,我在 树莓派端用 python来写了个程序,控制LED的亮灭。 PC端用 LabVIEW的TCP网络连接树莓派进行远程控制。
那么,问题来了,学LabVIEW的人,还要单独学python语言给树莓派编程?
人生苦短,能用LabVIEW一种语言搞定的,就不要用2种语言。
但是,虽然有前人之路,但是果实也不是随便就能摘到自己手里,前进的道路是曲折的。
上次文章发布后,有小伙伴就留言了,说3B安装失败,过了一个星期后,才说留言说安装成功了。至于怎么安装成功的,他也 说不明白,可能是网速问题,也可能是删除了啥文件后才成功。
总之,这个安装使用过程很玄。这种感觉,很多学LabVIEW的人估计都有:忽然不知道怎么的,程序就不好使了;忽然又不知道怎么的,程序又好使了?对于这种情况,建议运行程序前 要烧柱香。
首先,参考之前的那篇文章,进入LINX这个配置界面,连接树莓派后,点击这个upgrade。这个是关键步骤,它会在树莓派里安装一个LabVIEW RT的软件,这个软件安装成功,才有后面的事,不然,会像前面那个小伙伴一样,折腾一星期或者更久。
我比较幸运,折腾了2天而已(就周末这两天),曾经也试图放弃。但是想想,这不是我的风格,我就是要实践出来。在LINX的Installation界面中,总是运行到install LabVIEW时候,提示failed,还提示让我到LINX论坛去查找原因,其实我去了论坛,然而并没有找到答案。
于是,通过查看树莓派的源,发现这个LINX软件,会在源里新增一个源地址。
http://feeds.labviewmakerhub.com/debian/ binary/
然后去这个地址去搜索,目录如下。
从这个目录可以看出,其实源里是自动下载了这个20.0.0-4。注意LINX那个Upgrade界面的版本,就是这个版本。
于是,我尝试把这个20.0.0-4版本,下载到树莓派中,使用命令行安装。
然而安装不上,提示我有个旧版本的lvrt14.1。忽然想起,在两年前,我尝试过LINX,然后失败了,但是这个lvrt14.1安装上了,虽然当时没运行成功。于是我用Remove命令删除了这个老版本,然后继续运行上述的命令,居然成功了。
回到Installation界面,点击Upgrade,等待了很久,提示Target rebooting,又等了2小时(其实我是睡了个午觉),依旧这个提示, 并没有按照之前教程提示的,在Installation Version出现 版本。
此时,我的心情是沮丧的,我又继续试了好多次,依旧是同样的情况?
难道 这个树莓派的人生就这样了?
我感觉还是可以拯救下,不应该是这样的,所以我点了下这个Upgrade右边的按钮Launch Example。
程序自动打开了一个Project文件,和一个vi文件。这个Project的分类,相信用过NI的Crio或者MyRIO或者其他类似嵌入式硬件的人,会很熟悉。
一般的,对于NI嵌入式设备,运行在My Computer目录下的vi是运行在PC,运行在Raspberry Pi(或者Crio)目录下的程序是运行在对应硬件的RT(今天不提FPGA),连接NI的CRIO时候,也可以有个类似的部署,界面和这个树莓派的一模一样。
恩,看结果,居然连接部署成功了,恩恩,此处应有掌声
。
于是我运行下范例。运行范例前,先按提示,在树莓派的Pin7上接一个LED,在界面上点击按钮,对应的LED会亮和灭。
大家可以通过电脑摄像头观察到,点击按钮时候,对应的 LED亮灭了。恩恩,但是如何证明程序是单独运行在树莓派上的?大家不要着急,继续往后看。
我们把按钮触发LED亮灭换成程序自动的亮灭,很简单,用移位寄存器布尔取反,间隔500循环一次。编程步骤如下所示。
如下图所示,我的树莓派是有线网络连接的,我现在 粗暴地拔掉网线。
拔掉网线后,led依旧闪烁。只是LabVIEW这边弹出提示,树莓派没响应,是否等待然后断开。
一般而言,当我们PC端程序关闭或者停止后,树莓派的程序也一样停止的。难道要用拔网线这种粗暴方式才能让树莓派程序一直运行?当然不是。
用过NI的RT设备的小伙伴都知道,RT设备可以设置上电自启动运行。也就是说,硬件一 上电,程序就会自动运行。那么如何在树莓派实现对应操作?也就是一上电,LED就闪烁,不需要我们在PC端的LabVIEW在执行连接部署工作。
接下来,要对vi生成exe应用程序。
然后,和电脑端生成exe一样,配置Source File,例如,下图把范例的vi添加到启动vi中。
然后,build后,会弹出和PC生成exe一样的进度窗口。如下图。
在生成的exe上右键,点击 Run as Startup,设置为上电就启动,这个操作和Crio等NI嵌入式设备等一样。
设置后,又有一堆下载的文字信息提示,然后提示重启。这样,我们给树莓派一上电,LED就会闪烁了。
这样, 一个简单的、独立地运行在 树莓派3B+的L abVIEW程序就完成了。另外,树莓派里也可以使用TCP编程,这样,就可以 替代我以前 Python编写的 TCP服务端程序,全部用LabVIEW来编写了。
在折腾过树莓派后,如果后续大家有机会接触NI的RT设备,基本就轻车熟路, 一模一样的操作。
最后,感谢常州的微信名叫小强的朋友,他给我发来一段用LabVIEW在树莓派部署网络服务器,并在 手机端网页控制树莓派LED的视频。我这个3B+板子的摸索,也是他测试成功我,我才来折腾的,虽然我们 遇到的坑不一样。
如今智能家居物联网是热门,使用LabVIEW在 树莓派建立网络服务器,比使用网上其他方法简单多了。其他语言使用Python或者php的居多,然后下载各种软件,但是LabVIEW不用。具体的方法后续有时间再写,虽然文章篇幅不长,但是已经写了 3个小时了...
总之,在树莓派3B+上运行LabVIEW,也是各种折腾了,终于可以使用了。
希望想玩树莓派的小伙伴,能少折腾吧,毕竟可能遇到的问题都不一样。这里只是分享我的折腾过程,感觉有帮助的,请点个赞。返回搜狐,查看更多
责任编辑: