Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
1.实验目的
1.学习在PC机系统中扩展简单I/O接口的方法。
2.进一步学习编制数据输出程序的设计方法。
3.学习蓝牙模块的接线方法及其工作原理。
4.学习L298N电机驱动板模块的接线方法。
5.学习蓝牙控制小车的工作原理。
2.所需元器件
TPYBoard板子一块
蓝牙串口模块一个
L298N电机驱动板模块一个
智能小车底盘一个
数据线一条
杜邦线若干
3.蓝牙串口模块原理
(1)引出接口包括EN,5V,GND,TX,RX,STATE,我们小车只用到RX,TX,GND,5V四个针脚。
(2)模块默认波特率位9600,默认配对密码为1234,默认名称位为HC-06。
(3)led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口,当我们用安卓手机软件发送指令时,通过串口给TPYBoard发送指令,TPYBoard收到指令通过L298BN模块来驱动小车前进,后退,向左,向右或者停止。
如下图接线,5V接TPYBoard的VIN,GND为地线,TX接TPYBoard的RX(这用的是TPYBoard串口2,X3,X4)即X4,RX接TPYBoard的TX即X3。

4.学习L298N电机驱动板模块的接线方法
本模块是2路的H桥驱动,所以可以同时驱动两个电机,接法如图所示使能ENAENB之后,可以分别从IN1IN2输入PWM信号驱动电机1的转速和方向,可以分别从IN3IN4输入PWM信号驱动电机2的转速和方向。我们将电机1接口的OUT1与OUT2与小车的一个电机的正负极连接起来,将电机2接口的OUT3与OUT2与小车的另一个电机的正负极连接起来。然后将两边的接线端子,即供电正极(中间的接线端子为接地)连接TPYboard的VIN,中间的接线端子即接地,连接TPYBoard的GND,In1-In4连接TPYBoard的Y1,Y2,Y3,Y4,通过Y1,Y2与Y3,Y4的高低电平,来控制电机的转动,从而让小车前进,后退,向左,向右。

接线ok后,编写main.py,给TOYBoard通电就ok了,下面是源代码。
5.源代码

import pyb
from pyb import UART
from pyb import Pin 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) u2 = UART(2, 9600) while True:
pyb.LED(2).on()
pyb.LED(3).on()
pyb.LED(4).on()
_dataRead=u2.readall()
if _dataRead!=None:
#停止(读取手机APP传过来的指令,不同的软件指令可能不同,可以自己设定,在这里是默认的,下同)
if(_dataRead.find(b'\xa5Z\x04\xb1\xb5\xaa')>-1):
print('stop')
N1.low()
N2.low()
N3.low()
N4.low()
#向左
elif(_dataRead.find( b'\xa5Z\x04\xb4\xb8\xaa')>-1):
print('left')
N1.low()
N2.high()
N3.high()
N4.low()
#向右
elif(_dataRead.find( b'\xa5Z\x04\xb6\xba\xaa')>-1):
print('right')
N1.high()
N2.low()
N3.low()
N4.high()
#后退
elif(_dataRead.find(b'\xa5Z\x04\xb5\xb9\xaa')>-1):
print('back')
N2.high()
N1.low()
N4.high()
N3.low()
#向前
elif(_dataRead.find( b'\xa5Z\x04\xb2\xb6\xaa')>-1):
print('go')
N1.high()
N2.low()
N3.high()
N4.low()
Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例的更多相关文章
- Micropython教程之TPYBoard制作蓝牙+红外循迹小车
1.实验目的 学习在PC机系统中扩展简单I/O接口的方法. 进一步学习编制数据输出程序的设计方法. 学习蓝牙模块的接线方法及其工作原理. 学习L298N电机驱动板模块的接线方法. 学习蓝牙控制小车的工 ...
- MicroPython教程之TPYBoard开发板DIY红外寻迹小车
智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言 ...
- MicroPython教程之TPYBoard开发板DIY小型家庭气象站
众所周知,iPhone6/6Plus内置气压传感器,不过大家对于气压传感器还是很陌生.跟字面的意思一样,气压传感器就是用来测量气压的,但测量气压对于普通的手机用户来说又有什么作用呢? 海拔高度测量 对 ...
- Micropython实战之TPYBoardv102 DIY金属检测仪
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 1.实验目的 1.学习在PC机系统中扩展简单I/O接口的方法. 2.进一 ...
- MicroPython教程之TPYBoard v102 CAN总线通信
0x00前言 CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是ISO国际标准化的串行通信协议.CAN总线结构简单,只需2根线与外部相连,并且内部集成了错误探测和管 ...
- Micropython教程之TPYBoard开发板驱动舵机教程(萝卜学科编程教育)
大家应该都看到过机器人的手臂啊腿脚啊什么的一抽一抽的在动弹吧...是不是和机械舞一样的有节奏,现在很多机器人模型里面的动力器件都是舵机. 但是大家一般见到的动力器件都是像步进电机,直流电机这一类的动力 ...
- [MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”
智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车能够实时显示时间.速度.里程,具有自动寻迹.寻光.避障 ...
- TurnipBit之DIY无线遥控智能小车
一.准备工作 TurnipBit 开发板 2块 TurnipBit 扩展板 1块 数据线 1条 智能小车器件 1套 电机驱动模块(L298N) 1个 在线可视化编程 点击进入 二.思路设计 2 ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...
随机推荐
- Android Toolbar 标题居中及字体样式自定义
首先找到 toolbar 所在xml布局文件,将toolbar控件放置在一个相对布局(RelativeLayout)中,然后设置toolbar的title为空(随便打几个空格即可): 然后在 tool ...
- SQL基础教程读书笔记-1
查询基础 2.2 算数运算符和比较运算符 2.2.1算数运算符 + - * / 需要注意NULL 5 + NULL 10 - NULL 1 * NULL 4 / NULL NULL / 9 NULL ...
- css走过的坑
css盒模型 1.内联元素 设置宽高无效.margin左右有效上下无效.padding都有效 会被当做字体所以内联之间有间隙 父级元素要设置font-size:0; 内联元素:a.b.button.e ...
- ExtJs 带参数的MVC
题记:研究使用ext两个星期了,从痛苦中逐渐走向明朗. 展示列表的子列表的数据时需要将当前的数据传给下一个mvc. 比如用户列表,点击一个用户查看该用户的日志列表. 首先是controller,放一个 ...
- POJ 1661 Help Jimmy(DP,注意边界)
Help Jimmy Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9399 Accepted: 3025 Descri ...
- linux进程标识符具体解释1
每一个进程都有一个实际用户标识符和一个实际组标识符,它们永远是启动该进程之用户的用户标识符和组标识符. 进程的有效用户标识符和有效组标识符或许更重要些,它们被用来确定一个用户是否能訪问某个确定的文件. ...
- 面向矩阵的numpy入门笔记
我先声明我学numpy的目的:在python中使用矩阵(我需要在机器学习中使用矩阵),所以我的目的很明确,矩阵: 矩阵在numpy中叫ndarray(The N-dimensional array), ...
- shell 参数记录
$0 执行脚本的名称 $* 和 $@ 所有参数 $# 参数个数 $_ 上个命令的最后一个参数 $$ 代表当前命令所在的pid $! 代表最后执行的 '后台' 命令的pid $? 代表上条命令 ...
- 项目管理: Alpha,Beta,RC,GA,Release
Alpha: Alpha是内部测试版,一般不向外部发布.也可以认为是演示版本.允许存在一定的问题(例如功能组合.异常流程处理.稳定性.性能存在部分问题) ...
- SSH简单项目
这是我学习SSH整合时的一个测试项目,代码比较简单 整个项目实现从数据库中取数据,在页面上显示.项目的结构如下: (1)数据库设计 数据库使用的是student数据库中的一个数据库表grade,表的内 ...