打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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.源代码

 
 importpyb

frompyb import UART

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

 

whileTrue:

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



  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Micropython教程之TPYBoard制作蓝牙 红外循迹小车
DIY一个自己喜欢的瓦力吧!
技术宅们有点疯,平衡车、蓝牙履带车都做出来。。。
【Arduino学习笔记】蓝牙控制手自两用避障车
DIY手势遥控车,帅呆了
未来领袖的童年玩具——mBot 教育机器人体验
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服