圓創力科技

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

查看: 7154|回復: 6

單晶片魔法車07-紅外線循跡車

  [複製鏈接]
magiccar 發表於 2010-2-11 10:55 | 顯示全部樓層 |閱讀模式
上一個實驗,我們終於讓魔法車左右輪可以獨立控制,擁有左右轉向的能力。但是光用聲音來控制魔法車,仍然需要我們操控,無法獨立運作 。所以,接下來的實驗我們要讓魔法車更上一層樓囉!我們要給魔法車自行判斷環境的能力囉!

實驗七:紅外線循跡車

實驗內容:我們要讓魔法車依循地面黑色軌道前進。

使用材料:實驗六的材料,紅外線發射、接收器*2組,4069反相器*1
     電阻:6.2MΩ+150Ω各2個。

電路照片:

接上紅外線模組前:我們用反相器把紅外線的信號的訊號數位化
IMGP7877.JPG

接上紅外線模組後
IMGP7878.JPG

超酷的魔法車-右側
IMGP7879.JPG

超酷的魔法車-左側
IMGP7880.JPG

程式分析:

  1. /*實驗七:紅外線循跡車*/
  2. #include <AT89x051.h>
  3. void delay(unsigned int tmp);        //宣告延時函數
  4. void Go_F();
  5. void Go_B();
  6. void Go_R();
  7. void Go_L();

  8. void main(void)        //主程式開始
  9. {
  10.         P3_2=1;                //啟始左側紅外線輸入功能
  11.         P3_3=1;                //啟始右側紅外線輸入功能
  12.         while(1){
  13.                 while(P3_3==1 && P3_2==1){        //當車體在軌道中時
  14.                         Go_F();                   //前進
  15.                 }
  16.                 while(P3_3==0){            //當右側紅外線偵測到黑線時
  17.                         Go_R();                  //左轉...直到回到軌道中
  18.                 }
  19.                 while(P3_2==0){            //當左側紅外線偵測到黑線時
  20.                         Go_L();                   //右轉...直到回到軌道中
  21.                 }
  22.         }
  23. }
  24. /* 副程式區 */
  25. void Go_F()
  26. {
  27.         P1_2=0;
  28.         P1_3=0;
  29.         delay(50);
  30. }
  31. void Go_B()
  32. {
  33.         P1_2=1;
  34.         P1_3=1;
  35.         delay(500);
  36. }        
  37. void Go_R()
  38. {
  39.         P1_2=0;
  40.         P1_3=1;
  41.         delay(50);
  42. }        
  43. void Go_L()
  44. {
  45.         P1_2=1;
  46.         P1_3=0;
  47.         delay(50);
  48. }        
  49. void delay(unsigned int tmp)        //延時函數
  50. {                                                //改變參數大小,可調整時間
  51.         unsigned char i,j;                //宣告使用到的變數
  52.         i=tmp;                               //把呼叫程式式中的參數100指定給變數i
  53.         while(i)                              //只要i不為0,
  54.         {                                       //就執行{...}中的指令
  55.                 i--;                             //把i值減1
  56.                 j=255;                       // <-+
  57.                 while(j)                         //   |
  58.                 {                                  // 用j值讓程式執行256次的迴圈,到延時效果
  59.                     j--;                           //   |
  60.                 }                                // <-+
  61.         }
  62. }
複製代碼
是不是超級簡單!來編譯好的程式在這裏囉!
IR_01.hex (339 Bytes, 下載次數: 47)
IMGP7877.JPG
IMGP7878.JPG
IMGP7879.JPG
IMGP7880.JPG
 樓主| magiccar 發表於 2012-9-3 11:21 | 顯示全部樓層
gensly123 發表於 2012-9-2 02:20
我發現影片中的魔法車,紅外線並非在車頭魔鬼粘位置,好像是車身左右兩測,或車底 ...

沒錯!你的觀察力很好。我這麼做是因為魔法車車身長但左右輪距短,感測器如果離轉向軸心太遠,當遇到小彎道就容易讓後輪走到黑線之外,你可以試試看哦!
gensly123 發表於 2012-9-2 02:20 | 顯示全部樓層
我發現影片中的魔法車,紅外線並非在車頭魔鬼粘位置,好像是車身左右兩測,或車底
gensly123 發表於 2012-7-31 16:02 | 顯示全部樓層
想請問一下,此一紅外線感測距離地面應該多少??
 樓主| magiccar 發表於 2012-8-11 23:08 | 顯示全部樓層
gensly123 發表於 2012-7-31 16:02
想請問一下,此一紅外線感測距離地面應該多少??

要看地面材質對紅外線的反射率,再去調整感測器最佳的高度。所以我們用魔鬼粘,讓學生依不同的地板,來調整感測器的位置。
v751953789 發表於 2011-2-22 14:07 | 顯示全部樓層
好期待能做出來。
ssktowtw 發表於 2014-4-5 17:14 | 顯示全部樓層
本帖最後由 ssktowtw 於 2014-4-5 17:32 編輯

老師~可不可以po出接線圖~我也要來做一個

另外  接上紅外線模組那張圖  怎麼把它變成可以插上麵包板的樣子
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|Archiver|手機版|小黑屋|圓創力科技有限公司 IOP Robotic Technology Co.,Ltd Tel: 07-3924582 Fax: 07-3924001

GMT+8, 2024-3-28 18:32 , Processed in 0.028161 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表