Page 115 - ArduinoและPOP-BOT
P. 115
115
/*******************************************************************************
* POP-BOT V1.0
* Filename : Robot_Survey.pde
********************************************************************************/
#include <popbot.h> // Include library for POP-BOT
#include <gp2d120_lib.h>
#define POW 80
int dist;
void forward(unsigned int time)
{
motor(1,POW);
motor(2,POW);
sleep(time);
}
void backward(unsigned int time)
{
motor(1,-POW);
motor(2,-POW);
sleep(time);
}
void turn_left(unsigned int time)
{
motor(1,-POW);
motor(2,POW);
sleep(time);
}
void setup()
{
}
void loop()
{
dist = getdist(5);
if(dist<15)
{
backward(600);
turn_left(500);
}
else
{
forward(1);
}
}
การทํ างานของโปรแกรม
(1) เริ่ มต นโปรแกรม หุ นยนต จะส งเสี ยงออกมา 1 ครั้ ง โดยเสี ยงน ี้ เป นตั วแสดงสถานะของหุ นยนต ถ าใน
ระหว างที่ หุ นยนต ทํ างาน เกิ ดมี เสี ยงดั งขึ้ น แสดงว า ไมโครคอนโทรลเลอร รี เซต สาเหตุ มั กมาจากแบตเตอรี่ หมด
(2) อ านค าจากโมดู ล GP2D120 แล วตรวจสอบว า น อยกว า 15 หรื อไม ถ าน อยกว า แสดงว า วั ตถุ ที่ อยู
ด านหน าของหุ นยนต มี ระยะห างน อยกว า ใกล กว า 15 เซนติ เมตร (โดยประมาณ) ต องสั่ งให หุ นยนต ถอยหลั ง
0.6 วิ นาที และเลี้ ยวซ ายอี ก 0.5 วิ นาที ถ าค าที่ อ านได มากกว า 15 หุ นยนต จะยั งคงเคลื่ อนที่ ไปข างหน า
(3) ทํ าคํ าสั่ งเหล านี้ ซํ้ าไปเรื่ อยๆ ไม มี ที่ สิ้ นสุ ดจากอั นเกิ ดจาก void loop ()
โปรแกรมที่ A8-1 ไฟล Robot_Survey.pde โปรแกรมภาษา C ของ Arduino สํ าหรั บทดสอบ
การทํ างานของ POP-BOT ในการตรวจจั บวั ตถุ แบบไม สั มผั ส