查看“乐高遥控小车”的源代码
←
乐高遥控小车
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language| 蓝牙小夜灯}} {| style="width: 800px;" |- | ==概述== *项目名称:乐高蓝牙遥控小车 *目的:通过mCookieLEGOShield,使用mCookie控制NXT接口的电机和传感器制作一个遥控小车。 *也可以支持蓝牙APP遥控 *难度:中级 *耗时:5小时 ==材料清单== {| border="0" cellpadding="10" width="100%" |- |width="33%" valign="top" align="left"| ===模块清单 === {|class="wikitable" |- |模块||数量||功能 |- |[[MCookie-CoreUSB/zh]]||1||核心模块 |- |[[MCookie-BT/zh]]||1||通讯模块 |- |[[MCookie-LEGOShield/zh]]||1||乐高驱动底板 |} |width="33%" valign="top" align="left"| ===其他材料=== {|class="wikitable" |- |部件||数量||功能 |- |NXT接口电机||2||驱动车轮 |- |NXT连接线||2||连接电机与底板 |- |LEGO积木结构件||若干||搭建小车结构 |- |Micro-USB数据线||1||下载程序 |- |7.4v锂电池||1||供电 |} |} [[File:Boxz物料.jpg||900px|center]] ==实验原理== *机器人小车种类比较多,如循迹,壁障,蓝牙遥控小车,电脑鼠等,不同功能需要采用不同传感器。 *但是其行走控制方式基本是一样的,无非就是前后左右四个方向运动。 *本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 *该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 **1)车轮采用两个减速电机,扭力大,可PWM调速,控制简单。 **2)车身采用木板,大小:8cm*8cm*8cm。 **3)整个控制系统包括四个部分: *中央处理器 **采用'''[[MCookie-CoreUSB/zh]]'''作为核心,就像电脑的CPU,人的大脑,有一定思维能力,能够处理复杂事件。 *无线通讯 **采用'''[[MCookie-BT/zh]]'''无线通讯方案,配合手机APP直接控制,控制范围:空阔地域大约20米。 *电机控制 **采用'''[[MCookie-LEGOShield/zh]]'''上自带的一组直流电机驱动单元,一个单元能够驱动两个电机,电机接口兼容乐高NXT接口。 *供电系统 **采用'''[[MCookie-LEGOShield/zh]]'''上自带的锂电池管理单元,驱动电机以及MCU。 ==程序下载== *乐高遥控小车代码:'''[xxxxx]''' ==程序烧写== *用数据线连接'''[[MCookie-CoreUSB/zh]]'''准备上传程序。 **注意:最好不要将所有模块堆叠在乐高底板之后再上传程序 *打开Arduino IDE for Microduino,环境,(搭建参考:'''[[AVR核心:Getting started/zh]]''') *点击'''【工具】''',确认'''板卡(Microduino/MCookie-Core USB)处理器(USB)'''选择无误,并选中对应'''端口号(COMX)''' *点击'''【文件】'''->'''【打开】''',浏览到项目程序地址,点击'''“LEGO_Bluetooth_Car.ino”'''程序打开 *几项都无误后,点击'''"→"'''按钮下载程序到开发板上 ==拼装过程== {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step1''': *利用'''电机固定座'''将两个作为动力的'''N20减速电机'''固定在'''结构-A1'''上 *将'''车轮'''、'''轮胎'''、'''联轴器'''组装后与固定后的'''N20减速电机'''进行装配 |width="50%" valign="top" align="left"| [[File:Cubestep1.jpg||535px|center]] |} {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step2''': *将'''结构-A2'''垂直插入'''结构-A1'''两边的凹进结构 *用两个'''结构-A4'''将'''辅助轮'''从底部固定在'''结构-A3'''上 *再如图示将'''结构-A3'''和'''结构-B1'''从上到下依次准备好 |width="50%" valign="top" align="left"| [[File:Cubestep2.jpg||535px|center]] |} {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step3''': *将'''结构-B2'''和'''结构-C1'''分别用于两侧面固定 |width="50%" valign="top" align="left"| [[File:Cubestep3.jpg||535px|center]] |} {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step4''': *将以下模块堆叠在'''[[MCookie-LEGOShield/zh]]'''底板上 **核心模块:'''[[MCookie-CoreUSB/zh]]'''模块 **通讯模块:''"[[MCookie-BT/zh]]'''模块 *将'''电池'''连接在'''[[MCookie-LEGOShield/zh]]'''底板的'''电池接口''' *将两个'''NXT电机'''通过""NXT连接线""分别连在'''[[MCookie-LEGOShield/zh]]'''底板的'''电机接口S3和S4'''上 |width="50%" valign="top" align="left"| [[File:Cubestep4.jpg||535px|center]] |} {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step5''': *用两个'''结构-C3'''将'''辅助轮'''从底部固定在'''结构-C2'''上 *将'''结构-C2'''拼接在正侧面 |width="50%" valign="top" align="left"| [[File:Cubestep5.jpg||535px|center]] |} {| border="0" cellpadding="10" width="100%" |- |width="50%" valign="top" align="left"| *'''Step6''': *将'''结构-D2'''拼接在后侧面,可利用天线背面贴纸将天线贴在任意位置 *将'''结构-D1'''作为顶面盖住,安装到此完成 |width="50%" valign="top" align="left"| [[File:Cubestep6.jpg||535px|center]] |} ==操作说明== ===蓝牙遥控指南=== *首先下载蓝牙遥控APP(Android):'''[[File:MTank.rar|mTank.zip]]''' *确定手机版本号是Android 4.3以上,确定当前蓝牙功能已打开 *搜索到名为'''“Microduino”'''的蓝牙设备进行连接 *接下来就可以通过APP进行遥控了 ==疑难解答/FAQ== *Q:'''乐高蓝牙小车支持哪些电池?''' **A:乐高蓝牙小车支持7.4v 2S锂电池。 *Q:'''乐高蓝牙小车的电机怎么接?''' **A:两个电机分别接在电机接口S3、S4上即可(可以通过修改程序修改)。 *Q:'''我的手机支持蓝牙遥控吗?''' **A:只要是Android 4.3以上,都可以支持。 |} ==程序说明== <source lang=cpp> #include <mCookieLEGO.h> #include <Microduino_Protocol_HardSer.h> #include "Wire.h" uint16_t Data[8]; int speedLeft = 0; int speedRight = 0; Protocol ProtocolB(&Serial1, TYPE_NUM); mCookieLEGO m; void setup(){ Wire.begin(); Serial.begin(9600); ProtocolB.begin(9600); //9600/19200/38400 m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA); m.configConnection(0xFFFF); } uint8_t dis; void loop(){ int sta = ProtocolB.parse(Data, MODE_WHILE); if (sta != P_NONE) { switch (sta) { case P_FINE: speedLeft = map(Data[1], 1000, 2000, -255, 255); speedRight = speedLeft; int speedTurn = map(Data[4], 1000, 2000, -255, 255); if(speedTurn < 0){ speedLeft += speedTurn; } else{ speedRight -= speedTurn; } break; // default: // break; } } refreshSpeed(); delay(10); } void refreshSpeed{ m.motor_setFixedDrive(mCookieLEGO::M3, speedLeft); m.motor_setFixedDrive(mCookieLEGO::M4, speedRight); } </source>
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
乐高遥控小车
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息