打印
[信息]

【转】Micropython 红外防坠落小车实验教程

[复制链接]
1474|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2021-9-6 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下防坠落小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言写。1. 实验目的
研究智能小车结合红外探头寻迹前进。
2. 实验材料(网上都能买到便宜)
TPYBoard开发板1块(能跑python语言的开发板,小车的大脑)
四路红外感应探头(小车的眼睛)
数据线一根
充电宝一个(给整个系统供电)
智能小车底盘(包括驱动模块)
杜邦线若干
3. TPYBoard v102开发板
MicroPython是在单片机上可以跑的Python,也就是说,你可以通过Python脚本语言开发单片机程序。 由剑桥大学的理论物理学家乔治·达明设计。和Arduino类似,但Micro Python更强大。 MicroPython开发板让你可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。TPYBoard是TurnipSmart公司制作的一款MicroPython开发板,这款开发板运行很流畅,关键是价格很便宜。
4. 四路红外感应探头
1、当模块检测到前方障碍物信号时,电路板上红色指示灯点亮,同时OUT端口持续输出低电平信号,该模块检测距离2~60cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。 2、传感器属于红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。 3、 传感器模块输出端口OUT可直接与单片机IO口连接即可, 也可以直接驱动一个5V继电器模块或者蜂鸣器模块;连接方式: VCC-VCC;GND-GND;OUT-IO。 4、比较器采用LM339,工作稳定; 5、可采用3.3V-5V直流电源对模块进行供电。当电源接通时, 绿色电源指示灯点亮。
5. 智能小车底盘
双电机驱动,万向轮改变方向。这是实验中最常用到的小车底盘,使用差速的方法进行转弯。配合使用L298N电机驱动模块,使用方法很简单,不多做介绍。
6. 寻迹原理15.4.1. 红外探头的安装
小车寻迹的原理其实就光的吸收,反射和散射。在小车的前端有安装孔,使用螺丝把红外传感器固定在安装孔上。保持发射端和接收端都保持竖直向下。
7. 返回信号的判断
在上面已经说了,红外探头在检测到物体存在的时候,在OUT端会持续的输出低电平。那么调节调距电阻,调节到一个适合的检测距离。在小车行驶路面检测到物体的时候,说明是前面是有路的,不是悬空的。那么小车 保持直行。如果前方检测到没有返回,没返回说明没有检测到物体,妈就说明前面是没有路的,是悬空的,那么小车就先进行后退,在进行右转(也可以左转,也可以一次右转一次左转,这个比较随意。)。
8.硬件接线
接线其实很简单四路红外探头接线很简单,虽然有十八根线,但是有十二根是三根三根的分成四组的,对应着很好接线,剩下的六根,VCC和GND不多说了,还有四根是直接接到单片结IO口上就可以的。L298N的接线更简单了,这里不多介绍。 上个简单的帮助理解的原理图 (其实我们做实验都是插线,不做PCB图和原理图的)。

9. 运行与调试
制作完成后,剩下的就是该调试了,调试中应该注意细节和小车稳定性的优化。
10. 代码编写
再把我写的程序给大家看一下,有需要的可以看一下。
源代码:

import pyb
from pyb import UART
from pyb import Pin

M0 = Pin('X1', Pin.IN)
M1 = Pin('X2', Pin.IN)
M2 = Pin('X3', Pin.IN)
M3 = Pin('X4', Pin.IN)
N1 = Pin('Y1', Pin.OUT_PP)
N2 = Pin('Y2', Pin.OUT_PP)
N3 = Pin('Y3', Pin.OUT_PP)
N4 = Pin('Y4', Pin.OUT_PP)

print('while')
while True:
        print('while')
        if(M2.value()|M1.value()|M3.value()|M0.value()==0):
                N1.low()
                N2.high()
                N4.high()
                N3.low()
                pyb.LED(2).on()
                pyb.LED(3).off()
        elif(M2.value()|M1.value()|M3.value()|M0.value()==1):
                N1.high()
                N2.low()
                N4.low()
                N3.high()
                pyb.delay(300)
                N1.low()
                N2.high()
                N3.high()
                N4.low()
                pyb.delay(200)
                pyb.LED(3).on()
                pyb.LED(2).off()


使用特权

评论回复
沙发
gaoyang9992006| | 2022-7-13 17:01 | 只看该作者
谢谢分享

使用特权

评论回复
板凳
duo点|  楼主 | 2022-7-15 15:15 | 只看该作者
感谢分享,非常不错

使用特权

评论回复
地板
sadicy| | 2022-7-17 09:59 | 只看该作者
可以可以

使用特权

评论回复
5
两只袜子| | 2022-7-22 15:23 | 只看该作者
不错不错,可以可以

使用特权

评论回复
6
kiwis66| | 2022-7-24 09:13 | 只看该作者
防坠落的关键是什么

使用特权

评论回复
7
heisexingqisi| | 2022-7-26 11:57 | 只看该作者
谢谢分享

使用特权

评论回复
8
Alina艾| | 2022-7-30 10:33 | 只看该作者
现在用micropython开发这种还是比较容易而且快速的

使用特权

评论回复
9
Belle1257| | 2022-7-30 11:30 | 只看该作者
我挺喜欢micropython开发,简单高效

使用特权

评论回复
10
Carmen7| | 2022-7-30 12:07 | 只看该作者
一般这种都是创客使用吧,DIY方面用的多

使用特权

评论回复
11
Candic12e| | 2022-7-30 13:16 | 只看该作者
挺好啊,但是使用micropython开发的话,是不是对MCU有要求呢?

使用特权

评论回复
12
B1lanche| | 2022-7-30 14:35 | 只看该作者
这是挺好的项目啊,有没有演示视频啊?

使用特权

评论回复
13
Annie556| | 2022-7-31 07:12 | 只看该作者
其实现在开发真的是种类繁多了,以前哪有这么多的用法啊

使用特权

评论回复
14
alxd| | 2022-7-31 08:28 | 只看该作者
我想问一下,micropython开发容不容易啊?

使用特权

评论回复
15
Betty1299| | 2022-7-31 09:34 | 只看该作者
这个是一种语言吧,是不是和arduino差不多啊

使用特权

评论回复
16
Charlotte夏| | 2022-7-31 10:42 | 只看该作者
之前听过micropython,但是没用过,好像还比较容易上手

使用特权

评论回复
17
Emily999| | 2022-7-31 11:57 | 只看该作者
小车真的是万年不衰的研究题目

使用特权

评论回复
18
yiyigirl2014| | 2022-7-31 16:58 | 只看该作者
不错的研究项目

使用特权

评论回复
19
zhuomuniao110| | 2022-8-19 16:53 | 只看该作者
科技越来越发达,人们也越来越富裕,汽车像以前的自行车一样走进千家万户

使用特权

评论回复
20
Uriah| | 2022-9-29 19:22 | 只看该作者

可以开始在项目中动手用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

434

主题

1627

帖子

1

粉丝