查看“乐高遥控小车”的源代码
←
乐高遥控小车
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language| 蓝牙小夜灯}} {| style="width: 800px;" |- | ==目的== 通过mCookieLEGOShield,使mCookie可以控制NXT接口的电机和传感器。 ==原理== 通过手机端的mTank软件发送指令,叠加在mCookie的蓝牙模块接收并解析指令 通过IIC通讯,mCookie控制LEGOShield,完成对NXT接口电机和传感器的控制 ==设备== {|class="wikitable" |- |模块||数量||功能 |- |[[MCookie-CoreUSB/zh]]||1||核心板 |- |[[MCookie-LEGOShield/zh]]||1||乐高底板 |- |[[MCookie-BT/zh]]||1||蓝牙模块 |} ==准备== *Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。 [[File:CoreUSB_Ble_pc.jpg|600px|center]] *Setup 2:点击文件 >示例 > mCookie > _201_CowardlyNightLight_BLE, 加载程序。 [[File: light_indicator-ino.jpg|600px|center]] * Setup 3:加载代码,将程序代买拷贝到IDE中。程序编译通过后选择好板卡和COM端口下载程序。 [[File: light_indicator-com.jpg|600px|center]] *Setup4: 组装乐高小车,并将两个电机线插在MCookie-LEGOShield的M3,M4接口 ==程序说明== <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> “ble()”函数是蓝牙接收数据及控制彩灯。 *定义蓝牙通讯串口 <source lang="cpp"> #define my_Serial Serial1 </source> *定义传感器引脚,及可连接的灯的数量。 <source lang="cpp"> #define PIXEL_PIN 6 // Digital IO pin connected to the NeoPixels. #define PIXEL_COUNT 2 #define lightSensorPin A0 </source> *环境光预设值,更改Light的大小就可以改变在某个亮度下开启灯光。 <source lang="cpp"> #define lightSwitch 700 </source> *读取亮度函数 <source lang="cpp"> sensorValue = analogRead(lightSensorPin); </source> *判断环境参数低于预设值则开启灯光,并且通过蓝牙控制,否则关闭灯光。 <source lang="cpp"> if(sensorValue>lightSwitch) { Serial.println(sensorValue); strip.setPixelColor(0, strip.Color(0, 0, 0)); strip.setPixelColor(1, strip.Color(0, 0, 0)); strip.show(); } else { ble(); if (!color_en) { for (int i = 0; i < 1; i++) rainbow(10); } } </source> ==调试代码== *通过CoreUSB模块连接电脑并加载程序后,点击串口监视器,会弹出一个窗口,里面会显示光线传感器接收到的光线值的变化。 [[File:CoreUSB_light_ino1.jpg|600px|center]] 当前设定的感光值是700,你可以尝试根据之前监测出来的数据在程序中更改这一数值,重新刷入程序,看看会产生什么效果。 ==搭建硬件== *Setup 1:将彩灯接到Sensorhub的D6引脚上,将光敏传感器接到A0引脚上。 [[File:night_colorled_ble.jpg|600px|center]] LED灯的连接方法如图,请注意连接顺序,从LED的IN接口接入,从OUT接口接出本应用最多可控制2个LED灯。 [[File:CoreUSB_Ble_steup11.jpg|600px|center]] *Setup 2:将激活后的电池盒与BM模块相连. [[File:CoreUSB_Ble_steup2.jpg|600px|center]] *Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。 [[File:CoreUSB_night led_steup3.jpg|600px|center]] ==APP调试== *Setup 1:扫描左侧的二维码,下载Bluetooth Light APP。 [[File:app_Ble_steup1.jpg|600px|center]] *Setup 2:载安装App后,打开应用,如果没有打开蓝牙,系统会提示,选择打开。 [[File:app_Ble_steup2.jpg|600px|center]] *Setup 3:点击Scan,手机会开始搜索蓝牙设备,并显示在下方,选择名称为Microduino的设备. [[File:app_Ble_steup3.jpg|600px|center]] *Setup 4:连接成功后,你就可以用手机来控制灯光了 [[File:app_Ble_steup4.jpg|600px|center]] ==结果== 遮住光线传感器,或进入较暗环境下,LED灯就会发光,这时你就可以用蓝牙来控制灯光的颜色。你也可以通过乐高搭建一个漂亮的外观。 [[File:legao_night_led.jpg|600px|center]] ==视频== |}
该页面使用的模板:
模板: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
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息