(SKU:ROB0127) 虫虫可编程机器人

来自DFRobot Product Wiki
2018年7月17日 (二) 14:41Shuai.Chen讨论 | 贡献的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
虫虫机器人

目录

简介

虫虫机器人是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

Antbo HeadBoard 说明


引脚说明
标号 名称 功能描述
1 金属弹片 antbo头部触摸开关
2 放大器 放大电路信号
3 单通道电容式触摸芯片 电容感应人体或金属触碰信号
4 驻极体话筒 声音识别
5 PH2.0-9P立式贴片座 与主板转接接口
6 红外接收头贴片 红外壁障


Antbo MianBoard

Antbo MianBoard
引脚说明
标号 名称 功能描述
1 LED RGB变色显示
2 三轴加速度传感器 倾斜角度测量
3 主控芯片 控制作用
4 BLE蓝牙芯片 蓝牙连接


库文件

注意:在运行以下程序的时候,请先加载库文件。 如何加载库文件

示例代码及硬件详述

舵机控制测试


样例代码

前进5秒,后退5秒,左转5秒,右转5秒

Warning yellow.png

请安装好电池。


#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 距离驱动代码:测试距离效果

Warning yellow.png

1. 请安装电池,外部供电。
2. 需要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以内检测到了障碍物。

In front of obstacles.jpg


RGB灯测试

RGB灯原理及定型应用

RGB灯是用内置IC芯片的RGB灯珠组成,通过单总线控制灯带颜色及亮度。在机器人领域中,可让小车更加炫酷。


Warning yellow.png

相关库文件下载:虫虫机器人库文件

样例代码

测试代码如下:

//红绿蓝三色循环点亮
#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任意组合成很多种颜色,非常炫酷。

RGB blue.png

检测光线亮度值

光线传感器原理及定型应用

是通过光明电阻,测量不同环境下光的强度,在串口监视器中以数值显示。

光敏电阻.png

样列代码

测试代码如下:



#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)); 
 }
 
}



测试过程

串口打印光线传感器检测的亮度值,越亮值越小

光线测试.png

红外壁障测试


红外避障传感器原理及定型应用

红外避障传感器由集发射与接收于一体的光电传感器。发射管以38KHz频率连续发射20个脉冲,并在一定时间内检测接收到的脉冲数量,来判断小车距离障碍物的距离。在机器人领域中,可应用于避开障碍物等。

样例代码

虫虫机器人 Arduino 红外壁障传感器驱动代码:测试壁障效果

Warning yellow.png

1. 请安装电池,外部供电。
2. 需要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)); 
 }
 
}

测试过程

串口打印声音传感器检测的音量大小,声音越大,数值越大

Result DFR0034.png

触摸开关测试

|}

触摸开关原理及定型引用

基于电容感应的触摸开关模块,当人体或金属直接触碰到传感器上的金属面时,就可以被感应到。

样例代码

#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

触摸测试.png

更多


Shopping car.png [Link DFRobot商城购买链接] |}

个人工具
名字空间

变换
操作
导航
工具箱