(SKU:ROB0127) 虫虫可编程机器人
目录 |
简介
虫虫机器人是DFRobot最新推出的一款寓教于乐的革新产品。通过配套的App操控虫虫机器人机器人,小朋友可以一起玩各种有趣的游戏,学习机器人的相关知识,学习对机器人进行多种编程,充分培养小朋友的逻辑思维能力,发挥创造力,是小朋友很好的机器人启蒙伙伴。 虫虫机器人采用新型仿生结构模拟昆虫形态,需由数十个不同组件拼装完成,可以充分享受组装、创造机器人带来的乐趣。
产品规格
- 主控芯片:Atmega 328p (Bootloader: Arduino UNO)
- 供电方式:microUSB/AA电池x4
- 工作电压:3.5--6V
- 驱动方式:舵机调控
- 静态功耗:100mA
产品特性
- 支持舵机调控
- 支持红外壁障功能
- 支持RGB变色
- 支持光线测量
- 支持测量距离
- 支持声音控制
- 支持红外接收
- 支持触摸开关
- 支持蓝牙无线下载程序
功能清单
- 舵机控制
- 红外避障
- 全彩RGB LED
- 仿真驱光
- 距离测量
- 感知声音大小
- 触摸开启
虫虫机器人集成一下主要部件:
- 1个 红外接收管
- 2个 小乌龟按钮(包括复位按键和boot按键)
- 1个 全彩RGB灯珠
- 2个 光敏电阻
- 1个 单通道电容式触摸芯片
- 2个 驻极体话筒
虫虫机器人为初学者提供8节课程,从入门到实现避障等测试,使用户通过教程轻松掌握。
- 舵机控制
- 距离测试
- RGB灯测试
- 光线强度测试
- 红外壁障测试
- 声音大小测试
- 触摸开关测试
Antbo 说明
Antbo HeadBoard 说明
标号 | 名称 | 功能描述 |
1 | 金属弹片 | antbo头部触摸开关 |
2 | 放大器 | 放大电路信号 |
3 | 单通道电容式触摸芯片 | 电容感应人体或金属触碰信号 |
4 | 驻极体话筒 | 声音识别 |
5 | PH2.0-9P立式贴片座 | 与主板转接接口 |
6 | 红外接收头贴片 | 红外壁障 |
Antbo MianBoard
|
|
库文件
示例代码及硬件详述
舵机控制测试 |
样例代码
前进5秒,后退5秒,左转5秒,右转5秒
请安装好电池。 |
#include <Arduino.h> #include <Servo.h> #include "ANTboaction.h" ANTboaction action; unsigned long loopTime = millis(); char mode = 3; void setup() { pinMode(9,OUTPUT); digitalWrite(9,HIGH); action.setup(); } void loop() { if(millis() - loopTime > 5000) { mode++; if(mode == 4) mode = 0; loopTime = millis(); } switch(mode) { case 0:action.forwardAction(2,3,7);break; case 1:action.reverseAction(2,3,7);break; case 2:action.leftTurnAction(1,4,4);break; case 3:action.rightTurnAction(1,4,4);break; default:break; } } /* case 0:action.forwardAction(2,3,7),虫虫运动速度有关系,(2,3,7)表示每次舵机运动的步进角是2,中间舵机每次间隔3秒改变一次步进,前脚和后脚每次间隔7秒改变一次步进 */
测试过程
烧入样例代码之后可以通过虫虫腿部的活动可以很明显的看到,前后舵机运动。
距离测试
样例代码
虫虫机器人 Arduino 距离驱动代码:测试距离效果
1. 请安装电池,外部供电。
|
//检测10cm左右是否有障碍,有障碍物时串口有打印相关提示 #include<Arduino.h> #include<ANTboir.h> ANTboir ir; unsigned long irTime = 0; void setup() { pinMode(9,OUTPUT); digitalWrite(9,HIGH); Serial.begin(9600); ir.setup(); } void loop() { if(millis() - irTime > 200){ irTime = millis(); ir.update(); } if(ir.isObstacled()) Serial.println("In front of obstacles"); }
测试过程
烧入样例代码之后可以通过Arduino IDE的串口监视器查看当前的障碍物检测结果,把手在放左侧表情板的前方10cm处。可以看到串口不停的打印In front of obstacles,表明10mm以内检测到了障碍物。
RGB灯测试 |
RGB灯原理及定型应用
RGB灯是用内置IC芯片的RGB灯珠组成,通过单总线控制灯带颜色及亮度。在机器人领域中,可让小车更加炫酷。
相关库文件下载:虫虫机器人库文件
样例代码
测试代码如下:
//红绿蓝三色循环点亮 #include <Arduino.h> #include <ANTboled.h> ANTboled led(2); void setup() { pinMode(2,INPUT); led.setup(); } void loop() { led.lightLedAll(100,0,0,255);//这是设置灯的亮度和颜色(红,绿,蓝,亮度),红颜色的饱和度是100,(范围是0-255) led.update(); delay(1000); led.lightLedAll(0,100,0,255); led.update(); delay(1000); led.lightLedAll(0,0,100,255); led.update(); delay(1000); }
测试过程
烧入样例代码之后可以看到主板的RGB灯亮并以红蓝绿循环闪烁,当然可以用RGB任意组合成很多种颜色,非常炫酷。
检测光线亮度值 |
光线传感器原理及定型应用
是通过光明电阻,测量不同环境下光的强度,在串口监视器中以数值显示。
红外壁障测试 |
红外避障传感器原理及定型应用
红外避障传感器由集发射与接收于一体的光电传感器。发射管以38KHz频率连续发射20个脉冲,并在一定时间内检测接收到的脉冲数量,来判断小车距离障碍物的距离。在机器人领域中,可应用于避开障碍物等。
样例代码
虫虫机器人 Arduino 红外壁障传感器驱动代码:测试壁障效果
1. 请安装电池,外部供电。
|
#include<Arduino.h> #include<ANTboir.h> #include<ANTboaction.h> #include<Servo.h> ANTboaction action; ANTboir ir; unsigned long irTime = 0; unsigned long reverseTime = 0; char mode = 0; void setup() { pinMode(9,OUTPUT); digitalWrite(9,HIGH); Serial.begin(9600); action.setup(); ir.setup(); } void loop() { if(millis() - irTime > 200){ irTime = millis(); ir.update(); } if(ir.isObstacled()) { mode = 1; reverseTime = millis(); } if(mode == 1) { if(millis() - reverseTime < 1000) { action.reverseAction(2,3,7); } else mode = 0; } else { action.forwardAction(2,3,7);//舵机运动的步进角是2,中间舵机每次间隔3秒改变一次步进,前脚和后脚每次间隔7秒改变一次步进 } }
测试过程
遇到障碍物后退,否则一直前进。
声音大小测试
声音传感器原理及定型应用
一款基于麦克风为声音检测的传感器,可用来对周围环境中的声音强度进行检测。
样例代码
#include <Arduino.h> //定义声音传感器引脚 #define LEFTSOUNDPINS A0 #define RIGHTSOUNDPINS A1 unsigned long currentTime = 0; void setup() { Serial.begin(115200); pinMode(LEFTSOUNDPINS,INPUT); pinMode(RIGHTSOUNDPINS,INPUT); } void loop() { if(millis() - currentTime > 30) { currentTime = millis(); Serial.print("leftSoundValue = "); Serial.print(analogRead(LEFTSOUNDPINS)); Serial.print("\t"); Serial.print("rightSoundValue = "); Serial.println(analogRead(RIGHTSOUNDPINS)); } }
测试过程
串口打印声音传感器检测的音量大小,声音越大,数值越大
触摸开关测试
|}
触摸开关原理及定型引用
基于电容感应的触摸开关模块,当人体或金属直接触碰到传感器上的金属面时,就可以被感应到。
样例代码
#include <Arduino.h> const int touchPins = 2; int touchState = 0; void setup() { pinMode(9,OUTPUT); pinMode(touchPins,INPUT); digitalWrite(9,HIGH); Serial.begin(115200); } void loop() { touchState = digitalRead(touchPins); Serial.print("touchValue = "); Serial.println(touchState); delay(50); }
测试过程
串口打印触摸传感器检测的检测值,触摸时打印1