_SKU_ROB0127__虫虫可编程机器人 - jimaobian/DFRobotWikiCn GitHub Wiki
虫虫机器人是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灯测试
- 光线强度测试
- 红外壁障测试
- 声音大小测试
- 触摸开关测试
image:Antbo HeadBoard-01.png|Antbo HeadBoard-01 image:Antbo HeadBoard-02.png|Antbo HeadBoard-02
标号 | 名称 | 功能描述 |
1 | 金属弹片 | antbo头部触摸开关 |
2 | 放大器 | 放大电路信号 |
3 | 单通道电容式触摸芯片 | 电容感应人体或金属触碰信号 |
4 | 驻极体话筒 | 声音识别 |
5 | PH2.0-9P立式贴片座 | 与主板转接接口 |
6 | 红外接收头贴片 | 红外壁障 |
引脚说明
| | | | ---------------------------------------------------------------- | | | : | |
标号 | 名称 | 功能描述 |
1 | LED | RGB变色显示 |
2 | 三轴加速度传感器 | 倾斜角度测量 |
3 | 主控芯片 | 控制作用 |
4 | BLE蓝牙芯片 | 蓝牙连接 |
引脚说明
| **注意:**在运行以下程序的时候,请先加载库文件。 如何加载库文件。 |
| ===舵机控制测试=== |
前进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 距离驱动代码:测试距离效果
-
请安装电池,外部供电。
-
需要Arduino IDE 1.6.5来编译 |
//检测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灯是用内置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任意组合成很多种颜色,非常炫酷。
| ===检测光线亮度值=== |
是通过光明电阻,测量不同环境下光的强度,在串口监视器中以数值显示。
测试代码如下:
#include <Arduino.h>
//定义光线传感器引脚
#define LEFTLIGHTPINS A7
#define RIGHTLIGHTPINS A6
unsigned long currentTime = 0;
void setup() {
Serial.begin(115200);
pinMode(LEFTLIGHTPINS,INPUT);
pinMode(RIGHTLIGHTPINS,INPUT);
}
void loop() {
if(millis() - currentTime > 30)
{
currentTime = millis();
Serial.print("leftLightValue = ");
Serial.print(analogRead(LEFTLIGHTPINS));
Serial.print("\t");
Serial.print("rightLightValue = ");
Serial.println(analogRead(RIGHTLIGHTPINS));
}
}
串口打印光线传感器检测的亮度值,越亮值越小
| ===红外壁障测试=== |
红外避障传感器由集发射与接收于一体的光电传感器。发射管以38KHz频率连续发射20个脉冲,并在一定时间内检测接收到的脉冲数量,来判断小车距离障碍物的距离。在机器人领域中,可应用于避开障碍物等。
虫虫机器人 Arduino 红外壁障传感器驱动代码:测试壁障效果
-
请安装电池,外部供电。
-
需要Arduino IDE 1.6.5来编译 |
#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
[Link DFRobot商城购买链接] |}