足球機器人 V1.0

足球機器人一向是有趣的課題, 搭配 Hitechnic Compass 與 IRSeekerV2來玩玩看吧 (欲使用本程式需使用BricxCC 3.3.7.20 與 1.07 Enhanced Firmware)。

尚未加入隨機亂逛找球的動作, 但機器人可正確判斷紅外線光源後, 接著便以compass sensor判斷本身位置。 機器人會根據是否位於攻門區間, 發出不同音高的, 假設球門方位約為170~190, 機器人透過 orient 這個 task 來調整自身方位後便全速攻門!!

請注意當紅外線光源位於機器人左邊或右邊的時候, 本程式先以不同音高的mi音(330, 660)來代替修正方向的動作。 有興趣的朋友請將這兩段PlayTone()指令換成機器人動作即可。

Enjoy!

=======================

/*
假設球門方位為90, 射門區間為170~190
*/

task orient(){
if(SensorHTCompass(S4)<170){
PlayTone(220,40);
OnFwdSync(OUT_AC,30,100);//原地左轉
Wait(500);

}//球門在右邊->向左修正
else if(SensorHTCompass(S4)>190){
PlayTone(440,40);
OnFwdSync(OUT_AC,30,-100);//原地左轉
Wait(500);

}//球門在左邊->向右修正
else{
PlayTone(880,40);
OnFwdSync(OUT_AC,100,0);//攻門!!
Wait(500);
}//位於攻門區間->攻門
}
task main()
{
SetSensorLowspeed(S1); //設定IR seeker感應器接在1號輸入端
SetSensorLowspeed(S4); //設定compass感應器接在4號輸入端
int dir,s1,s3,s5,s7,s9;

while(true)
{

ReadSensorHTIRSeeker2AC(S1,dir,s1,s3,s5,s7,s9)
TextOut(5, LCD_LINE2, “Direction  :”);
NumOut(80,LCD_LINE2,dir);

TextOut(5, LCD_LINE4, “Orientation:”);
NumOut(80,LCD_LINE4,SensorHTCompass(S4));
Wait(100);

while(dir==5)//等於5
{
start orient;
}//while
if(dir<5)//球在機器人左邊
{
PlayTone(330,40);
}
else//球在機器人右邊
{
PlayTone(660,40);
}
}//while(true)
}//main

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *