如上圖中,機身前段上有一組減速齒輪,如果將紅色記號的部份鋸下來,加個輪子,依樣畫葫蘆,兩臺光碟機的機身前段即可變身成一輛車子的主體囉!
輪子如何和齒輪結合呢?手邊只有免洗筷較好操作,於是將原來推動光碟托盤的齒輪軸心,以斜口鉗剪掉,再以銼刀將切口磨平,最後再改以一小段免洗筷當齒輪的軸心,一端削成一字形裝輪子,一端鑽螺絲孔後穿過齒輪,放回齒輪組原來的位置後,以螺絲及華絲墊片固定在機身鎖得有一點緊,又不會太緊。裝上馬達,接上電池,測試可以運轉後,以冰棒棍鑽孔、鎖螺絲固定兩邊(因為和輪子連動的齒輪並不是在正中央,要注意兩邊輪子會有高度差),並在前端加上一個萬向輪。至此,車子的雛形算是完成了。
之前在鋸光碟機身時,家裡的小小孩一直在問我在做什麼,後來又問到,車子可以載她心愛的娃娃嗎?因此決定幫她打造這臺「公主一號」。
原本可不是如上圖這麼豪華哦!試玩時,接上兩顆三號電池,僅能前進而已。小小孩又問道:「可以用遙控的嗎?」,那有什麼問題!上個月淘寶用 1.5人民幣買的遙控器還沒試,趁此機會,拿出來玩一玩。
底下來看看輪子馬達控制電路的部份。
材料清單
- Arduino UNO x 1
- 紅外線遙控器 x 1
- L293D x 1
- 6038LM 紅外線接收模組 x 1
- 4.7 uF 電容 x 1
- LED x 2
- 220 ohm 電阻 x 2
接線配置如下:
控制馬達的 L293D ,之前在藍芽遙控車中就已有詳細的說明,本文就不再贅述。紅外線接收模組使用 6038LM ,主要是因為以前在玩 WinLIRC 時就買了,直接拿現有的零件來用,也可以使用其它型號的模組替代,不過要注意,各家紅外線模組的三支腳位排列順序可能有所不同。
另外,在紅外線模組的正極和接地之間,不接電容也可以動作,只是經過實測,當使用較小的行動電源時,常會發生解碼失敗的情形。接上 4.7 uF 的電容後,穩定很多。
Arduino 紅外線解碼的程式,我原來是用網路上「Arduino Starter kit Users Manual 」中找到的 WD6122 解碼程式,但是發現它常常會卡住,讓車子不聽使喚。後來改用 Ken Shirriff 寫的 Arduino-IRremote ,順多了。簡單的記錄一下如何幫 Arduino 加上處理紅外線訊號的程式庫。
首先要下載 Arduino-IRremote 的程式碼,網址如下:
連到 Arduino-IRremote GitHub 的頁面後,在右下方會有個「Donwload ZIP」的按鈕,按一下後即可將程式下載回來。
接著將下載回來的壓縮檔解壓縮,資料夾就更改名稱為「IRremote」,最後,將「IRremote」的資料夾搬移到 Arduino 目錄中的「libraries」中即完成安裝。
接著就可以開始使用 IRremote 中的函數了。
「公主一號」的 Arduino 程式下載網址如下:
如果 L293D 的接腳是按前面的線路圖接的,大概只要修改遙控器按鈕的代碼,底下幾行要打開 Arduino 的「Serial Monitor」,並按遙控器的按鈕觀察代碼,依需求修改值:
- #define IR_CODE_LEFT_TURN 0xFFA25D
- #define IR_CODE_RIGHT_TURN 0xFFE21D
- #define IR_CODE_FORWARD 0xFF629D
- #define IR_CODE_BACKWARD 0xFF02FD
上面定義使用遙控器按鍵代碼是「0xFFA25D」的來當左轉時的控制鈕,代碼是「0xFFE21D」的來當控制車子右轉的按鈕......,其餘的依此類推。
底下來看看「公主一號」實際跑的狀況:
因為原來光碟機托盤齒比的關係,這臺車子跑得並不快,但用橡皮圈帶動的輪子,載了重重的行動電源還跑得動,也很安靜。老爸車子做得愉快,而小公主則是開開心心的玩,算是皆大歡喜啦!
由於紅外線遙控容易受到干擾,這臺紅外線遙控車應該只能在室內玩而已,有空再來試一下無線電遙控的方式。
您好:
回覆刪除拜見您的作品:舊愛變新歡:自製繪圖機
覺得您這個創意很棒, 我想請教您提到這是利用平台式掃描器+噴墨式印表機+光碟機+硬碟機x2+Arduino變身為繪圖機
請問平台式掃描器, 及硬碟機x2在此扮演的功能為何?
請問您輸出資料來源端是事先寫好在arduino 裏的, 還是用電腦輸出, 如果是電腦輸出, 能否請教怎麼跟arduino 溝通這些列印位置的?
不好意思, 問題有點多, 謝謝您的回覆
您好:
刪除那台改裝的 CNC 是以 BJC-4000 printer 當 X 軸, Scanner 當 Y 軸, 而光碟機當 Z 軸,硬碟機則是用來將 printer 墊高。因為當初只是實驗性的拿來夾筆當繪圖機, 所以整個機構只有 Z 軸的光碟機固定在 printer 上, 其它的都沒固定(放地上)。
馬達控制的部份是在 Arduino 中裝了 grbl 的靭體(google找得到), 來控制三片 EasyDriver 的控制板(x, y, z 三顆馬達),您可以參考下面的網頁:
https://github.com/grbl/grbl/wiki/Connecting-Grbl
另外,圖形資料要轉成 gcode ,並由可以和 grbl 通訊的軟體來傳送,我用的是用別人用 JAVA 開發的 UniversalGcodeSender。相關的資料,您應該可以用本回應中的關鍵字找得到。
您好:
刪除請問如何裝韌體到arduino上呢?
另外如果不要用java進行gcode的傳送
是否有其他可行的辦法?
我目前只能完成結構 和用arduino IDE寫程式控制他。
不好意思
感謝您的知識分享
我的馬達是用電晶體去控制的而不適用IC
回覆刪除可是這樣紅外線控制馬達開啟後 紅外線接收器會收到莫名的(其他紅外線碼-不知怎麼的) 自己寫了某案件會關掉所有動作 紅外線接收器卻接收不到正確的指令 是因為跟IC有關嗎?
https://googledrive.com/host/0B12NSU5QARH9M0JDQUpzTWVWd2c/ir_rc_car.ino
回覆刪除網址掛點了