LabVIEW通过树莓派GPIO来控制继电器

LabVIEW通过树莓派GPIO来控制继电器,第1张

    上一篇文章完成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文件、如何用树莓派驱动舵狗腿部运动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10205564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存