Python开发实例:TPYBoard开发板制作蓝牙无线小车
2016-12-16 00:00
423 查看
1.实验目的
1. 学习在PC机系统中扩展简单I/O 接口的方法。
2. 进一步学习编制数据输出程序的设计方法。
3. 学习蓝牙模块的接线方法及其工作原理。
4. 学习 L298N电机驱动板模块的接线方法。
5. 学习蓝牙控制小车的工作原理。
点击查看视频演示:https://v.qq.com/x/page/p0355ekm64i.html
2.所需元器件
TPYBoard开发板一块(主要MCU,能跑MicroPython的开发板)
蓝牙串口模块一个
L298N电机驱动板模块一个
智能小车底盘一个
数据线一条
杜邦线若干
目前这款套件可以在TPYBoard官方商城买到,感兴趣的朋友可以亲手DIY一下!
购买链接:https://item.taobao.com/item.htm?spm=a230r.1.14.141.E0s2zn&id=543154262568&ns=1&abbucket=0#detail
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桥驱动,所以可以同时驱动两个电机,接法如图所示使能ENA ENB之后,可以分别从IN1 IN2输入PWM信号驱动电机1的转速和方向,可以分别从IN3 IN4输入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.源代码
1. 学习在PC机系统中扩展简单I/O 接口的方法。
2. 进一步学习编制数据输出程序的设计方法。
3. 学习蓝牙模块的接线方法及其工作原理。
4. 学习 L298N电机驱动板模块的接线方法。
5. 学习蓝牙控制小车的工作原理。
点击查看视频演示:https://v.qq.com/x/page/p0355ekm64i.html
2.所需元器件
TPYBoard开发板一块(主要MCU,能跑MicroPython的开发板)
蓝牙串口模块一个
L298N电机驱动板模块一个
智能小车底盘一个
数据线一条
杜邦线若干
目前这款套件可以在TPYBoard官方商城买到,感兴趣的朋友可以亲手DIY一下!
购买链接:https://item.taobao.com/item.htm?spm=a230r.1.14.141.E0s2zn&id=543154262568&ns=1&abbucket=0#detail
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桥驱动,所以可以同时驱动两个电机,接法如图所示使能ENA ENB之后,可以分别从IN1 IN2输入PWM信号驱动电机1的转速和方向,可以分别从IN3 IN4输入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()
相关文章推荐
- Python开发实例之TPYBoard开发板制作不掉地的小车
- Python开发实例:TPYBoard开发板DIY红绿灯
- Micropython:TPYBoard开发板制作红外防坠落小车
- [TPYBoard - Micropython之会python就能做硬件 8] 学习使用超声波模块制作避障小车
- 带以太网的MicroPython开发板:TPYBoardv201建立云加法器实例
- [TPYBoard - Micropython 之会python就能做硬件 9] 五分种学会用TPYBoard V102 制作避障小车(升级版)
- MicroPython开发板:TPYBoard v102 播放音乐实例
- MicroPython教程之TPYBoard开发板DIY红外寻迹小车
- 带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
- MicroPython实例之TPYBoard开发板控制OLED显示中文
- MicroPython实例之TPYBoard开发板控制OLED显示中文
- Micropython TPYBoard 控制无线加速度小车
- Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
- [Micropython]TPYBoard DIY蓝牙智能小车
- 手机蓝牙遥控小车的制作
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
- [python 开发]python小实例
- unity3d开发2d游戏:制作动画砖块实例代码
- Android 蓝牙开发实例--蓝牙聊天程序的设计和实现
- Android蓝牙开发实例解析