相信大家对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
 
 

让我们一起摇摆 Turnipbit体感遥控车的更多相关文章

  1. 使用HTML5开发Kinect体感游戏

    一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...

  2. 【CityHunter】基于LBS的AR体感游戏设计理念

    本人目前还不是游戏行业的圈内人士,并不懂得,游戏行业的生态圈,也不懂得,所谓的什么“中国市场环境”.所以不敢发表关于这方面的见解,不过我在这里想要插一句话,就是我认为啊,行业内,人与人之间还是有分层次 ...

  3. Kinect外包团队(长年承接微软Kinect体感项目外包,有大型Kinect案例)

    承接Kinect体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业WPF产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代码,有业务 ...

  4. [体感游戏] 1、MPU6050数据采集传输与可视化

    最近在研究体感游戏,到目前为止实现了基于51单片机的MPU6050数据采集.利用蓝牙模块将数据传输到上位机,并利用C#自制串口数据高速采集软件,并且将数据通过自制的折线图绘制模块可视化地展示出来等功能 ...

  5. OpenNI结合Unity3D Kinect进行体感游戏开发(转)

    OpenNI结合Unity3D Kinect进行体感游戏开发(转) 楼主# 更多 发布于:2012-07-17 16:42     1. 下载安装Unity3D(目前版本为3.4)2. 下载OpenN ...

  6. C#开发体感游戏 Kinect应用知识

    Kinect首先是一个XBox 360外接体感设备,通过无线方式捕捉动作感知.由PrimeSense提供Range Camera技术,同类产品如任天堂Wii.Play Station Move,必须让 ...

  7. Unity 为NGUI增加体感输入方式

    背景 NGUI在处理UI和输入方面确实做的不错,但是现在的问题是公司引入体感之后,是通过手的位置来实现按钮的点击操作,前提我不想改变原先设计好的NGUI界面和机制,怎么破? NGUI的输入底层机制 N ...

  8. 历时一周,unity3d+xtion打造我的第一个休闲体感小游戏《空降奇兵》

    1.游戏介绍 本游戏属于休闲小游戏,主要操作如下: 菜单控制:举起左手或右手,点击左边或者右边的菜单:挥动左手或右手,选择关卡: 操作方式:玩家跳跃,游戏中的伞兵从飞机开始降落:玩家通过控制伞兵的左右 ...

  9. Kinect用体感来实现UI控件的点击

    用体感来实现UI控件的点击,如点击按钮. 做法:用一个图片表示左手手掌,图片位置追踪左手手掌移动,当手掌位于UI控件的矩形内时,握拳表示点击该控件. using UnityEngine; using ...

随机推荐

  1. Android按下home键后重新打开app进入主activity的问题

    问题阐述: 当我们写一款App的时候,势必会有这种情况:用户已经进行了多级的操作,现返回栈中已存在多个activity,那么这个时候我们想回到最初的activity难道要一层层的返回吗,对用户来说 无 ...

  2. 从零开始学习前端开发 — 3、CSS盒模型

    ★  css盒模型是css的基石,每个html标签都可以看作是一个盒模型. css盒模型是由内容(content),补白或填充(padding),边框(border),外边距(margin)四部分组成 ...

  3. 让自己写的项目支持Cocoapods管理

    学会使用别人的 Pods 依赖库以后, 你一定对创建自己的依赖库很有兴趣吧,现在我们一起来制作自己的Pods依赖库. 1.创建自己的 github 仓库 上图中标识出了6处地方 Repository ...

  4. MySQL数据引擎

    InnoDB存储引擎 该引擎是MySQL数据库的默认事务型引擎,它被设计用来处理大量短期事务(绝大多数正常提交,很少回滚) InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由 ...

  5. LinkedList 源码分析(JDK 1.8)

    1.概述 LinkedList 是 Java 集合框架中一个重要的实现,其底层采用的双向链表结构.和 ArrayList 一样,LinkedList 也支持空值和重复值.由于 LinkedList 基 ...

  6. mysql explain用法和结果的含义

    转自:http://blog.chinaunix.net/uid-540802-id-3419311.html explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择 ...

  7. freemarker常用值格式化方法

    freemarker常用的值格式化方法: 1.${price?string('0.00')} 对price进行格式化,小数点后不足2位用0补足. 比如:price=1 输出:1.00 2.${pric ...

  8. JavaScript 函数创建思想

    //定义一个函数的步骤//1.开辟一个新的空间地址//2.把函数体里面的代码当做字符串存储到空间里面(一个函数如果只定义了,没有执行的话,这个函数没有任何意义)//3.在把我们的地址给我们的函数名fu ...

  9. 解决ubuntu系统root用户下Chrome无法启动问题

    由于ubuntu16.04系统自带的是Firefox浏览器,需要安装Chrome浏览器,但是在root用户下安装后发现,Chrome无法正常启动.安装及问题解决具体如下: 1. ubuntu上Chro ...

  10. CSS——盒模型

    1.基本概念: 内容:(content)盒子里面的东西: 填充:(padding)怕盒子里面的东西损坏而添加的泡沫元素活抗震材料: 边框:(border)盒子本身 边界:(margin)则说明盒子的摆 ...