zoukankan      html  css  js  c++  java
  • 让我们一起摇摆 Turnipbit体感遥控车

    相信大家对Microbit是非常熟悉的,而今天我们做的这个小玩具所用的核心板是Turnipbit,是基于 Microbit开发的一块适合儿童适用的板卡。基本使用原理是一样的,这里就不多介绍了,代码这方面我也用了更好玩的拼插方法。(感觉比书写麻烦多了。果然是适合孩子玩的)
    所需器件
    TurnipBit开发板 2块
    microUSB数据线 1条
    可接入互联网的电脑 1台
    TurnipBit扩展板 1块
    智能小车套件 1套
    电机驱动模块(L298N) 1个
    实验步骤:
    打开Turnipbit可视化编程网站 www.turnipbit.com  点击开始编程
    功能区点击加速度传感器,选择判断当前…的动作。如下图:
     
     
    本次实验主要涉及到5种动作,即:向上、向左、向右、正面、反面。
    接下来展开分析一下,这5种动作对应的TurnipBit板子的实物状态。
     
    向上:TurnipBit正面(带有LED灯、按键)朝向我们,如下图:
     
     
    向左:依照向上的动作,逆时针向左旋转90度。如下图:
     
     
     
    向右:依照向上的动作,顺时针向右旋转90度。如下图:
     
    正面:依照向上的动作,逆时针向下旋转90度。如下图:
     
     
    反面:依照向上的动作,顺时针向下旋转90度。如下图:
     
    接下来分配这5种情况下小车的动作:
     
      
    TurnipBit的动作状态
      
      
    对应小车的操作
      
      
    向上
      
      
    停止
      
      
    向左
      
      
    左转
      
      
    向右
      
      
    右转
      
      
    正面
      
      
    前进
      
      
    反面
      
      
    倒退
      
     
    实现模拟体感器的代码。主要功能为不断检测TurnipBit的动作,先用内置图像来表示当前的动作。
     
    体感部分的工作已经完成了,那么该如何将这些信息传送给接收器?不用担心,细心的同学不难发现,功能区内有一个无线电的模块,我们用它来实现两块TurnipBit开发板之间的通信。
           首先选择打开蓝牙,放在循环外,然后再每个动作判断内添加发送的消息,消息内容可以自定义。参考下图:
     
    现在来完成接收器的代码。主要功能为接收模拟体感器发送的数据,分析数据得出对应的动作,像模拟体感器一样用图案表示出来。如下图:
     
    接下来我们组装小车,首先晒一下小车的整体器件。包括:2个轮子、2个减速电机、1个万向轮、1包铜柱螺丝包、1个电池盒、1个底板、1个开关。
     
     
    先用焊枪把减速电机两边的引脚片焊上公头杜邦线,方便接入电机驱动模块。
     
     
    将减速电机、万向轮和开关安装在底板上。
     
     
    将轮子安装在两侧的电子上,电池盒安装在底板上。将电池盒的正极(红色导线)焊接在开关的1个铜片上,开关的另一个铜片焊接上公头杜邦线。如下图:
     
    安装电机驱动模块。先看一下整体接线图,如下:
    将电池盒的负极(黑色导线)接入电机驱动模块的GND端子,开关引出的公头杜邦线接入+12V端子。两边的电机分别接入电机驱动模块两侧的输出端子(标记OUT1~OUT4)。如下图:
     
    安装TurnipBit开发板和扩展板,将电机驱动模块的GND接入扩展板的GND,+5V接入扩展板的5V。将扩展板上的P5、P8、P11和P12引脚对应接入电机驱动模块的IN2、IN1、IN3和IN4。如下图:
     
    我们需要再完善一下接收器的代码。增加控制小车的功能。如下图:



     
    将程序下载到用于接收器的TurnipBit的开发板内,再将板子对插到扩展板上,注意板子正面(带有LED)朝向有针脚的一面。
     
    增加一些其他的动作,开发新玩法,召唤更多的小伙伴,进行赛车比拼。
     
    复制链接观看演示视频:
    https://pan.baidu.com/s/1c2pnM7I
     
     
  • 相关阅读:
    漫谈AOP开发之初探AOP及AspectJ的用法
    Spring AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
    深入理解Java虚拟机:OutOfMemory实战
    Java内存泄漏分析与解决方案
    漂亮回答面试官struts2的原理
    [小知识]不显示没有内容的UITableViewCell
    initWithCoder: 与initWithFrame:
    pageControl设置不居中显示,居左或居右
    Xcode中报错或警告信息整理,持续更新...
    [小技巧]阀值的使用
  • 原文地址:https://www.cnblogs.com/xxosu/p/8464369.html
Copyright © 2011-2022 走看看