600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 树莓派远程4G遥控车教程(二)-相机云台舵机初步调试

树莓派远程4G遥控车教程(二)-相机云台舵机初步调试

时间:2023-07-21 18:30:53

相关推荐

树莓派远程4G遥控车教程(二)-相机云台舵机初步调试

树莓派远程4G遥控车教程(二)-相机云台舵机初步调试

树莓派远程4G遥控车教程(一)-准备工作

树莓派远程4G遥控车教程(三)-摄像头安装及实现局域网实时监控

树莓派远程4G遥控车教程(四)-实时监控内网穿透及集成舵机控制功能

准备工作

出现问题欢迎私信我,大家一起讨论

树莓派4B+内存卡(已烧录系统)舵机云台(已组装,包含两个9g舵机)(需要链接可以私信)杜邦线若干电脑ssh控制树莓派

运行环境配置

本文中使用python3进行舵机的控制,自行查找python3安装教程。因为这里使用了python3,所以需要手动安装Python v3版本的RPi.GPIO模块。

安装RPi.GPIO模块

在ssh终端中先运行python3查看当前版本

pi@raspberrypi:~ $ python3Python 3.7.3 (default, Jan 22 , 20:04:44)[GCC 8.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

安装模块

sudo apt-get -y install python3-rpi.gpiosudo pip3 install --upgrade RPI.GPIO

测试是否安装完成(在输入python3后引用模块,查看是否报错)

pi@raspberrypi:~ $ python3Python 3.7.3 (default, Jan 22 , 20:04:44)[GCC 8.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import RPi.GPIO>>>

云台舵机接线

注:接线时务必保持树莓派断电状态
首先从商家到舵机数据,我这里是接入电压5V,工作频率:50Hz(周期:20 ms)红色为正极,橙色为负极,其中黄色为控制线。

由舵机数据得,舵机接入5V电压。正极接入5V接口,负极接入GND接口,控制线接入任意支持GPIO功能接口。(GPIO接口支持pwm信号)树莓派4B针脚图

单独舵机控制测试

这里只接入单个舵机进行测试我将舵机的PWM控制线接入了GPIO.1接口如上图树莓派针脚图得,树莓派针脚的编码方式有两种,分别是BCM和wiringPi。这里我使用了BCM的编码方式。舵机控制线插在BCM编码为18的GPIO.1接口上。

开始测试

首先打开ssh终端输入python3,启动python编辑器

pi@raspberrypi:~ $ python3Python 3.7.3 (default, Jan 22 , 20:04:44)[GCC 8.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

导入 RPi.GPIO模块

>>> import RPi.GPIO as GPIO>>>

定义使用BCM引脚方案。并定义你使用的针脚(我这里控制线接在了编码为18的接口上)

>>> import RPi.GPIO as GPIO......>>> GPIO.setmode(GPIO.BCM)>>> level = 18

将该针脚定义为输出模式

>>> import RPi.GPIO as GPIO>>> GPIO.setmode(GPIO.BCM)>>> level = 18......>>> GPIO.setup(level, GPIO.OUT)

前面的到数据,舵机频率为50HZ,这里设置为50HZ

>>> import RPi.GPIO as GPIO>>> GPIO.setmode(GPIO.BCM)>>> level = 18>>> GPIO.setup(level, GPIO.OUT)......>>> frequency = GPIO.PWM(level, 50)

测试不同占空比舵机的运动情况,先定义占空比为0,依次增加,查看舵机运动情况。

>>> frequency.start(0)>>> frequency.ChangeDutyCycle(2)>>> frequency.ChangeDutyCycle(4)>>> frequency.ChangeDutyCycle(6)>>> frequency.ChangeDutyCycle(8)>>> frequency.ChangeDutyCycle(10)>>> frequency.ChangeDutyCycle(12)>>> frequency.stop()

在这里我观察舵机运动得到,舵机可以再2和12之间运动。最大占空比为12。占空比为12时,舵机达到运行最大角度。 0 -角度为06 -角度为9012 - 角度为180

编写舵机运动程序

from time import sleep# 引入时间模块import RPi.GPIO as GPIO# 引入驱动模块GPIO.setmode(GPIO.BCM)# 定义针脚编码格式使用BCM格式GPIO.setwarnings(False)# 定义针脚编码def settransrotation(trans,rotation):pwm = GPIO.PWM(trans,50)# 定义频率pwm.start(8)# 定义初始占空比DutyCycle = rotation /18 + 2# 角度转换pwm.ChangeDutyCycle(DutyCycle)sleep(0.3)pwm.stop()# 结束针脚控制if __name__ == "__main__": import systrans = int(sys.argv[1])GPIO.setup(trans,GPIO.OUT)# 将输入针脚 改为输出模式settransrotation(trans,int(sys.argv[2]))GPIO.cleanup()

编写完毕将其另存为py文件steering.py将其通过ssh放入树莓派中,/home/pi/steering.py在终端中运行

>>> python3 steering.py 18 60----- 18 为针脚号 60 是角度

观察舵机动作,是否运动

驱动完成

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。