萌版蜘蛛侠:爬墙机器人DIY作品秀
millis() - time) 》 3000) {
// if the sensor was covered for more than 3 seconds, re-calibrate
calibrate();
}
// if the top sensor was covered, we change state
if (top 《 topThreshhold) {
STATE = (STATE+1) %3;
setColor(STATE);
Serial.print("CHANGED STATE: ");
Serial.println(STATE);
}
// Read the other sensors
right = analogRead(rightSensor);
left = analogRead(leftSensor);
front = analogRead(frontSensor);
if (STATE == RED) {
// go towards objects
if (front 《 frontThreshhold) {
goForward();
} else if (right 《 rightThreshhold) {
turnRight();
} else if (left《leftThreshhold) {
turnLeft();
} else {
goForward();
}
}
if (STATE == GREEN) {
// go away from objects
if (front 《 frontThreshhold) {
int dir = random(0,2);
if (dir == 0 && right 》 rightThreshhold) {
turnRight();
} else if (dir == 1 && left 》 leftThreshhold) {
turnLeft();
}
} else if (right 《 rightThreshhold) {
if (left 》 leftThreshhold) {
turnLeft();
} else {
goForward();
}
} else if (left《leftThreshhold) {
if (right 》 rightThreshhold) {
turnRight();
} else {
goForward();
}
} else {
goForward();
}
delay(200);
}
if (STATE == ORANGE) {
// only move if there are no hand motions- otherwise blink
int dir = random(0, 3);
if (left《leftThreshhold || right《rightThreshhold ||
front《leftThreshhold) {
blinkOrange();
} else {
if (dir == 0) {
goForward();
} else if (dir == 1) {
turnRight();
} else if (dir == 2) {
turnLeft();
}
delay(1000);
}
delay(10);
}
}
红色最快,趋向物体(当光传感器检测到光被挡住时);
蓝色是中速,背向物体(背向黑色区域);
黄色最慢,检测到物体就停止。
● 小W和它的兄弟姐妹们通过磁铁轮子在墙上运动,可以左转右转和前行;根据不同模式可进行调速。
● 当顶部的传感器被遮住超过3秒,所有传感器自动校准。
12 别让小W裸奔
● 给小W穿件衣裳。但之前必须确定程序能跑,然后你能分得清哪个伺服机是左,哪个是右。
● 因为小W要垂直运动,衣裳越轻越好啊!我用的硬纸壳,其实报纸或者轻塑料都能使。
● 我把伺服机用热胶黏在硬纸盒里,传感器分布在前后左右,然后用硬纸壳加固。为了让热传感器和齿轮舒舒服服在里面呆着,我量体裁衣剪了些洞。小W的顶部其实就是。。。就是一张纸!
● 然后。。。然后没有然后了,你就做好了,玩儿去吧!
- 先进手术系统所需的独特电源需求,凌力尔特来接招(10-11)
- 3G/WIFI控制太阳能驱动机器人制作详解(10-28)
- 超声波移动机器人导航设计方法(04-11)
- ROCKWELL系统在机器人汽车焊装线上的应用(07-07)
- 智能机器人在家庭医疗保健的设计和应用(09-19)
- 基于DSP和机器人的声控系统设计与实现(02-21)