上一篇文章完成LabVIEW与树莓派结合来控制LED灯,但是发现英文的LabVIEW社区版使用起来太难受了,平时一眼可以读懂的东西,用英文就太慢了。然后折腾又把英文的LabVIEW社区版换成中文的专业版。换了以后,用LINX软件连接树莓派正常,但是部署程序时有语言冲突,把树莓派在中文、美式英语、英式英语都改了一遍还是不行!折腾一番,又装回LabVIEW社区版,后来想想英语慢点就慢点,争那个几分钟干啥。
重新装好后就就开始实验我的继电器了!LabVIEW拥有丰富的函数,在嵌入式开发方面可以结合软硬件让开发更加简单。
1、接线图
V是正极5V,G是负极,S是信号线(GPIO口),BORAD编码时40。树莓派控制界面是BORAD编码。
2、LINX连接树莓派
安装树莓派插件并打开demo来控制继电器。
3、部署程序
程序框图:布尔量控制GPIO口通断。
前面板:通过按钮控制继电器。
4、生成Real-Time Application部署到树莓派,这个请参考我的文章-LabVIEW与树莓派结合,有意思的嵌入式开发。
通过这个实验测试,目前可以通过labview的LINX软件、C语言和Python都可以完成控制继电器的功能,请参考我的文章-树莓派上使用C语言和Python控制继电器和LED灯。C语言和python本是嵌入式的,labview是可以通过人机界面来控制,也可以做成嵌入式来完成控制。
实测效果图:
一、首先写个简单的python
脚本很简单,就是树莓派上一个灯闪烁程序
文件保存在/home/pi/script/ledblinkpy
二
开机启动脚本
保存脚本为/etc/initd/ledblink文件
三
设置python脚本开机启动
这样就完工了,重启树莓派就会发现led自己闪烁了,停止用sudo
service
ledblink
stop就行
要用树莓派驱动舵狗腿部运动,需要先选购合适的舵机,并将其连接到树莓派的GPIO引脚。接着,可以使用Python或其他编程语言编写控制舵机运动的程序,通过树莓派的GPIO口向舵机发送控制信号来实现舵狗腿部运动。
舵机是一种常见的电机,通过电子控制来实现精准的角度调整。舵机的内部包含一个电机、一组齿轮传动机构、一个位置反馈装置以及一个控制电路。控制电路根据输入的控制信号来调节电机的转速和方向,以实现精准的角度控制。因此,通过控制舵机的控制信号,可以实现舵狗腿部的运动控制。
在编写舵狗腿部运动控制程序时,需要考虑到舵机的工作原理和特性,比如舵机的工作电压、控制信号的频率、舵机的最大转角和速度等。同时,还需要根据实际情况进行调试和优化,以达到较好的运动效果。
树莓派中sudo是不需要密码的。 所以原则上可以在脚本里切换成ROOT用户。
你这个脚本做什么用,如果只是切换完了,执行一个命令,直接用su就可以搞定,印象中是su -c。su -c USER CMD
如果你想执行完脚本后还保留在root状态中,直接用sudo -s就可以
在 /home/pi/config 下找到名为autostart的文件夹,如果没有就新创建一个。在该文件夹下创建一个xxxdesktop文件,文件名自拟,后缀必须是desktop,文件内容如下:
[Desktop Entry]
Name=test
Comment=Python Program
Exec=python /home/pi/testpy
Icon=/home/pi/python_games/4row_blackpng
Terminal=false
MultipleArgs=false
Type=Application
Categories=Application;Development;
StartupNotify=true
1、首先查看树莓派上自带的python版本和执行程序所在位置,默认是python 2版本的。
2、起始python3在树莓派上也已经默认安装了。采用python3进行区别版本2。查看python3的版本和位置
关于python2和python3的主要区别
1在Python2中,print是一个打印语句,将Python后面的内容视为元组对象,直接打印出来,;在Python3中做为函数存在。
2编码的改变。Python2默认ASCII编码方式,但是ASCII编码无法对中文等字符进行有效编码。Python3默认采用了UTF-8编码。
3True和False的改变。Python2把True 和False视为全局变量,可以随意赋值。Python3把True和False变成了两个关键字,指向了两个固定的对象,不能再被重新赋值。
4nonlocal关键字。Python2中要想在 嵌套函数 中将一个变量声明为非局部变量是不可能的;Python3中加入了nonlocal关键字,可以在嵌套函数中给变量前面添加关键字nonlocal,就可在嵌套函数之外使用嵌套函数中的变量。
先贴最终的源代码:
#!/usr/bin/env python3
from bottle import get,post,run,request,template
@get("/")
def index():
return template("index")
@post("/cmd")
def cmd():
print("按下了按钮: "+requestbodyread()decode())
return "OK"
run(host="0000")
没错,就10句,我一句一句解释:
1 # !/usr/bin/env python3 ,告诉shell这个文件是Python源代码,让bash调用python3来解释这段代码
2 from bottle import get,post,run,request,template ,从bottle框架导入了我用到的方法、对象
下边几句是定义了2个路由,一个是“/”一个是“/cmd”,前者是get类型(用@get装饰),后者是POST类型(用的@post装饰)
第一个路由很简单,就是读取index模版(模版就是个html啦)并发送到客户端(浏览器),因为路径是“/”也就是比如树莓派的IP地址是:192168010
那用 就访问到了我们的"/”路由(bottle默认端口是8080)
同理,第二个路由的路径是“/cmd”也就是访问 就访问到了第二个路由
最后一句: run(host = " 0000 " )就是调用bottle的run方法,建立一个>
以上就是关于LabVIEW通过树莓派GPIO来控制继电器全部的内容,包括:LabVIEW通过树莓派GPIO来控制继电器、树莓派系统怎么运行py文件、如何用树莓派驱动舵狗腿部运动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)