文档章节

Micropython:TPYBoard开发板制作红外防坠落小车

bodasisiter
 bodasisiter
发布于 2016/12/29 10:31
字数 1327
阅读 54
收藏 0

      [Micropython]TPYBoardV10X 红外防坠落小车智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下防坠落小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言写。下面给大家看一下视频演示:

    1.实验目的

    研究智能小车结合红外探头寻迹前进。

    2.实验材料

    TPYBoard开发板1块(能跑python语言的开发板,小车

    的大脑)

    四路红外感应探头(小车的眼睛)

    数据线一根。

    充电宝一个(给整个系统供电)

    智能小车底盘(包括驱动模块)

    杜邦线若干

    实验目的和实验材料准备齐了,先来介绍一下各个主要部件。

    2.1 TPYBoard开发板

    MicroPython是在单片机上可以跑的Python,也就是说,你可以通过Python脚本语言开发单片机程序。 由剑桥大学的理论物理学家乔治·达明设计。和Arduino类似,但Micro Python更强大。 MicroPython开发板让你可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。TPYBoard是TurnipSmart公司制作的一款MicroPython开发板,这款开发板运行很流畅,关键是价格很便宜。详细信息可参考其官网http://www.micropython.net.cn

    2.2 四路红外感应探头

    1、当模块检测到前方障碍物信号时,电路板上红色指示灯点亮,同时OUT端口持续输出低电平信号,该模块检测距离2~60cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。

    2、传感器属于红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。

    3、 传感器模块输出端口OUT可直接与单片机IO口连接即可, 也可以直接驱动一个5V继电器模块或者蜂鸣器模块;连接方式: VCC-VCC;GND-GND;OUT-IO。

    4、比较器采用LM339,工作稳定;

    5、可采用3.3V-5V直流电源对模块进行供电。当电源接通时, 绿色电源指示灯点亮。

    2.3 智能小车底盘

    双电机驱动,万向轮改变方向。这是实验中最常用到的小车底盘,使用差速的方法进行转弯。配合使用L298N电机驱动模块,使用方法很简单,不多做介绍。

    3.寻迹原理

    说完了原料的问题,下面说一下小车寻迹的原理。

    3.1红外探头的安装

    小车寻迹的原理其实就光的吸收,反射和散射。在小车的前端有安装孔,使用螺丝把红外传感器固定在安装孔上。保持发射端和接收端都保持竖直向下。

    3.2返回信号的判断

    在上面已经说了,红外探头在检测到物体存在的时候,在OUT端会持续的输出低电平。那么调节调距电阻,调节到一个适合的检测距离。在小车行驶路面检测到物体的时候,说明是前面是有路的,不是悬空的。那么小车 保持直行。如果前方检测到没有返回,没返回说明没有检测到物体,妈就说明前面是没有路的,是悬空的,那么小车就先进行后退,在进行右转(也可以左转,也可以一次右转一次左转,这个比较随意。)。

    4.硬件接线

    接线其实很简单四路红外探头接线很简单,虽然有十八根线,但是有十二根是三根三根的分成四组的,对应着很好接线,剩下的六根,VCC和GND不多说了,还有四根是直接接到单片结IO口上就可以的。L298N的接线更简单了,这里不多介绍。

    上个简单的帮助理解的原理图 (其实我们做实验都是插线,不做PCB图和原理图的)。

红外小车2 .png

    再上个实物图给大家看看。

红外小车3.jpg

    5.运行与调试

    制作完成后,剩下的就是该调试了,调试中应该注意细节和小车稳定性的优化。

    6.代码编写

    再把我写的程序给大家看一下,有需要的可以看一下。

    源代码:

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()

详细信息可参考其官网http://www.micropython.net.cn

© 著作权归作者所有

共有 人打赏支持
bodasisiter
粉丝 19
博文 186
码字总数 172950
作品 0
潍坊
私信 提问
MicroPython新货上架【TPYBoard新品合集】你想要的好玩意儿全在这!

八月火力全开! TPYBoard一大波新品隆重上市! 一次次的研发、尝试 无数次的改进、优化 新品强势来袭 发烧友们期待已久的 STM32F407系列也已全新上线啦~ 1.STM32F407开发板 https://item.tao...

bodasisiter
2018/08/21
0
0
MicroPython支持的开发板:高性能、低成本会python就能做创客

Python的开放、简洁、黏合正符合了现发展阶段对大数据分析、可视化、各种平台程序协作产生了快速的促进作用。自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢...

bodasisiter
2017/04/11
1
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
昨天
0
0
Python玩转单片机:从基础到进阶,几款主流的开发板大盘点!

Python俨然已成为当下最热门的编程语言(可以说没有之一)。Python火到什么程度?它将被加入小学生教材,纳入高考,估计在不远的将来可能会成为一项常用的技能。 学习python能做什么? 可以快...

bodasisiter
2018/09/05
0
0
MicroPython技术及应用定义

MicroPython极精简高效的实现了Python3语言,包含Python标准库的一小部分,在单片机和受限环境中运行。 1.1、MicroPython发展 由剑桥大学的理论物理学家乔治?达明设计,遵循MIT许可协议,与A...

bodasisiter
01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
今天
11
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部