疯狂老鼠

来自Microduino Wikipedia
Zhangfengfeng讨论 | 贡献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秒钟。