树莓派python编程小车_00-树莓派做的遥控小车 python

堆图预警

一. 背景交代

楼主男,想入门it,现小白.收拾柜子,发现了尘封已久的树莓派小板板(raspberry pi 26 pin),近期又在学习python,闲着无聊,故研究一下,ssh连接竟然能脸上 O(∩_∩)O~~~,巴拉巴拉巴拉,hello word,我天~,还能跑python; 本着不浪费资源的原则,查询了一下python关于树莓派的轮子,,RPi.GPIO,install ~,import ,我去,还能点亮led。因此,脑洞飞起翻箱底,找到了一堆轮子(真的玩具车轮),做个小车吧哈哈~,交代完毕~~~~

二. 硬件部分

(1).硬件列表

树莓派raspberry pi 几年内某宝 1片

减速电机带轮 2套

玩具转向电机(历史遗留改装) 1个

L298N电机驱动or某宝驱动板 1片

其他可见附件(洞洞板,杜邦线) 若干

说明:硬件,基本上都是历史遗留的 0.0 不好找,想做的话,私信我协助 0.0

(2).树莓派

涉及引脚如图所示,标号和GPIO程序相关BCM模式引脚,

4,17,脚控制转向,接L298N一个通道

9,10,引脚接L298N另一个通道,的EN端,输出软件PWM供电机调速(只用接一个,留一个进行扩展用

(3)其他部分

减速齿轮电机,动力

L298N,驱动电机

三. 软件部分

编程语言采用python ,导入大神轮子 O(∩_∩)O ~小白

1. 树莓派端

安装系统:官网上下载,然后为芯片直接刷入,教程某度。。over

安装环境:系统自带环境 python3,如果没有的话 sudo apt-get install python3吧,教程同上,首先利用ssh连接上自己的电脑,然后执行下步操作,不然操作界面都找不着 0.0,putty远程很好用,(广告~ 逃~~~~~)

安装依赖包:

安装包管理器pip:sudo apt-get install python3-pip

安装依赖树莓派驱动库:sudo pip install RPi.GPIO

安装通信socket依赖:sudo pip install socket

环境配置完毕,代码程序:

运行过程采用TCP连接,将树莓派设置成服务端,监听端口,及客户端发送的信息,代码如下,含注释。,python小白,不足轻喷 0.0

2. Pc端(Ubuntu测试)

安装系统:不用我发教程吧, 我也不会,皮一下O(∩_∩)O

安装环境:俺调试编程用的pycharm python3,运行的话python3+依赖,就行了

安装依赖:

安装包管理器pi:sudo apt-get install python3-pip 好像自带把

安装pygame包:sudo pip3 install pygame 我真的没有做游戏。。。。本来想用tkiner看控件真丑,还不知道咋用,直接转pygame,ps了一个背景,,素材网上找的,

安装通信socket依赖:sudo pip install socket

四、展望or遐(瞎)想

1.通过软件,采集PC端声音,控制小车状态,转化成数据信息发送给树莓派控制(不知道有没有轮子)

2.外部摄像头对小车进行状态采集,令能够两轮站立行进,不采用传感器,视觉处理识别,好高深呀~~

3.通过路径反馈,将小车的行进轨迹返回至电脑,或将电脑生成轨迹发送到小车,按路线行进。

五、说明

程序和已经到github,虽然软件,硬件已经搭好,但是.................电池没到呀,,,,,,,电机跑不起来,,,等测试完成后我在来更新.,两天后吧!!!LoooKZ-Q/python_for_raspberrypi​github.comv2-107721e7e9c0c0a69305737763a8aab4_ipico.jpg

六、实车测试(233,电池到了)

图:材料简简*100漏,,无视

实测视频:

1.桌面测试v2-bb69b272dd5513ca850862b6d62ad27f_b.jpghttps://www.zhihu.com/video/983059890264301568

2.实车测试v2-19e7f01e64c06262b5ec859f8b55e3ad_b.jpghttps://www.zhihu.com/video/983060004366086144

存在问题,因为零件都是东凑西凑的,转向部分是玩具电机,角度基本无法控制,手头也不存在舵机,所以采用人工视觉纠正运动轨迹的方式(囧~~~。台阶。),可以考虑倒着跑,玩具电机直接当万向轮,采用两轮差动pwm转向调节。关于大材小用这个话题,忽略吧,就是玩玩。。。

PS:至此,俺也是有车的人了~~~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个简单的使用socket实现树莓派遥控小车Python代码: ```python import RPi.GPIO as GPIO import socket # 初始化GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) GPIO.setup(13, GPIO.OUT) GPIO.setup(15, GPIO.OUT) GPIO.setup(16, GPIO.OUT) # 建立socket连接 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('0.0.0.0', 8888)) sock.listen(1) print('等待连接...') while True: # 等待客户端连接 conn, addr = sock.accept() print('已连接:', addr) while True: # 接收客户端发送的指令 data = conn.recv(1024) if not data: break # 处理指令 cmd = data.decode() if cmd == 'F': GPIO.output(11, GPIO.HIGH) GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.HIGH) GPIO.output(16, GPIO.LOW) elif cmd == 'B': GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.HIGH) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.HIGH) elif cmd == 'L': GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.HIGH) GPIO.output(15, GPIO.HIGH) GPIO.output(16, GPIO.LOW) elif cmd == 'R': GPIO.output(11, GPIO.HIGH) GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.HIGH) elif cmd == 'S': GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.LOW) # 关闭连接 conn.close() # 清理GPIO GPIO.cleanup() ``` 这个代码使用了GPIO库来控制树莓派的GPIO口,使用socket库来建立与客户端的连接,并通过接收到的指令来控制小车的运动。具体指令包括: - F:前进 - B:后退 - L:左转 - R:右转 - S:停止 客户端可以使用任意支持TCP连接的工具发送指令,比如使用Python的socket库、使用Telnet工具等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值