工程筆記本 / NXC/RobotC/C++ for Lego robot

NXC/RobotC/C++ for Lego robot

足球機器人 V1.0

CAVEDU 阿吉 - 雜工📅 2009-12-06👁 19
足球機器人一向是有趣的課題, 搭配 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  

相關文章 📎

留言 💬 (0)

還沒有留言,來當第一個。