已經更新到解密10結構與組裝,多謝朋友們關注......
這個是坦克的組裝視頻
DSC03349_副本.jpg(52.15 KB, 下載次數: 28)
DSC03354_副本.jpg(53.17 KB, 下載次數: 23)
DSC03358_副本.jpg(53.71 KB, 下載次數: 27)
遙控坦克DIY過程解密(01)
>>>>>>>>>>2013-01-04<<<<<<<<<<
【前言】 貼子發布了幾天發現有很多網友對“@ZiShi”這個遙控坦克的DIY過程比較感興趣,不時有朋友通過QQ加好友詢問這個坦克的DIY過程和控制原理,為了大家進一步了解這個項目,“@ZiShi”將本著開放、分享的原則對這個坦克的DIY過程進行“解密”,說是“解密”可能更多針對一些DIY“新手”而言的,對于一個DIY“高手”來說這些可能并不算什么,但是仍然希望DIY“高手”們來分享這個過程并提出您的改進意見。
【面向玩家】 這個坦克的DIY過程主要面向廣大的小車、模型、電子、機械DIY愛好者,重點在于分享DIY過程以及DIY心得,與更多朋友分享DIY的樂趣。 如果您是一個DIY“新手”通過“@ZiShi”的這些文字您可以了解到DIY過程中使用到的一些工具、設備、相關基礎知識以及這個坦克的組裝過程。如果您是一個DIY“熟手”,您可能曾經做過類似的事情,同時更希望了解“@ZiShi”這個坦克的DIY過程以及內部原理,“@ZiShi”在這里都會呈現給大家。如果您是一個DIY“老手”的話,那么“@ZiShi”的這篇文字在您面前就顯得班門弄斧了,我們更希望您能為我們的進步提出更多寶貴意見,在這先說一聲謝謝。
【幾點說明】
在此要說明幾點: - 由于精力和時間的限制再加上內容較多,這篇文字會不斷更新直到完成,請大家持續關注;
- “解密”過程將會沿著電路、軟件、機械、組裝的過程展開;
- 由于篇幅所限文字將側重原理進行講解;
- 文字中會涉及到一些專業知識如機械、電子以及軟件,如果我們哪里做的不合理或不正確請您明確指出;
- 對于一個DIY的作品很多地方是不能使用產品級的眼光去看待的,這樣會給DIY過程帶來很大困難,當然我們力爭做到專業;
上面說了很多題外話,下面進入正題。
【解密-電路】
待續……
遙控坦克DIY過程解密(02)
>>>>>>>>>>2013-01-05<<<<<<<<<<
繼續解密……
首先我們進行一個簡單設計,規劃一下我們的遙控坦克要具備哪些功能。我們希望DIY后的遙控坦克可以實現下面一些功能:
1、前進;
2、后退;
3、左轉;
4、右轉;
5、炮塔順時針旋轉;
6、炮塔逆時針旋轉;
7、通過遙控方式實現功能1-6;
我們知道坦克的移動以及炮塔的旋轉可以通過電機實現,對于遙控功能的話我們這里選用的是NRF24L01這個無線收發模塊,所以對上面7點進一步概括的話我們只要實現電機的控制以及無線接收與發送就可以了。
下面是遙控坦克的功能圖。
圖中的“M”表示坦克上的3個電機,分別是2個輪子和1個炮塔,綠色的框代表NRF24L01這個無線收發模塊(需要2只),實際上剩下的工作大家都很容易想到,只要接收模塊接收到遙控發來的命令然后對命令進行識別,最后控制電機旋轉。
做過電機控制的朋友都知道只要通過一個叫“H橋”的電路就可以輕松控制電機轉動,那么實現“H橋”的方法有很多,大家可以使用獨立元器件去搭建電路當然也可以選擇現成的控制芯片,我們選擇第二種方法,選擇使用芯片有幾個好處,第一它能夠大大節省我們的DIY時間,第二降低了實現的難度,同時芯片的集成度也比較高讓電路看起來比較美觀。這里我們不去討論如何選擇“H橋”芯片,我們只簡單的介紹我們使用的這款芯片“L9110”,因為他價格不貴而且使用方便,下圖是L9110使用手冊上的截圖。
我們發現這個芯片上有8個引腳,我們只要關注其中的4個就夠了分別是IA、IB、OA和OB那么這四個引腳的關系是什么呢,繼續看芯片的使用手冊(本來是件挺輕松的事情結果動不動就要把手冊請出來,真是頭大),通過瀏覽芯片的使用手冊我們會發現這樣一張圖,如下:
這張引腳波形圖已經清楚的告訴我們,IA和OA的關系以及IB和OB的關系,用一句話概括就是輸入是高那么輸出也是高,輸入是低輸出也是低,怎么樣簡單吧。
知道了引腳的時序關系后就可以要把他它連接到電路中了,芯片的使用手冊上已經給出了應用電路,我們照做就好了,看下圖:
這個電路看起來還是蠻簡單的,芯片左邊連接電機右邊連接單片機的IO。
待續…… 遙控坦克DIY過程解密(03)
>>>>>>>>>>2013-01-07<<<<<<<<<<
繼續解密……
上一回我們已經大致了解了“H橋”芯片L9110的使用方法了,這一回我們將解釋如何使用這個芯片來控制小馬達的旋轉,參考上一回芯片手冊上給出的應用電路,我們可以清楚的知道只要將芯片的OA和OB引腳與馬達的兩個引腳相連就完成了馬達與芯片的連接,如圖3-1所示:
馬達與芯片連接好以后,坦克控制系統的主角就要登場了,她就是微控制器(MCU),在我們的坦克系統中馬達的啟動、停止、旋轉方向以及旋轉速度都是由微控制器進行精確控制的,可見她的地位是非常重要的。
說道微控制器我們也叫他單片機,常見的單片機有很多51、AVR、Arduino、ARM等等,我們這個坦克所使用的單片機是51兼容的單片機,具體型號是STC89C52,這款單片機的程序空間以及她的數據空間完全能夠滿足我們DIY遙控坦克的需要,而且使用起來也比較方便,圖3-2是一個STC89C52單片機:
單片機的IO引腳是其與外界通信的重要手段,我們正是利用單片機的IO與L9110進行通信的,下面看我們是怎樣將兩者進行連接的,如圖3-3所示:
將單片機的P10和P11分別和L9110的IB和IA相連,這里需要提醒那些想使用這個電路DIY的朋友,需要注意圖中那兩個虛框專業上稱為上拉電阻的家伙,有的時候單片機引腳的驅動能力有限需要使用這種方法提高她的驅動能力,這個要視情況而定,并不是所有情況下都需要這個電阻的,可能有人會問到如果需要的話選什么阻值呢,根據我們的經驗選擇10K歐姆電阻式可以正常工作的。
有了上面這個電路我們就可以完成一組電機的控制了,這里我們需要三個電機那么如法炮制,只要再次分配4個IO口連接另外2塊L9110就可以了,如圖3-4所示:
另外這里還涉及到單片機的工作問題,比如電源怎么接、地線怎么接、還有復位電路等等,這里都沒有描述,由于這些內容講起來比較占用篇幅,如果有想使用這個電路進行DIY但又不太熟悉單片機的朋友可以聯系“@ZiShi”,我們可以提供更細致的資料。
電機控制原理基本介紹完了,看起來并不復雜,后面該介紹數據接收部分的電路了。
今天就到這里,下回繼續……
遙控坦克DIY過程解密(04) >>>>>>>>>>2013-01-09<<<<<<<<<<
上一回我們分享了電機控制的原理,這一回我們繼續看下遙控是如何實現的。
對于一個坦克或小車來講我們總不希望他拖個長長的尾巴跑來跑去(線控)這樣會大大的限制住坦克的活動范圍,如果是飛機或艦船的話使用線控就顯得更不合適了,那么使用什么方法來對坦克進行遠程的控制呢,同樣有很多方案供DIY愛好者選擇,簡單來說有下面幾種:
1、常見的航模遙控器,如圖4-1,加上接收器一套下來估計最便宜的那種都要一兩百元,不太適合資金有限的DIY朋友;
2、還有一種遙控外觀如圖4-2,這種遙控器主要用來控制電燈的開關,以及經常出入停車場的朋友常常會看到門衛手里拿的這個東西遙控進出口欄桿的起降,這個種模塊使用非常簡單,但是有一點不足這個模塊可以表達的信息有限,對于簡單的開關完全可以,但要是功能多起來,這個遙控就應付不了了,尤其要實現比例遙控的話這個模塊就無能為力了;
3、第三個就是我們這里要討論的NRF24L01這個模塊了如圖4-3,首先他價格便宜其次它是一個數據傳輸模塊可以傳輸多種控制命令,但它也有缺點那就是他的接口比較復雜需要特定的時序才能完成對它的控制;
經過綜合的考慮我們選擇了NRF24L01這個模塊,決定使用單片機對它進行控制。
下面就是硬件的連接問題了,說到這里我們又要去翻看芯片的使用手冊,還好我們有圖4-3這樣的模塊,模塊中已經幫我們做好了芯片的周邊電路,我們并不需要做這些工作過了,我們只要了解這個模塊各個針腳的定義就好了,看圖4-4。
這個模塊有8個針腳,分別代表VCC、GND、CE、CSN、SCK、MOSI、MISO、IRQ,我們看看如何把這個模塊和51單片機相連,如圖4-5。
我們將無線模塊的各個引腳與單片機的P2口相連,同時將它的中斷引腳連接到單片機的INT0引腳,這部分硬件電路的搭建基本就結束了,需要注意的是圖中那個上拉電阻,到了這里坦克一端的硬件電路基本已經形成了,看下完整的電路,圖4-6。
后面我們再簡要介紹一下,遙控手柄一端的電路,今天先到這里。
待續……
遙控坦克DIY過程解密(05) >>>>>>>>>>2013-01-11<<<<<<<<<<
上一回我們介紹完了坦克一端的硬件部分,這回繼續介紹一下手柄一端的硬件,比較之前的電路手柄這邊的電路要簡單一些了,還是老習慣我們先分析一下手柄的功能,如圖5-1。
手柄的主要任務就是處理玩家的一些動作,然后將玩家的動作以命令形式發送給坦克。那么玩家都有哪些動作呢?總結下來就一個動作“按鍵”,當手柄發現用戶按下按鍵后,判斷用戶按下的是哪個按鍵最后將這個按鍵對應的操作以命令形式發送給坦克。
根據前面對坦克功能的定義我們要實現的動作有前進、后退、左轉、右轉、炮塔順時針轉、炮塔逆時針轉這幾個動作,那么我們就來設計一個帶有6個按鍵的手柄,其大致外觀如圖5-2。
功能基本確定了我們來看下手柄一端的電路如何設計,涉及到數據傳輸模塊的設計其實與坦克一端是一樣的,可以直接參考《遙控坦克DIY過程解密(04)》來完成相關電路的設計,我們僅僅討論按鍵電路的設計,如圖5-3所示。
其中陰影部分電路就是遙控手柄的按鍵電路,同時已經給出了數據傳輸模塊的電路。我們一共定義了6個按鍵使用單片機的P0口去讀取按鍵的狀態,如果讀入的數據是‘0’說明按鍵是抬起狀態,如果讀入的數據是‘0’說明按鍵被按下。怎么樣其實實現一個手柄也并不復雜,對于我們DIY來說這個電路已經完全夠用了。我們可以選擇圖5-4這種小按鍵來制作我們的手柄。
把這種按鍵焊接在萬能版上效果如圖5-5所示。
DIY這個遙控坦克所涉及到的硬件部分基本介紹完畢了,后面的工作就是根據原理圖(在萬能版或面包板上)把電路搭建好,搭建好電路后就可以進入軟件設計階段了。
今天先進行到這里,待續……
大家一起DIY
遙控坦克DIY過程解密(06) >>>>>>>>>>2013-01-13<<<<<<<<<<
【解密-軟件】
我們說硬件是載體軟件是靈魂,前面已經介紹了遙控坦克的硬件部分接下來我們該去實現它的軟件部分了,說簡單就是寫程序控制我們的坦克完成預計功能。看過前面文字的朋友知道我們的硬件系統分為兩部分,它們是坦克系統和手柄系統,我們要分別為這兩個系統編寫程序。首先我們先設計一下坦克一端的軟件架構,如圖6-1。
從圖中我們能看出坦克一端在不斷的接收命令,如果有命令發來就解析命令然后執行命令,如果沒有命令那么繼續下一次接收命令,總之坦克一旦上電就在不停的接收命令直到關閉電源。這里給出部分源程序作為參考,考慮到有些朋友不太熟悉程序設計為不影響大家對原理的理解,在代碼中使用了很多注釋和偽代碼甚至插入很多中文信息,如圖6-2。
從圖中我們可以清晰的看出程序的執行過程,系統在無止境的循環接收命令、解析命令、執行命令。其中紅色方框部分是這段程序的主體,我們會發現它的核心就是控制電機的旋轉,那么如何通過程序來控制電機的旋轉呢,這就要回憶一下前面介紹的硬件電路了(《遙控坦克DIY過程解密(02)》),如圖6-3。
根據L9110的工作時序圖以及我們的硬件原理圖,我們可以清楚的看出要想讓電機旋轉我們只要讓單片機的兩個IO引腳P10、P11輸出反相就可以了,如果轉化成代碼如圖6-4所示。
上圖中紅色方框中表示的是對一個馬達的控制,對另外2個馬達的控制方法也是一樣的,進行到這里我們已經可以通過程序來控制電機的旋轉了,只要正確的協調3個馬達的旋轉方向,我們就可以讓我們的坦克完成前進、后退、左轉、右轉、炮塔順時針旋轉以及炮塔逆時針旋轉這幾個功能。
那么系統是如何知道已經接收到數據的呢?只要有2種方法,一種方法是對NRF24L01的狀態不斷進行查詢,另一種方法是當NRF24L01接收到數據以后主動通知MCU,根據我們的硬件原理圖同時為了提高系統執行效率,我們采用第二種方法,代碼如圖6-5、6-6。
當接收到數據傳輸模塊觸發的中斷后,我們去讀取傳輸模塊的狀態,如果接收到數據我們就設置一個標志,圖6-2的程序會不斷查詢這個標志,一旦發現有數據發送來,就可以對數據進行解析了。
當然這里面我們省略了初始化硬件、定時器以及傳輸模塊的詳細步驟,如果大家在DIY過程中也遇到到了具體技術問題,可以隨時翻閱資料或學習,當然也可以與“@ZiShi”進行交流。
如果要讓坦克正常解析接收到的命令,我們可以定義一些簡單的協議,如圖6-7。
有了命令列表,通信雙方就可以根據這個“協議”進行通信了,假如坦克一端接收到0X00,那么坦克就全速向前沖,如果坦克一端接收到0X02,那么坦克就會左轉,大家還可以自己擴充這個命令列表,讓自己的坦克完成更多的功能。
坦克一端的程序原理已經介紹完畢了,后面我們還會繼續介紹遙控手柄一端的程序原理。
今天先到這里……
遙控坦克DIY過程解密(07) >>>>>>>>>>2013-01-15<<<<<<<<<<
前面介紹了坦克一端的程序原理這一回我們來看看手柄程序是怎么實現的,要實現手柄一端的程序我們還得回顧一下手柄一端的硬件原理圖,如圖7-1。
根據原理圖我們可以看出當按鍵沒有被按下是,單片機對應的IO引腳為高電平,當有按鍵按下時候,單片機對應的IO引腳為低電平,根據這一原理,我們的程序可以不斷去讀取IO引腳的狀態來判斷是哪個按鍵被按下了,請看圖7-2。
圖7-2是一段按鍵掃描程序,這段程序會返回被按下按鍵的編號,最后根據按鍵的編號發送對應的控制命令。系統程序運行起來后我們只要不斷的調用這個按鍵掃描函數,就可以不斷的讀取用戶輸入,發送控制命令,如圖7-3。
至此程序部分的基本原理已經介紹完畢了,有了這些程序我們已經可以控制我們的坦克完成預計的功能了,如果后面再需要其他功能我們會在這個程序上進行擴展,另外這里給出的只是框架性的內容,為了不影響對整體程序功能的理解,我們略去了部分技術細節。
有些朋友可能對單片機編程或者對一些芯片、模塊的使用不太熟悉,這些涉及到具體細節的問題我們可以另外進行討論,這里還是以原理為主。
軟件部分的“解密”基本完成了,下一回我們要開始進行結構與外觀的設計了,敬請期待……
遙控坦克DIY過程解密(08) >>>>>>>>>>2013-01-17<<<<<<<<<<
前面介紹了很多專業內容,估計大家看的有些不耐煩了,今天換換口味,欣賞一下我們拍攝的照片,之前一直有朋友反映視頻看的不是很清楚,很多細節沒有看到,今天給大家上幾張圖,我們也正在翻錄新的視頻,希望能做的更好,話不多說開始上圖嘍,圖8-1:
上面這張圖,是我們用銅柱和螺母拼出的“DIY”和“ZiShi”字樣,圖中這兩樣東西,是我們拼接外殼的主要連接件。他們都是很常見的零件,相信常常DIY的朋友對這種零件并不陌生。在看下一張,圖8-2。
看到這個圖大家會不會想起兒時玩的四驅車呢,如果能夠回憶起說明您從小就十分熱愛DIY這項充滿刺激的動手活動。我們的坦克就是利用這些簡單的組件搭建出來的,蠻神奇的。
后來我們都長大了,但心依然年輕,從未放棄自己熱愛的事情,只是不再滿足于“簡單”的四驅車,一心想要做出自己的超級戰車,同時我們的戰車應該具有聰明的“大腦”,而不是簡單的前、后、左、右,我們要實現更多功能讓它具備更快的反映能力,要說反應能力快在這是世界上誰還能快過計算機呢,我們打算在戰車中植入計算機讓它具有思維,下圖就是我們引入的51計算機,圖8-3。
有了大腦戰車才會變得更加聰明。
要說DIY真的樂趣很多,可以充分發揮大家的想象力和動手能力,同時讓我們在學校里學到的知識不被浪費掉,所以我們一直鼓勵大家動手去做去實踐。
說到坦克我們再來看看他的履帶長什么樣子,如圖8-4。
大家看到了嗎,坦克的履帶,我們就以這張笑臉結束今天的文字,希望我們能為大家帶來更多的快樂,同時也感謝前一段時間大家對“ZiShi”遙控坦克的支持,感謝大家。
后面我們繼續回到結構設計的話題,請看下一回……
遙控坦克DIY過程解密(09)
>>>>>>>>>>2013-01-19<<<<<<<<<<
繼續解密
今天進行我們遙控坦克項目的最后一個“解密”部分,最后一部分主要是關于機械結構的解密。對于一般的DIY愛好者來講螺絲刀、鉗子、鋼鋸、電鉆這些工具還都是具備的,但是要說到數控機床、激光切割之類的大家伙可能很少有人具備這個條件了,是不是沒有這些大家伙我們就不能進行DIY了呢?當然不是的。DIY的精神就在于有條件要DO,沒條件創造條件也要DO,沒有工具沒有專業的知識都不能阻止我們去DIY。
今天在這里“ZiShi”要給大家分享的內容是,在有限的加工工具和有限的專業知識條件下如何進行個人的DIY,當然我們這回是圍繞機械結構部分展開的。
我們會分兩回進行這部分內容,第一回介紹金屬加工方法,第二回介紹非金屬加工方法。
先來看金屬加工方法,做任何事之前都需要進行簡單設計,如果不進行設計就開工后面會遇到很多麻煩,對于機械加工來說我們第一步要做的就是繪圖,可能有朋友說了沒學過CAD怎么做呢?我們說沒關系一桿筆一把直尺足夠了,當然有時候還會用到圓規。有條件的朋友可以現在坐標紙上進行設計,沒有坐標紙呢找一張白紙也完全可以,有了這些就可以開工嘍,具體怎么畫不用詳細介紹,我們只要一上圖,大家馬上明白,請看圖9-1、9-2:
這是我們曾經設計過的一個實例—機械腿,看著可能有些復雜,但仔細觀察發現圖中除了線就是圓,一把直尺一支筆一個圓規完全能搞定了,怎么樣原理并不復雜吧沒有CAD我們也可以DIY的,有了這張圖接下來就是繪制具體的零件了,這個就更加容易了,看圖9-3:
上面的圖展示了3個零件的繪制方法,零件畫好以后順便標記尺寸,這個尺寸就是我們后面進行加工的依據了。上面這個圖是一個立體效果,我們還要把它轉化成平面的尺寸,看圖9-4:
圖9-4是一個簡單的零件,被展開后就是一個矩形,我們只要把下半部分的圖紙用剪刀剪下,然后貼到金屬材料上(鐵皮、鋁片),然后使用鋼鋸沿著圖紙進行切割就好了,切割好的材料根據預先設計的尺寸進行折彎處理,請看圖9-5:
被加工好的零件與圖9-5左下方的效果類似,這種加工方法效率不算高但是可行的,為了充分說明這個方法的可行性,我們展示一下當時做的機械腿效果,如圖9-6:
這里只進行了原理性的說明,我想大家應該可以理解這個過程,交代的可能不是很細致,因為具體的手工加工過程還是有很多技巧的,而且對動手能力有比較高的要求,最重要的是有耐心因為這種方法的效率并不高,還有最最重要的是注意安全,主要保護好眼睛和手。如果大家對這種DIY方式感興趣我們可以進一步分享經驗。
下一回我們就介紹非金屬材料的加工,這部分和坦克車就很接近了……
遙控坦克DIY過程解密(10) >>>>>>>>>>2013-01-22<<<<<<<<<< 上回介紹了金屬加工,本來計劃接著介紹非金屬的手工加工方法,不過團隊中負責結構的兄弟以及完成了坦克內部結構與組裝的“解密”,同時這個地方很多網友又比較感興趣,所以我們先進行戰車的結構和組裝“解密”,后面抽個機會再與大家分享非金屬的手工加工方法。
首先來個回顧,看看我們的坦克有幾部分構成,看圖10-01:
如果以從上到下的方式去觀察的話,我們的戰車主要包括了炮塔和底盤兩大部分,所以我們在DIY這個戰車時候也依據這樣的順序,炮塔的組裝、車體的組裝、整體的裝配以及最后的電路調試過程。
組裝這個坦克涉及的工具并不復雜,一把螺絲刀一把小鉗子基本就滿足了。
首先看看炮塔是如何組裝的,既然是“解密”就要讓大家看的清清楚楚,我們特意將車體零件“散開”讓大家進一步了解其內部結構,首先看看這個炮塔是怎么構成的,如圖10-02:
通過上面的圖我們已經很清晰的看出了炮管以及炮塔主體的內部結構,而且他的組裝過程也極其簡單,只要看著這個3D圖拼拼插插就好了,最后在關鍵部位使用螺釘鎖緊(哎,連我自己都佩服設計坦克的兄弟,這是怎么構思滴泥,如果朋友們也感覺神奇,一定要頂我們哦,先謝謝大家,嘿嘿)。再來看看炮管和炮塔主體是如何進行連接的,看圖10-03:
一個完整的炮塔已經躍然紙上,不過大家單純看圖可能很難體會到DIY的樂趣了,主要還是得動手試一試,后面我們也會給大家介紹如何通過手工方法達到類似效果,當然了僅限于簡單的外觀,像坦克這么大的工程如果完全手工打造的話不是不可以而是時間長零件精度方面不好控制。我們團隊也是花了很多時間反復修改才把坦克變成今天這個樣子的,只要大家肯在DIY上面花時間,當然也要花點銀子,基本工具和材料還是要買的,相信每個人都能D出自己滿意的作品。
炮塔的組裝基本就介紹完畢了,后面的組裝過程也是類似的拼拼插插,相信大家一看就能理解,組裝過程還用到了一些鏈接件,都很常見,如圖10-04:
銅柱、螺釘和螺母,相信每一個DIY愛好者家里都有不少這種東西,具體怎么使用自然不用多說。
好了,炮塔的內部結構和組裝過程已經介紹完了,今天就到這里,下回繼續……
-----------------------------------------------------
之前的一篇帖子主要分享了遙控坦克DIY的原理,涉及了一些機械、電子、軟件原理,受到很多朋友的支持和鼓勵,今天再發一帖主要介紹這個坦克的組裝過程,
如果按照之前的順序今天是第11篇文字了,看看今天聊些什么內容......
遙控坦克DIY過程解密(11)
>>>>>>>>>>2013-01-27<<<<<<<<<<
上一回我們已經介紹了炮塔的組裝過程,這一回我們看看車體是如何組裝的。先來看看車體長什么樣子,如圖11-01:
車體部分的零件要比炮塔部分的零件多些,所以組裝起來會更加有趣一些,從上面的圖我們可以發現,車體部分主要有下面幾部分構成,“上面板組件”,“履帶傳動板組件”,“底盤前鎖緊組件”,“承重輪組件”,“導向輪組件”,“驅動輪組件”以及“底板組件”。我們會分別看下這幾個組件的組裝過程,最后再看看這些個組件是如何構成坦克的車體的。
上面板的主要作用是用來固定炮塔電機的,我們使用螺絲和螺母將炮塔電機固定在坦克的上面板上,請看圖11-02:
在上圖中我們還能看見上面板組件上還有4跟長長的“立柱”,這4跟立柱主要用來連接上面板組件和底板組件。接下來看看稱重輪組件,所謂稱重輪組件就是車身兩側的起到支撐左右的輪子,如圖11-03、11-04:
有了這排稱重輪坦克才能發揮履帶車的優勢,面對任何地形如履平地。履帶的轉動依靠驅動輪的帶動,我們看看驅動輪是如何安裝的,看圖11-05:
只要把驅動小齒輪安裝在坦克的馬達上,它就可以帶動坦克履帶前進了,相信大家一定能夠明白履帶的驅動原理了。前面我們提到了支撐輪、馬達和驅動輪,那么這些組件是如何組織在一起的呢,我們需要另一個組件,我們稱為“履帶傳動板組件”,如圖11-06:
后面我們會把坦克支撐輪、馬達以及驅動輪固定在這個傳動板上,圖中的長螺絲還有螺母正是固定傳動板和馬達的。我們所采用的電機就是常見的TT馬達,如圖11-07:
接下來看一下底盤底板組件的安裝,底盤底板組件主要有兩個功能,一個是功能是將塔克底盤封起來讓坦克看上去更加封閉,另一個功能是固定電池盒,看圖11-08:
當我們把這個底板固定到坦克的底盤之后整個車身就被封閉起來,電路、電機還有電池盒全部被裝到坦克的身體里,這樣看上去坦克更加的美觀。最后我們看看以上介紹的底盤組件是如何組裝起來形成坦克底盤的,看圖11-09:
上面這張圖較清晰的說明了底盤的構成。這一回的坦克組裝介紹先進行到這里,我們下回繼續。
---------------------------------------------------
遙控坦克DIY過程解密(12)
>>>>>>>>>>2013-01-31<<<<<<<<<<
今天進行遙控坦克最后的整體裝配,前面已經介紹了炮塔的組裝以及坦克底盤的組裝。圖12-01是炮塔,圖12-02是坦克底盤。
最后的裝配主要就是將炮塔和底盤進行連接,過程比較簡單,只需要一個零件我們稱為“炮塔限位板”,形如圖12-03:
這個小零件有兩個作用,仔細看零件中間的孔正好可以卡在電機輸出軸上,從而帶動炮塔的旋轉,它的另一個作用就如它的名字了,進行旋轉過程中的限位控制,我們不會讓炮塔進行360度旋轉,所以對其進行限位,限位是如何實現的呢,我們看圖12-04:
可以看到坦克底盤的上面板有兩顆螺絲(紅圈處),這兩顆螺絲會限制住炮塔的旋轉角度。
最后我們看看炮塔、限位板以及底盤是如何進行連接的,圖12-05、圖12-06:
穿過炮塔和限位板,使用一顆螺絲直接將炮塔固定在電機輸出軸就完成了炮塔與底盤的連接,最后再看看組裝完的坦克效果圖12-07:
大功告成,坦克拼裝任務基本結束了,不過現在的坦克還不能動彈,因為還沒有為它安裝控制電路,欲知詳情咱們下回分解……
經過前面12次“解密”,相信大家對遙控坦克的原理以及基本結構有了一定認識,如果要讓我們的坦克跑起來還要經歷一個調試階段,其實調試的主要目的就讓坦克根據我們的操作產生正確的行為。比如我們按前坦克就向前走,我們按做坦克就向左轉等等。
首先我們要將坦克的3個電機與控制板進行連接,如圖13-01:
大家可以看到控制板上有6根(3組)插針,中間一組控制炮塔,兩邊2組控制坦克履帶,首先我們把炮塔電機插到中間的一組插針上,然后把履帶電機插到兩側的插針上如圖13-02:
電機與控制連接后我們開始調試工作,調試主要就是觀察電機的旋轉方向是否正確,以上面的圖為例,我們描述調試過程:
1. 按動遙控器上的“上鍵”,如果兩條履帶向下滾動,我們進入步驟3,否則進入步驟2;
2. 將旋轉方向錯誤的電機的插針交換位置(組內交換),使其旋轉方向正確,進入步驟3;
3. 按動遙控器上的“左鍵”,如果左側履帶向下滾動,右側履帶向上滾動,調試結束,否則將左右兩個電機接入插針的位置進行交換(組間交換),然后回到步驟1;
上面的過程看起來可能有點不清晰,我們還是畫張圖,來清晰說明組內交換和組間交換的概念,如圖13-03:
直到第三步的條件得到滿足,坦克的調試工作結束,對于炮塔動作的調試比較簡單,只涉及到組內交換只要方向反了把插針交換一下就可以了,這里不進行介紹了。坦克調試結束后我們就可以遙控他自由馳騁嘍。
最后我們展示一下手柄圖片,目前手柄按鍵是針對遙控坦克進行開發的,上面有7個按鍵,我們暫時使用其中的6個,如圖13-04:
關于手柄的更多實現細節我們會單獨做一次講解,今天就到這里嘍。
--------------------------------
遙控坦克DIY過程解密(14)
今天給大家介紹一下遙控坦克的無線手柄,實際上這個手柄不僅僅可以使用在坦克上,他可以應用在任何需要無線遙控的場合,比如小車、機器人等。當然這個手柄也是可編程的,我們可以根據自己的需要對其進行編程改變每個按鍵的功能。我們還是通過圖片形式與大家分享這個手柄的DIY過程,圖14-01是手柄的整體外觀。
手柄的結構就簡單多了,組裝一個這樣的手柄大概也就2-3分鐘的時間,它主要包含上下兩層面板中間是它主控電路,我們進去看看他的結構,圖14-02:
我們使用一節9V電池為其供電。對于內部的電路來說我們使用上下雙層結構,其中一層主要用來放置按鍵、指示燈、以及開關等電路,另外一層就是無線手柄的核心電路了,我們看圖14-03、14-04:
核心板是基于51單片機的我們也預留了編程接口,這樣方便我們對手柄功能進行DIY。我們將兩塊層板對接后效果如圖14-05:
怎么樣結構還算簡單吧,只要上下對插,然后通過四根螺釘與面板固定就大功告成嘍。最后我們看下手柄與坦克主控板的合影如圖14-06:
有了他們我們就可以輕松DIY自己的坦克嘍,好了今天先到這里,我們下回繼續……
-------------------------------------------------
遙控坦克DIY過程解密(15)-為手柄編寫程序
前面我們已經介紹過子時DIY的無線遙控手柄是可編程的,同時在第7次解密中也介紹過為手柄編寫程序的原理。那么這次“解密”就來具體看看如何為手柄編寫C程序。
看過前面解密的朋友可能更加了解我們無線遙控手柄的硬件結構,我們主要使用51單片機和NRF24L01模塊來實現這個遙控手柄。既然是編寫C程序我們需要選擇一個開發環境,這里我們選擇常見的KEIL作為我們的集成開發環境,如圖15-01:
關于這個開發環境的使用方法在這里就不進行介紹了,如果您對這個工具的使用不太熟悉可以通過網絡搜索這個工具的使用方法或直接聯系“子時”,我們很高興與您探討在編寫程序過程中遇到的問題。
編寫手柄程序關鍵的兩個工作就是處理按鍵的變化和發送用戶命令,我們先來看看如何通過程序來處理按鍵變化,我們這里實現一個按鍵掃描函數KeyScan,下面就看看KeyScan的源程序,如圖15-02:
KeyScan函數的工作流程,如圖15-03:
函數中使用變量KeyState來記錄當前的按鍵狀態,為了判斷按鍵的狀態變化我們還需要設置一個變量來記錄按鍵的原始狀態所以定義了局部靜態變量KeyStateOld,每次進行按鍵掃描時都會去判斷按鍵狀態是否有變化,如果按鍵狀態有變化說明用戶在操作手柄那么就根據新的按鍵狀態來發送對應的命令。我們可以將KeyScan函數放在主程序中不斷進行調用,來實時監控用戶的操作。
處理完用戶的操作后需要將用戶的操作以命令方式發送出去,命令的發送比較簡單我們利用NRF24L01_LIB.LIB庫來實現,我們主要使用三個函數就可以完成命令的發送工作,三個函數分別是WirelessDevInit、WirelessSetDataBuf、WirelessTransData,下面看一段例子程序,圖15-04:
上面是一段例子程序我們只需要在系統初始階段調用函數WirelessDevInit、WirelessSetDataBuf對無線設備進行初始化操作,當需要發送數據時候調用函數WirelessTransData便可以完成無線數據發送。可以結合上面的按鍵掃描程序對代碼進行修改,修改后的代碼形式如圖15-05:
這里介紹的僅是其中的一種為無線手柄編寫程序的方法,當然大家可以根據自己的設計編寫自己的程序來實現不同的手柄行為,比如擴展更多的命令,支持更多的組合鍵等等,這里僅僅列舉了一些代碼片段。
代碼中涉及到一些C語言的知識以及程序設計技巧,如果大家閱讀過程中遇到任何程序設計方面的問題可以隨時提出,我們共同討論。程序寫好后我們還要將程序燒錄到單片機中,這個是下一次解密的話題,今天就到這里……
本次解密是針對遙控坦克作品的最后一次解密,感謝壇友們一直以來對【DIY遙控坦克】的支持,希望以后能有更有意思的作品與大家分享。
上次給大家介紹了如何為無線遙控手柄編寫程序,今天為大家介紹如何將寫好的程序放到單片機中,做過單片機開發的朋友一定都清楚,我們一般是在PC上編輯、編譯源程序,但是程序是運行在目標設備上的,通常我們稱這個過程為“交叉編譯”,簡單來說就是在X86架構下編譯出可以在51(或其他)單片機上執行的程序。
一般來講我們編譯出的可執行程序是一個二進制文件,對于Keil編譯環境來說他會生成一個以.hex為后綴的文件。我們的目的就是把這個*.hex文件下載(燒錄、寫入)到我們的單片機中,下面看看如何來操作。
我們已經在遙控手柄的電路板上預留了編程接口,如圖16-01:
我們使用串口方式對程序進行下載,所以還需要一根USB轉串口的數據線,這種數據線比較多,比如圖16-02:
圖16-02是一個USB轉串口的模塊,使用它前需要安裝相關驅動程序。通過這個模塊我們可以對單片機進行編程,線路的連接比較簡單USB一端插在我們的PC機上,另外的3根線對應的是GND、TX、RX(地、發、收),分別與我們的手柄電路板上的編程接口相連,對應關系是GND-GND、RX-TX、TX-RX。電路連接完畢后開始下載程序,由于我們使用的是STC系列的51單片機所以我們使用STC-ISP.exe這個工具對單片機進行編程,看一下這個工具的截圖,圖16-03:
操作過程大概分為5步:
1. 選擇芯片類型,我們使用STC89C52RC;
2. 選擇編譯產生的*.hex,文件;
3. 選擇串口(可以在設備管理器中查看串口編號);
4. 點擊下載按鈕;
5. 當提示框提示為單片機上電時,打開系統電源;
下載結束后系統會給出提示信息。
經過上面的操作后我們的程序已經下載到單片機中,為系統上電后我們的程序就可以運行了,趕快驗證一下自己編寫的程序吧。
實際上為單片機下載程序的方法都是近似的,包括為坦克下載程序的方法和手柄一端是相同的,唯一不同的是它們所運行的程序是不一樣的。
|