“疯狂老鼠”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
视频
 
(未显示3个用户的4个中间版本)
第7行: 第7行:
  
 
==原理==
 
==原理==
利用震动传感器检测老鼠被拍打,然后让电机带动老鼠向前运行一段距离
+
利用震动传感器检测老鼠被拍打,然后让电机带动老鼠向前运行一段距离。
 
+
[[File: _304_DozingDonkey-sch.jpg|600px|center]]
 
==设备==
 
==设备==
 
{|class="wikitable"
 
{|class="wikitable"
第14行: 第14行:
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|[[Microduino-CoreUSB/zh]]||1||核心板
+
|[[mCookie-CoreUSB/zh]]||1||核心板
 
|-
 
|-
|[[Microduino-Sensorhub/zh]]||1||传感器转接板
+
|[[mCookie-Hub/zh]]||1||传感器转接板
 
|-
 
|-
| [[Microduino-Shack/zh]]||1||震动传感器  
+
|[[Microduino-Shock/zh]]||1||震动传感器
 
|-
 
|-
| [[Microduino-Robot/zh]]||1||机器人控制板
+
|[[mCookie-BM/zh]]||1||电源管理
 
|-
 
|-
| [[Microduino-Stepper/zh]]||1||步进电机驱动模块
+
|[[mCookie-Motor/zh]]||1||直流电机驱动模块
|-
 
| [[Motor]]||1||电机
 
 
|}
 
|}
[[File:_crazy_mouse.jpg|600px|center|thumb]]
+
[[File: _304_DozingDonkey-module.jpg|600px|center]]
 +
 
 +
==准备==
 +
*Setup 1:用连接线将传感器安装到Hub模块的D10接口上。
 +
[[File: _304_DozingDonkey _hub.jpg|600px|center]]
 +
*Setup 2:将CoreUSB,Hub,Sound连接在一起。通过USB数据线将接入电脑。
 +
[[file:mCookie-mouse-pc.JPG|600px|center]]
 +
==代码==
 +
*打开Arduino IDE,将下列代码复制到IDE中。
 +
<source lang="cpp">
 +
#define motor_pinB 6
 +
#define motor_pinA 8
 +
 
 +
//#define servo_pinB 5
 +
//#define servo_pinA 7
 +
 
 +
const int vibrationPin = 10;    // the number of the pushbutton pin
 +
 
 +
int vibrationState = 0;
 +
 
 +
void setup() {
 +
  Serial.begin(9600);
 +
  pinMode(vibrationPin, INPUT);
 +
 
 +
  pinMode(motor_pinB, OUTPUT);
 +
  pinMode(motor_pinA, OUTPUT);
 +
}
 +
 
 +
void loop() {
 +
 
 +
  vibrationState = digitalRead(vibrationPin);
 +
  if (vibrationState == HIGH) {
 +
    Serial.println("ONONONON");
 +
    fullForward();
 +
  } else {
 +
    stop();
 +
  }
 +
}
 +
 
 +
//stop
 +
void stop() {
 +
  digitalWrite(motor_pinB, LOW);
 +
  digitalWrite(motor_pinA, LOW);
 +
  //delay(2000);
 +
}
  
==搭建硬件==
+
//full forward
*Setup 1:将CoreUSB,Robot,Stepper与Sensorhub叠堆。
+
void fullForward() {
[[File:CoreUSB_Robot_Sensorhub.jpg|600px|center|thumb]]
+
  //digitalWrite(motor_pinB, HIGH);
*Setup 2:将震动传感器接到Sensorhub的D2引脚上,电机接到Stepper的OUT1A,OUT1B引脚上。
+
  analogWrite(motor_pinB,255);//0-255
[[file:Microduino-sensorhub_stepper.JPG|thumb|800px|center]]
+
  digitalWrite(motor_pinA, LOW);
[[File:temp_ir_sensor.jpg|600px|center|thumb]]
+
  delay(3000);
 +
}
 +
</source>
 +
*在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号。
 +
[[file:upload.JPG|600px|center]]
 +
*编译完成后直接下载程序。[[file:upload-hum.JPG|600px|center]]
  
 
==软件调试==
 
==软件调试==
 
*控制引脚定义说明。
 
*控制引脚定义说明。
 
<source lang="cpp">
 
<source lang="cpp">
#define PIN_SHACK 2    //震动传感器输入引脚
+
#define motor_pinB 6  //电机1
#define PIN_MOTOR 6    //电机输出引脚
+
#define motor_pinA 8  //电机1
  
 +
//#define servo_pinB 5  //电机2
 +
//#define servo_pinA 7  //电机2
 +
 +
const int vibrationPin = 10;  // 震动传感器
 
</source>
 
</source>
  
*判断震动传感器是否被触发,触发后控制电机运行3秒钟。
+
*找到下面这段代码,其中255是电机的最大速度值,你可以根据需要调整为0-255的任意值(建议数值不要小于60,否则可能会影传感器触发的稳定性)。
 +
*Delay可以控制触发电机后运转的时间,预设为3000毫秒,即3秒,你可以根据需要修改。
 
<source lang="cpp">
 
<source lang="cpp">
sensorReading = digitalRead(PIN_SHACK);    //读取震动传感器状态
+
void fullForward() {
if(sensorReading == HIGH)
+
  //digitalWrite(motor_pinB, HIGH);
{
+
  analogWrite(motor_pinB,255);//0-255
   digitalWrite(PIN_MOTOR,LOW);   //电机工作3秒钟
+
   digitalWrite(motor_pinA, LOW);
 
   delay(3000);
 
   delay(3000);
  digitalWrite(PIN_MOTOR,HIGH);
 
 
}
 
}
delay(1000);
 
 
</source>
 
</source>
 
+
==搭建硬件==
==程序==
+
*Setup 1:将电机连接到Motor模块如上图所示的接口上。
[[https://github.com/Microduino/Microduino_Tutorials/tree/master/MCookie_Tutorial/MicroduinoCrazyMouse MicroduinoCrazyMouse]]
+
[[File: _304_DozingDonkey _Motor.jpg|600px|center]]
 
+
*Setup 2:你可以根据应用的需要将配件安装在电机和轴上,并固定在其他材料上。。
 +
[[File: _304_DozingDonkey _Motor1.jpg|400px|center]]
 +
*Setup 3:将激活后的电池盒与BM模块相连.
 +
[[File:CoreUSB_Ble_steup2.jpg|600px|center]]
 +
*Setup 4:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。
 +
[[File: _304_DozingDonkey _steup-ok.jpg|600px|center]]
 
==结果==
 
==结果==
 
拍打老鼠的身体,震动传感器检测到震动,老鼠向前运行3秒钟。
 
拍打老鼠的身体,震动传感器检测到震动,老鼠向前运行3秒钟。
  
==视频==
+
 
  
 
|}
 
|}

2017年4月12日 (三) 03:33的最新版本

Language English

目的

拍打老鼠的身体就会向前狂奔一段距离。

原理

利用震动传感器检测老鼠被拍打,然后让电机带动老鼠向前运行一段距离。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-Shock/zh 1 震动传感器
mCookie-BM/zh 1 电源管理
mCookie-Motor/zh 1 直流电机驱动模块

准备

  • Setup 1:用连接线将传感器安装到Hub模块的D10接口上。
  • Setup 2:将CoreUSB,Hub,Sound连接在一起。通过USB数据线将接入电脑。

代码

  • 打开Arduino IDE,将下列代码复制到IDE中。
#define motor_pinB 6
#define motor_pinA 8

//#define servo_pinB 5
//#define servo_pinA 7

const int vibrationPin = 10;     // the number of the pushbutton pin

int vibrationState = 0;

void setup() {
  Serial.begin(9600);
  pinMode(vibrationPin, INPUT);

  pinMode(motor_pinB, OUTPUT);
  pinMode(motor_pinA, OUTPUT);
}

void loop() {

  vibrationState = digitalRead(vibrationPin);
  if (vibrationState == HIGH) {
    Serial.println("ONONONON");
    fullForward();
  } else {
    stop();
  }
}

//stop
void stop() {
  digitalWrite(motor_pinB, LOW);
  digitalWrite(motor_pinA, LOW);
  //delay(2000);
}

//full forward
void fullForward() {
  //digitalWrite(motor_pinB, HIGH);
  analogWrite(motor_pinB,255);//0-255
  digitalWrite(motor_pinA, LOW);
  delay(3000);
}
  • 在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号。
Upload.JPG
  • 编译完成后直接下载程序。

软件调试

  • 控制引脚定义说明。
#define motor_pinB 6  //电机1
#define motor_pinA 8  //电机1

//#define servo_pinB 5   //电机2
//#define servo_pinA 7   //电机2

const int vibrationPin = 10;  // 震动传感器
  • 找到下面这段代码,其中255是电机的最大速度值,你可以根据需要调整为0-255的任意值(建议数值不要小于60,否则可能会影传感器触发的稳定性)。
  • Delay可以控制触发电机后运转的时间,预设为3000毫秒,即3秒,你可以根据需要修改。
void fullForward() {
  //digitalWrite(motor_pinB, HIGH);
  analogWrite(motor_pinB,255);//0-255
  digitalWrite(motor_pinA, LOW);
  delay(3000);
}

搭建硬件

  • Setup 1:将电机连接到Motor模块如上图所示的接口上。
  • Setup 2:你可以根据应用的需要将配件安装在电机和轴上,并固定在其他材料上。。
  • Setup 3:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 4:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。

结果

拍打老鼠的身体,震动传感器检测到震动,老鼠向前运行3秒钟。