找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 37513|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

遙控坦克DIY全過(guò)程解密

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
已經(jīng)更新到解密10結(jié)構(gòu)與組裝,多謝朋友們關(guān)注......

這個(gè)是坦克的組裝視頻


這里還有一些圖片






為方便閱讀,把解密過(guò)程,移動(dòng)到這里


遙控坦克DIY過(guò)程解密(01)
>>>>>>>>>>2013-01-04<<<<<<<<<<
【前言】
       貼子發(fā)布了幾天發(fā)現(xiàn)有很多網(wǎng)友對(duì)“@ZiShi”這個(gè)遙控坦克的DIY過(guò)程比較感興趣,不時(shí)有朋友通過(guò)QQ加好友詢問(wèn)這個(gè)坦克的DIY過(guò)程和控制原理,為了大家進(jìn)一步了解這個(gè)項(xiàng)目,“@ZiShi”將本著開(kāi)放、分享的原則對(duì)這個(gè)坦克的DIY過(guò)程進(jìn)行“解密”,說(shuō)是“解密”可能更多針對(duì)一些DIY“新手”而言的,對(duì)于一個(gè)DIY“高手”來(lái)說(shuō)這些可能并不算什么,但是仍然希望DIY“高手”們來(lái)分享這個(gè)過(guò)程并提出您的改進(jìn)意見(jiàn)。
【面向玩家】
       這個(gè)坦克的DIY過(guò)程主要面向廣大的小車、模型、電子、機(jī)械DIY愛(ài)好者,重點(diǎn)在于分享DIY過(guò)程以及DIY心得,與更多朋友分享DIY的樂(lè)趣。
       如果您是一個(gè)DIY“新手”通過(guò)“@ZiShi”的這些文字您可以了解到DIY過(guò)程中使用到的一些工具、設(shè)備、相關(guān)基礎(chǔ)知識(shí)以及這個(gè)坦克的組裝過(guò)程。如果您是一個(gè)DIY“熟手”,您可能曾經(jīng)做過(guò)類似的事情,同時(shí)更希望了解“@ZiShi”這個(gè)坦克的DIY過(guò)程以及內(nèi)部原理,“@ZiShi”在這里都會(huì)呈現(xiàn)給大家。如果您是一個(gè)DIY“老手”的話,那么“@ZiShi”的這篇文字在您面前就顯得班門弄斧了,我們更希望您能為我們的進(jìn)步提出更多寶貴意見(jiàn),在這先說(shuō)一聲謝謝。
【幾點(diǎn)說(shuō)明】
       在此要說(shuō)明幾點(diǎn):
       由于精力和時(shí)間的限制再加上內(nèi)容較多,這篇文字會(huì)不斷更新直到完成,請(qǐng)大家持續(xù)關(guān)注;
        “解密”過(guò)程將會(huì)沿著電路、軟件、機(jī)械、組裝的過(guò)程展開(kāi);
       由于篇幅所限文字將側(cè)重原理進(jìn)行講解;
       文字中會(huì)涉及到一些專業(yè)知識(shí)如機(jī)械、電子以及軟件,如果我們哪里做的不合理或不正確請(qǐng)您明確指出;
       對(duì)于一個(gè)DIY的作品很多地方是不能使用產(chǎn)品級(jí)的眼光去看待的,這樣會(huì)給DIY過(guò)程帶來(lái)很大困難,當(dāng)然我們力爭(zhēng)做到專業(yè);

       上面說(shuō)了很多題外話,下面進(jìn)入正題。

【解密-電路】
       待續(xù)……

遙控坦克DIY過(guò)程解密(02)
>>>>>>>>>>2013-01-05<<<<<<<<<<
       繼續(xù)解密……
       首先我們進(jìn)行一個(gè)簡(jiǎn)單設(shè)計(jì),規(guī)劃一下我們的遙控坦克要具備哪些功能。我們希望DIY后的遙控坦克可以實(shí)現(xiàn)下面一些功能:
       1、前進(jìn);
       2、后退;
       3、左轉(zhuǎn);
       4、右轉(zhuǎn);
       5、炮塔順時(shí)針旋轉(zhuǎn);
       6、炮塔逆時(shí)針旋轉(zhuǎn);
       7、通過(guò)遙控方式實(shí)現(xiàn)功能1-6;
       我們知道坦克的移動(dòng)以及炮塔的旋轉(zhuǎn)可以通過(guò)電機(jī)實(shí)現(xiàn),對(duì)于遙控功能的話我們這里選用的是NRF24L01這個(gè)無(wú)線收發(fā)模塊,所以對(duì)上面7點(diǎn)進(jìn)一步概括的話我們只要實(shí)現(xiàn)電機(jī)的控制以及無(wú)線接收與發(fā)送就可以了。
       下面是遙控坦克的功能圖。

       圖中的“M”表示坦克上的3個(gè)電機(jī),分別是2個(gè)輪子和1個(gè)炮塔,綠色的框代表NRF24L01這個(gè)無(wú)線收發(fā)模塊(需要2只),實(shí)際上剩下的工作大家都很容易想到,只要接收模塊接收到遙控發(fā)來(lái)的命令然后對(duì)命令進(jìn)行識(shí)別,最后控制電機(jī)旋轉(zhuǎn)。
       做過(guò)電機(jī)控制的朋友都知道只要通過(guò)一個(gè)叫“H橋”的電路就可以輕松控制電機(jī)轉(zhuǎn)動(dòng),那么實(shí)現(xiàn)“H橋”的方法有很多,大家可以使用獨(dú)立元器件去搭建電路當(dāng)然也可以選擇現(xiàn)成的控制芯片,我們選擇第二種方法,選擇使用芯片有幾個(gè)好處,第一它能夠大大節(jié)省我們的DIY時(shí)間,第二降低了實(shí)現(xiàn)的難度,同時(shí)芯片的集成度也比較高讓電路看起來(lái)比較美觀。這里我們不去討論如何選擇“H橋”芯片,我們只簡(jiǎn)單的介紹我們使用的這款芯片“L9110”,因?yàn)樗麅r(jià)格不貴而且使用方便,下圖是L9110使用手冊(cè)上的截圖。

       我們發(fā)現(xiàn)這個(gè)芯片上有8個(gè)引腳,我們只要關(guān)注其中的4個(gè)就夠了分別是IA、IB、OA和OB那么這四個(gè)引腳的關(guān)系是什么呢,繼續(xù)看芯片的使用手冊(cè)(本來(lái)是件挺輕松的事情結(jié)果動(dòng)不動(dòng)就要把手冊(cè)請(qǐng)出來(lái),真是頭大),通過(guò)瀏覽芯片的使用手冊(cè)我們會(huì)發(fā)現(xiàn)這樣一張圖,如下:

       這張引腳波形圖已經(jīng)清楚的告訴我們,IA和OA的關(guān)系以及IB和OB的關(guān)系,用一句話概括就是輸入是高那么輸出也是高,輸入是低輸出也是低,怎么樣簡(jiǎn)單吧。
       知道了引腳的時(shí)序關(guān)系后就可以要把他它連接到電路中了,芯片的使用手冊(cè)上已經(jīng)給出了應(yīng)用電路,我們照做就好了,看下圖:

       這個(gè)電路看起來(lái)還是蠻簡(jiǎn)單的,芯片左邊連接電機(jī)右邊連接單片機(jī)的IO。
       待續(xù)……

遙控坦克DIY過(guò)程解密(03)
>>>>>>>>>>2013-01-07<<<<<<<<<<
       繼續(xù)解密……
       上一回我們已經(jīng)大致了解了“H橋”芯片L9110的使用方法了,這一回我們將解釋如何使用這個(gè)芯片來(lái)控制小馬達(dá)的旋轉(zhuǎn),參考上一回芯片手冊(cè)上給出的應(yīng)用電路,我們可以清楚的知道只要將芯片的OA和OB引腳與馬達(dá)的兩個(gè)引腳相連就完成了馬達(dá)與芯片的連接,如圖3-1所示:

       馬達(dá)與芯片連接好以后,坦克控制系統(tǒng)的主角就要登場(chǎng)了,她就是微控制器(MCU),在我們的坦克系統(tǒng)中馬達(dá)的啟動(dòng)、停止、旋轉(zhuǎn)方向以及旋轉(zhuǎn)速度都是由微控制器進(jìn)行精確控制的,可見(jiàn)她的地位是非常重要的。
       說(shuō)道微控制器我們也叫他單片機(jī),常見(jiàn)的單片機(jī)有很多51、AVR、Arduino、ARM等等,我們這個(gè)坦克所使用的單片機(jī)是51兼容的單片機(jī),具體型號(hào)是STC89C52,這款單片機(jī)的程序空間以及她的數(shù)據(jù)空間完全能夠滿足我們DIY遙控坦克的需要,而且使用起來(lái)也比較方便,圖3-2是一個(gè)STC89C52單片機(jī):

       單片機(jī)的IO引腳是其與外界通信的重要手段,我們正是利用單片機(jī)的IO與L9110進(jìn)行通信的,下面看我們是怎樣將兩者進(jìn)行連接的,如圖3-3所示:

       將單片機(jī)的P10和P11分別和L9110的IB和IA相連,這里需要提醒那些想使用這個(gè)電路DIY的朋友,需要注意圖中那兩個(gè)虛框?qū)I(yè)上稱為上拉電阻的家伙,有的時(shí)候單片機(jī)引腳的驅(qū)動(dòng)能力有限需要使用這種方法提高她的驅(qū)動(dòng)能力,這個(gè)要視情況而定,并不是所有情況下都需要這個(gè)電阻的,可能有人會(huì)問(wèn)到如果需要的話選什么阻值呢,根據(jù)我們的經(jīng)驗(yàn)選擇10K歐姆電阻式可以正常工作的。
       有了上面這個(gè)電路我們就可以完成一組電機(jī)的控制了,這里我們需要三個(gè)電機(jī)那么如法炮制,只要再次分配4個(gè)IO口連接另外2塊L9110就可以了,如圖3-4所示:

       另外這里還涉及到單片機(jī)的工作問(wèn)題,比如電源怎么接、地線怎么接、還有復(fù)位電路等等,這里都沒(méi)有描述,由于這些內(nèi)容講起來(lái)比較占用篇幅,如果有想使用這個(gè)電路進(jìn)行DIY但又不太熟悉單片機(jī)的朋友可以聯(lián)系“@ZiShi”,我們可以提供更細(xì)致的資料。
       電機(jī)控制原理基本介紹完了,看起來(lái)并不復(fù)雜,后面該介紹數(shù)據(jù)接收部分的電路了。
       今天就到這里,下回繼續(xù)……

遙控坦克DIY過(guò)程解密(04)
>>>>>>>>>>2013-01-09<<<<<<<<<<
       上一回我們分享了電機(jī)控制的原理,這一回我們繼續(xù)看下遙控是如何實(shí)現(xiàn)的。
       對(duì)于一個(gè)坦克或小車來(lái)講我們總不希望他拖個(gè)長(zhǎng)長(zhǎng)的尾巴跑來(lái)跑去(線控)這樣會(huì)大大的限制住坦克的活動(dòng)范圍,如果是飛機(jī)或艦船的話使用線控就顯得更不合適了,那么使用什么方法來(lái)對(duì)坦克進(jìn)行遠(yuǎn)程的控制呢,同樣有很多方案供DIY愛(ài)好者選擇,簡(jiǎn)單來(lái)說(shuō)有下面幾種:
       1、常見(jiàn)的航模遙控器,如圖4-1,加上接收器一套下來(lái)估計(jì)最便宜的那種都要一兩百元,不太適合資金有限的DIY朋友;
       2、還有一種遙控外觀如圖4-2,這種遙控器主要用來(lái)控制電燈的開(kāi)關(guān),以及經(jīng)常出入停車場(chǎng)的朋友常常會(huì)看到門衛(wèi)手里拿的這個(gè)東西遙控進(jìn)出口欄桿的起降,這個(gè)種模塊使用非常簡(jiǎn)單,但是有一點(diǎn)不足這個(gè)模塊可以表達(dá)的信息有限,對(duì)于簡(jiǎn)單的開(kāi)關(guān)完全可以,但要是功能多起來(lái),這個(gè)遙控就應(yīng)付不了了,尤其要實(shí)現(xiàn)比例遙控的話這個(gè)模塊就無(wú)能為力了;
       3、第三個(gè)就是我們這里要討論的NRF24L01這個(gè)模塊了如圖4-3,首先他價(jià)格便宜其次它是一個(gè)數(shù)據(jù)傳輸模塊可以傳輸多種控制命令,但它也有缺點(diǎn)那就是他的接口比較復(fù)雜需要特定的時(shí)序才能完成對(duì)它的控制;
   
       經(jīng)過(guò)綜合的考慮我們選擇了NRF24L01這個(gè)模塊,決定使用單片機(jī)對(duì)它進(jìn)行控制。
       下面就是硬件的連接問(wèn)題了,說(shuō)到這里我們又要去翻看芯片的使用手冊(cè),還好我們有圖4-3這樣的模塊,模塊中已經(jīng)幫我們做好了芯片的周邊電路,我們并不需要做這些工作過(guò)了,我們只要了解這個(gè)模塊各個(gè)針腳的定義就好了,看圖4-4。

       這個(gè)模塊有8個(gè)針腳,分別代表VCC、GND、CE、CSN、SCK、MOSI、MISO、IRQ,我們看看如何把這個(gè)模塊和51單片機(jī)相連,如圖4-5。

       我們將無(wú)線模塊的各個(gè)引腳與單片機(jī)的P2口相連,同時(shí)將它的中斷引腳連接到單片機(jī)的INT0引腳,這部分硬件電路的搭建基本就結(jié)束了,需要注意的是圖中那個(gè)上拉電阻,到了這里坦克一端的硬件電路基本已經(jīng)形成了,看下完整的電路,圖4-6。

       后面我們?cè)俸?jiǎn)要介紹一下,遙控手柄一端的電路,今天先到這里。
       待續(xù)……

遙控坦克DIY過(guò)程解密(05)
>>>>>>>>>>2013-01-11<<<<<<<<<<
       上一回我們介紹完了坦克一端的硬件部分,這回繼續(xù)介紹一下手柄一端的硬件,比較之前的電路手柄這邊的電路要簡(jiǎn)單一些了,還是老習(xí)慣我們先分析一下手柄的功能,如圖5-1。

       手柄的主要任務(wù)就是處理玩家的一些動(dòng)作,然后將玩家的動(dòng)作以命令形式發(fā)送給坦克。那么玩家都有哪些動(dòng)作呢?總結(jié)下來(lái)就一個(gè)動(dòng)作“按鍵”,當(dāng)手柄發(fā)現(xiàn)用戶按下按鍵后,判斷用戶按下的是哪個(gè)按鍵最后將這個(gè)按鍵對(duì)應(yīng)的操作以命令形式發(fā)送給坦克。
       根據(jù)前面對(duì)坦克功能的定義我們要實(shí)現(xiàn)的動(dòng)作有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、炮塔順時(shí)針轉(zhuǎn)、炮塔逆時(shí)針轉(zhuǎn)這幾個(gè)動(dòng)作,那么我們就來(lái)設(shè)計(jì)一個(gè)帶有6個(gè)按鍵的手柄,其大致外觀如圖5-2。

       功能基本確定了我們來(lái)看下手柄一端的電路如何設(shè)計(jì),涉及到數(shù)據(jù)傳輸模塊的設(shè)計(jì)其實(shí)與坦克一端是一樣的,可以直接參考《遙控坦克DIY過(guò)程解密(04)》來(lái)完成相關(guān)電路的設(shè)計(jì),我們僅僅討論按鍵電路的設(shè)計(jì),如圖5-3所示。

       其中陰影部分電路就是遙控手柄的按鍵電路,同時(shí)已經(jīng)給出了數(shù)據(jù)傳輸模塊的電路。我們一共定義了6個(gè)按鍵使用單片機(jī)的P0口去讀取按鍵的狀態(tài),如果讀入的數(shù)據(jù)是‘0’說(shuō)明按鍵是抬起狀態(tài),如果讀入的數(shù)據(jù)是‘0’說(shuō)明按鍵被按下。怎么樣其實(shí)實(shí)現(xiàn)一個(gè)手柄也并不復(fù)雜,對(duì)于我們DIY來(lái)說(shuō)這個(gè)電路已經(jīng)完全夠用了。我們可以選擇圖5-4這種小按鍵來(lái)制作我們的手柄。

       把這種按鍵焊接在萬(wàn)能版上效果如圖5-5所示。

       DIY這個(gè)遙控坦克所涉及到的硬件部分基本介紹完畢了,后面的工作就是根據(jù)原理圖(在萬(wàn)能版或面包板上)把電路搭建好,搭建好電路后就可以進(jìn)入軟件設(shè)計(jì)階段了。
       今天先進(jìn)行到這里,待續(xù)……

遙控坦克DIY過(guò)程解密(06)
>>>>>>>>>>2013-01-13<<<<<<<<<<
【解密-軟件】
       我們說(shuō)硬件是載體軟件是靈魂,前面已經(jīng)介紹了遙控坦克的硬件部分接下來(lái)我們?cè)撊?shí)現(xiàn)它的軟件部分了,說(shuō)簡(jiǎn)單就是寫(xiě)程序控制我們的坦克完成預(yù)計(jì)功能。看過(guò)前面文字的朋友知道我們的硬件系統(tǒng)分為兩部分,它們是坦克系統(tǒng)和手柄系統(tǒng),我們要分別為這兩個(gè)系統(tǒng)編寫(xiě)程序。首先我們先設(shè)計(jì)一下坦克一端的軟件架構(gòu),如圖6-1。

       從圖中我們能看出坦克一端在不斷的接收命令,如果有命令發(fā)來(lái)就解析命令然后執(zhí)行命令,如果沒(méi)有命令那么繼續(xù)下一次接收命令,總之坦克一旦上電就在不停的接收命令直到關(guān)閉電源。這里給出部分源程序作為參考,考慮到有些朋友不太熟悉程序設(shè)計(jì)為不影響大家對(duì)原理的理解,在代碼中使用了很多注釋和偽代碼甚至插入很多中文信息,如圖6-2。

       從圖中我們可以清晰的看出程序的執(zhí)行過(guò)程,系統(tǒng)在無(wú)止境的循環(huán)接收命令、解析命令、執(zhí)行命令。其中紅色方框部分是這段程序的主體,我們會(huì)發(fā)現(xiàn)它的核心就是控制電機(jī)的旋轉(zhuǎn),那么如何通過(guò)程序來(lái)控制電機(jī)的旋轉(zhuǎn)呢,這就要回憶一下前面介紹的硬件電路了(《遙控坦克DIY過(guò)程解密(02)》),如圖6-3。

       根據(jù)L9110的工作時(shí)序圖以及我們的硬件原理圖,我們可以清楚的看出要想讓電機(jī)旋轉(zhuǎn)我們只要讓單片機(jī)的兩個(gè)IO引腳P10、P11輸出反相就可以了,如果轉(zhuǎn)化成代碼如圖6-4所示。

       上圖中紅色方框中表示的是對(duì)一個(gè)馬達(dá)的控制,對(duì)另外2個(gè)馬達(dá)的控制方法也是一樣的,進(jìn)行到這里我們已經(jīng)可以通過(guò)程序來(lái)控制電機(jī)的旋轉(zhuǎn)了,只要正確的協(xié)調(diào)3個(gè)馬達(dá)的旋轉(zhuǎn)方向,我們就可以讓我們的坦克完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、炮塔順時(shí)針旋轉(zhuǎn)以及炮塔逆時(shí)針旋轉(zhuǎn)這幾個(gè)功能。
       那么系統(tǒng)是如何知道已經(jīng)接收到數(shù)據(jù)的呢?只要有2種方法,一種方法是對(duì)NRF24L01的狀態(tài)不斷進(jìn)行查詢,另一種方法是當(dāng)NRF24L01接收到數(shù)據(jù)以后主動(dòng)通知MCU,根據(jù)我們的硬件原理圖同時(shí)為了提高系統(tǒng)執(zhí)行效率,我們采用第二種方法,代碼如圖6-5、6-6。
  
       當(dāng)接收到數(shù)據(jù)傳輸模塊觸發(fā)的中斷后,我們?nèi)プx取傳輸模塊的狀態(tài),如果接收到數(shù)據(jù)我們就設(shè)置一個(gè)標(biāo)志,圖6-2的程序會(huì)不斷查詢這個(gè)標(biāo)志,一旦發(fā)現(xiàn)有數(shù)據(jù)發(fā)送來(lái),就可以對(duì)數(shù)據(jù)進(jìn)行解析了。
       當(dāng)然這里面我們省略了初始化硬件、定時(shí)器以及傳輸模塊的詳細(xì)步驟,如果大家在DIY過(guò)程中也遇到到了具體技術(shù)問(wèn)題,可以隨時(shí)翻閱資料或?qū)W習(xí),當(dāng)然也可以與“@ZiShi”進(jìn)行交流。
       如果要讓坦克正常解析接收到的命令,我們可以定義一些簡(jiǎn)單的協(xié)議,如圖6-7。

       有了命令列表,通信雙方就可以根據(jù)這個(gè)“協(xié)議”進(jìn)行通信了,假如坦克一端接收到0X00,那么坦克就全速向前沖,如果坦克一端接收到0X02,那么坦克就會(huì)左轉(zhuǎn),大家還可以自己擴(kuò)充這個(gè)命令列表,讓自己的坦克完成更多的功能。
       坦克一端的程序原理已經(jīng)介紹完畢了,后面我們還會(huì)繼續(xù)介紹遙控手柄一端的程序原理。
       今天先到這里……

遙控坦克DIY過(guò)程解密(07)

>>>>>>>>>>2013-01-15<<<<<<<<<<

       前面介紹了坦克一端的程序原理這一回我們來(lái)看看手柄程序是怎么實(shí)現(xiàn)的,要實(shí)現(xiàn)手柄一端的程序我們還得回顧一下手柄一端的硬件原理圖,如圖7-1。

       根據(jù)原理圖我們可以看出當(dāng)按鍵沒(méi)有被按下是,單片機(jī)對(duì)應(yīng)的IO引腳為高電平,當(dāng)有按鍵按下時(shí)候,單片機(jī)對(duì)應(yīng)的IO引腳為低電平,根據(jù)這一原理,我們的程序可以不斷去讀取IO引腳的狀態(tài)來(lái)判斷是哪個(gè)按鍵被按下了,請(qǐng)看圖7-2。

       圖7-2是一段按鍵掃描程序,這段程序會(huì)返回被按下按鍵的編號(hào),最后根據(jù)按鍵的編號(hào)發(fā)送對(duì)應(yīng)的控制命令。系統(tǒng)程序運(yùn)行起來(lái)后我們只要不斷的調(diào)用這個(gè)按鍵掃描函數(shù),就可以不斷的讀取用戶輸入,發(fā)送控制命令,如圖7-3。

       至此程序部分的基本原理已經(jīng)介紹完畢了,有了這些程序我們已經(jīng)可以控制我們的坦克完成預(yù)計(jì)的功能了,如果后面再需要其他功能我們會(huì)在這個(gè)程序上進(jìn)行擴(kuò)展,另外這里給出的只是框架性的內(nèi)容,為了不影響對(duì)整體程序功能的理解,我們略去了部分技術(shù)細(xì)節(jié)。
       有些朋友可能對(duì)單片機(jī)編程或者對(duì)一些芯片、模塊的使用不太熟悉,這些涉及到具體細(xì)節(jié)的問(wèn)題我們可以另外進(jìn)行討論,這里還是以原理為主。
       軟件部分的“解密”基本完成了,下一回我們要開(kāi)始進(jìn)行結(jié)構(gòu)與外觀的設(shè)計(jì)了,敬請(qǐng)期待……
DSC03349_副本.jpg(52.15 KB, 下載次數(shù): 28)

DSC03354_副本.jpg(53.17 KB, 下載次數(shù): 23)

DSC03358_副本.jpg(53.71 KB, 下載次數(shù): 27)


遙控坦克DIY過(guò)程解密(01)
>>>>>>>>>>2013-01-04<<<<<<<<<<

【前言】
貼子發(fā)布了幾天發(fā)現(xiàn)有很多網(wǎng)友對(duì)“@ZiShi”這個(gè)遙控坦克的DIY過(guò)程比較感興趣,不時(shí)有朋友通過(guò)QQ加好友詢問(wèn)這個(gè)坦克的DIY過(guò)程和控制原理,為了大家進(jìn)一步了解這個(gè)項(xiàng)目,“@ZiShi”將本著開(kāi)放、分享的原則對(duì)這個(gè)坦克的DIY過(guò)程進(jìn)行“解密”,說(shuō)是“解密”可能更多針對(duì)一些DIY“新手”而言的,對(duì)于一個(gè)DIY“高手”來(lái)說(shuō)這些可能并不算什么,但是仍然希望DIY“高手”們來(lái)分享這個(gè)過(guò)程并提出您的改進(jìn)意見(jiàn)。

【面向玩家】
這個(gè)坦克的DIY過(guò)程主要面向廣大的小車、模型、電子、機(jī)械DIY愛(ài)好者,重點(diǎn)在于分享DIY過(guò)程以及DIY心得,與更多朋友分享DIY的樂(lè)趣。
如果您是一個(gè)DIY“新手”通過(guò)“@ZiShi”的這些文字您可以了解到DIY過(guò)程中使用到的一些工具、設(shè)備、相關(guān)基礎(chǔ)知識(shí)以及這個(gè)坦克的組裝過(guò)程。如果您是一個(gè)DIY“熟手”,您可能曾經(jīng)做過(guò)類似的事情,同時(shí)更希望了解“@ZiShi”這個(gè)坦克的DIY過(guò)程以及內(nèi)部原理,“@ZiShi”在這里都會(huì)呈現(xiàn)給大家。如果您是一個(gè)DIY“老手”的話,那么“@ZiShi”的這篇文字在您面前就顯得班門弄斧了,我們更希望您能為我們的進(jìn)步提出更多寶貴意見(jiàn),在這先說(shuō)一聲謝謝。

【幾點(diǎn)說(shuō)明】
在此要說(shuō)明幾點(diǎn):
  • 由于精力和時(shí)間的限制再加上內(nèi)容較多,這篇文字會(huì)不斷更新直到完成,請(qǐng)大家持續(xù)關(guān)注;
  • “解密”過(guò)程將會(huì)沿著電路、軟件、機(jī)械、組裝的過(guò)程展開(kāi);
  • 由于篇幅所限文字將側(cè)重原理進(jìn)行講解;
  • 文字中會(huì)涉及到一些專業(yè)知識(shí)如機(jī)械、電子以及軟件,如果我們哪里做的不合理或不正確請(qǐng)您明確指出;
  • 對(duì)于一個(gè)DIY的作品很多地方是不能使用產(chǎn)品級(jí)的眼光去看待的,這樣會(huì)給DIY過(guò)程帶來(lái)很大困難,當(dāng)然我們力爭(zhēng)做到專業(yè);

上面說(shuō)了很多題外話,下面進(jìn)入正題。

【解密-電路】
待續(xù)……

遙控坦克DIY過(guò)程解密(02)
>>>>>>>>>>2013-01-05<<<<<<<<<<

       繼續(xù)解密……
       首先我們進(jìn)行一個(gè)簡(jiǎn)單設(shè)計(jì),規(guī)劃一下我們的遙控坦克要具備哪些功能。我們希望DIY后的遙控坦克可以實(shí)現(xiàn)下面一些功能:
       1、前進(jìn);
       2、后退;
       3、左轉(zhuǎn);
       4、右轉(zhuǎn);
       5、炮塔順時(shí)針旋轉(zhuǎn);
       6、炮塔逆時(shí)針旋轉(zhuǎn);
       7、通過(guò)遙控方式實(shí)現(xiàn)功能1-6;
       我們知道坦克的移動(dòng)以及炮塔的旋轉(zhuǎn)可以通過(guò)電機(jī)實(shí)現(xiàn),對(duì)于遙控功能的話我們這里選用的是NRF24L01這個(gè)無(wú)線收發(fā)模塊,所以對(duì)上面7點(diǎn)進(jìn)一步概括的話我們只要實(shí)現(xiàn)電機(jī)的控制以及無(wú)線接收與發(fā)送就可以了。
下面是遙控坦克的功能圖。

       圖中的“M”表示坦克上的3個(gè)電機(jī),分別是2個(gè)輪子和1個(gè)炮塔,綠色的框代表NRF24L01這個(gè)無(wú)線收發(fā)模塊(需要2只),實(shí)際上剩下的工作大家都很容易想到,只要接收模塊接收到遙控發(fā)來(lái)的命令然后對(duì)命令進(jìn)行識(shí)別,最后控制電機(jī)旋轉(zhuǎn)。
       做過(guò)電機(jī)控制的朋友都知道只要通過(guò)一個(gè)叫“H橋”的電路就可以輕松控制電機(jī)轉(zhuǎn)動(dòng),那么實(shí)現(xiàn)“H橋”的方法有很多,大家可以使用獨(dú)立元器件去搭建電路當(dāng)然也可以選擇現(xiàn)成的控制芯片,我們選擇第二種方法,選擇使用芯片有幾個(gè)好處,第一它能夠大大節(jié)省我們的DIY時(shí)間,第二降低了實(shí)現(xiàn)的難度,同時(shí)芯片的集成度也比較高讓電路看起來(lái)比較美觀。這里我們不去討論如何選擇“H橋”芯片,我們只簡(jiǎn)單的介紹我們使用的這款芯片“L9110”,因?yàn)樗麅r(jià)格不貴而且使用方便,下圖是L9110使用手冊(cè)上的截圖。

       我們發(fā)現(xiàn)這個(gè)芯片上有8個(gè)引腳,我們只要關(guān)注其中的4個(gè)就夠了分別是IA、IB、OA和OB那么這四個(gè)引腳的關(guān)系是什么呢,繼續(xù)看芯片的使用手冊(cè)(本來(lái)是件挺輕松的事情結(jié)果動(dòng)不動(dòng)就要把手冊(cè)請(qǐng)出來(lái),真是頭大),通過(guò)瀏覽芯片的使用手冊(cè)我們會(huì)發(fā)現(xiàn)這樣一張圖,如下:

       這張引腳波形圖已經(jīng)清楚的告訴我們,IA和OA的關(guān)系以及IB和OB的關(guān)系,用一句話概括就是輸入是高那么輸出也是高,輸入是低輸出也是低,怎么樣簡(jiǎn)單吧。
       知道了引腳的時(shí)序關(guān)系后就可以要把他它連接到電路中了,芯片的使用手冊(cè)上已經(jīng)給出了應(yīng)用電路,我們照做就好了,看下圖:

       這個(gè)電路看起來(lái)還是蠻簡(jiǎn)單的,芯片左邊連接電機(jī)右邊連接單片機(jī)的IO。
       待續(xù)……
遙控坦克DIY過(guò)程解密(03)

>>>>>>>>>>2013-01-07<<<<<<<<<<


       繼續(xù)解密……
       上一回我們已經(jīng)大致了解了“H橋”芯片L9110的使用方法了,這一回我們將解釋如何使用這個(gè)芯片來(lái)控制小馬達(dá)的旋轉(zhuǎn),參考上一回芯片手冊(cè)上給出的應(yīng)用電路,我們可以清楚的知道只要將芯片的OA和OB引腳與馬達(dá)的兩個(gè)引腳相連就完成了馬達(dá)與芯片的連接,如圖3-1所示:

       馬達(dá)與芯片連接好以后,坦克控制系統(tǒng)的主角就要登場(chǎng)了,她就是微控制器(MCU),在我們的坦克系統(tǒng)中馬達(dá)的啟動(dòng)、停止、旋轉(zhuǎn)方向以及旋轉(zhuǎn)速度都是由微控制器進(jìn)行精確控制的,可見(jiàn)她的地位是非常重要的。
       說(shuō)道微控制器我們也叫他單片機(jī),常見(jiàn)的單片機(jī)有很多51、AVR、Arduino、ARM等等,我們這個(gè)坦克所使用的單片機(jī)是51兼容的單片機(jī),具體型號(hào)是STC89C52,這款單片機(jī)的程序空間以及她的數(shù)據(jù)空間完全能夠滿足我們DIY遙控坦克的需要,而且使用起來(lái)也比較方便,圖3-2是一個(gè)STC89C52單片機(jī):

       單片機(jī)的IO引腳是其與外界通信的重要手段,我們正是利用單片機(jī)的IO與L9110進(jìn)行通信的,下面看我們是怎樣將兩者進(jìn)行連接的,如圖3-3所示:

       將單片機(jī)的P10和P11分別和L9110的IB和IA相連,這里需要提醒那些想使用這個(gè)電路DIY的朋友,需要注意圖中那兩個(gè)虛框?qū)I(yè)上稱為上拉電阻的家伙,有的時(shí)候單片機(jī)引腳的驅(qū)動(dòng)能力有限需要使用這種方法提高她的驅(qū)動(dòng)能力,這個(gè)要視情況而定,并不是所有情況下都需要這個(gè)電阻的,可能有人會(huì)問(wèn)到如果需要的話選什么阻值呢,根據(jù)我們的經(jīng)驗(yàn)選擇10K歐姆電阻式可以正常工作的。
       有了上面這個(gè)電路我們就可以完成一組電機(jī)的控制了,這里我們需要三個(gè)電機(jī)那么如法炮制,只要再次分配4個(gè)IO口連接另外2塊L9110就可以了,如圖3-4所示:

       另外這里還涉及到單片機(jī)的工作問(wèn)題,比如電源怎么接、地線怎么接、還有復(fù)位電路等等,這里都沒(méi)有描述,由于這些內(nèi)容講起來(lái)比較占用篇幅,如果有想使用這個(gè)電路進(jìn)行DIY但又不太熟悉單片機(jī)的朋友可以聯(lián)系“@ZiShi”,我們可以提供更細(xì)致的資料。
       電機(jī)控制原理基本介紹完了,看起來(lái)并不復(fù)雜,后面該介紹數(shù)據(jù)接收部分的電路了。
       今天就到這里,下回繼續(xù)……

遙控坦克DIY過(guò)程解密(04)
>>>>>>>>>>2013-01-09<<<<<<<<<<

       上一回我們分享了電機(jī)控制的原理,這一回我們繼續(xù)看下遙控是如何實(shí)現(xiàn)的。
       對(duì)于一個(gè)坦克或小車來(lái)講我們總不希望他拖個(gè)長(zhǎng)長(zhǎng)的尾巴跑來(lái)跑去(線控)這樣會(huì)大大的限制住坦克的活動(dòng)范圍,如果是飛機(jī)或艦船的話使用線控就顯得更不合適了,那么使用什么方法來(lái)對(duì)坦克進(jìn)行遠(yuǎn)程的控制呢,同樣有很多方案供DIY愛(ài)好者選擇,簡(jiǎn)單來(lái)說(shuō)有下面幾種:
       1、常見(jiàn)的航模遙控器,如圖4-1,加上接收器一套下來(lái)估計(jì)最便宜的那種都要一兩百元,不太適合資金有限的DIY朋友;
       2、還有一種遙控外觀如圖4-2,這種遙控器主要用來(lái)控制電燈的開(kāi)關(guān),以及經(jīng)常出入停車場(chǎng)的朋友常常會(huì)看到門衛(wèi)手里拿的這個(gè)東西遙控進(jìn)出口欄桿的起降,這個(gè)種模塊使用非常簡(jiǎn)單,但是有一點(diǎn)不足這個(gè)模塊可以表達(dá)的信息有限,對(duì)于簡(jiǎn)單的開(kāi)關(guān)完全可以,但要是功能多起來(lái),這個(gè)遙控就應(yīng)付不了了,尤其要實(shí)現(xiàn)比例遙控的話這個(gè)模塊就無(wú)能為力了;
       3、第三個(gè)就是我們這里要討論的NRF24L01這個(gè)模塊了如圖4-3,首先他價(jià)格便宜其次它是一個(gè)數(shù)據(jù)傳輸模塊可以傳輸多種控制命令,但它也有缺點(diǎn)那就是他的接口比較復(fù)雜需要特定的時(shí)序才能完成對(duì)它的控制;
   
       經(jīng)過(guò)綜合的考慮我們選擇了NRF24L01這個(gè)模塊,決定使用單片機(jī)對(duì)它進(jìn)行控制。
       下面就是硬件的連接問(wèn)題了,說(shuō)到這里我們又要去翻看芯片的使用手冊(cè),還好我們有圖4-3這樣的模塊,模塊中已經(jīng)幫我們做好了芯片的周邊電路,我們并不需要做這些工作過(guò)了,我們只要了解這個(gè)模塊各個(gè)針腳的定義就好了,看圖4-4。

       這個(gè)模塊有8個(gè)針腳,分別代表VCC、GND、CE、CSN、SCK、MOSI、MISO、IRQ,我們看看如何把這個(gè)模塊和51單片機(jī)相連,如圖4-5。

       我們將無(wú)線模塊的各個(gè)引腳與單片機(jī)的P2口相連,同時(shí)將它的中斷引腳連接到單片機(jī)的INT0引腳,這部分硬件電路的搭建基本就結(jié)束了,需要注意的是圖中那個(gè)上拉電阻,到了這里坦克一端的硬件電路基本已經(jīng)形成了,看下完整的電路,圖4-6。

       后面我們?cè)俸?jiǎn)要介紹一下,遙控手柄一端的電路,今天先到這里。
       待續(xù)……


遙控坦克DIY過(guò)程解密(05)
>>>>>>>>>>2013-01-11<<<<<<<<<<

       上一回我們介紹完了坦克一端的硬件部分,這回繼續(xù)介紹一下手柄一端的硬件,比較之前的電路手柄這邊的電路要簡(jiǎn)單一些了,還是老習(xí)慣我們先分析一下手柄的功能,如圖5-1。

       手柄的主要任務(wù)就是處理玩家的一些動(dòng)作,然后將玩家的動(dòng)作以命令形式發(fā)送給坦克。那么玩家都有哪些動(dòng)作呢?總結(jié)下來(lái)就一個(gè)動(dòng)作“按鍵”,當(dāng)手柄發(fā)現(xiàn)用戶按下按鍵后,判斷用戶按下的是哪個(gè)按鍵最后將這個(gè)按鍵對(duì)應(yīng)的操作以命令形式發(fā)送給坦克。
       根據(jù)前面對(duì)坦克功能的定義我們要實(shí)現(xiàn)的動(dòng)作有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、炮塔順時(shí)針轉(zhuǎn)、炮塔逆時(shí)針轉(zhuǎn)這幾個(gè)動(dòng)作,那么我們就來(lái)設(shè)計(jì)一個(gè)帶有6個(gè)按鍵的手柄,其大致外觀如圖5-2。

       功能基本確定了我們來(lái)看下手柄一端的電路如何設(shè)計(jì),涉及到數(shù)據(jù)傳輸模塊的設(shè)計(jì)其實(shí)與坦克一端是一樣的,可以直接參考《遙控坦克DIY過(guò)程解密(04)》來(lái)完成相關(guān)電路的設(shè)計(jì),我們僅僅討論按鍵電路的設(shè)計(jì),如圖5-3所示。

       其中陰影部分電路就是遙控手柄的按鍵電路,同時(shí)已經(jīng)給出了數(shù)據(jù)傳輸模塊的電路。我們一共定義了6個(gè)按鍵使用單片機(jī)的P0口去讀取按鍵的狀態(tài),如果讀入的數(shù)據(jù)是‘0’說(shuō)明按鍵是抬起狀態(tài),如果讀入的數(shù)據(jù)是‘0’說(shuō)明按鍵被按下。怎么樣其實(shí)實(shí)現(xiàn)一個(gè)手柄也并不復(fù)雜,對(duì)于我們DIY來(lái)說(shuō)這個(gè)電路已經(jīng)完全夠用了。我們可以選擇圖5-4這種小按鍵來(lái)制作我們的手柄。

       把這種按鍵焊接在萬(wàn)能版上效果如圖5-5所示。

       DIY這個(gè)遙控坦克所涉及到的硬件部分基本介紹完畢了,后面的工作就是根據(jù)原理圖(在萬(wàn)能版或面包板上)把電路搭建好,搭建好電路后就可以進(jìn)入軟件設(shè)計(jì)階段了。
       今天先進(jìn)行到這里,待續(xù)……


       大家一起DIY
      

遙控坦克DIY過(guò)程解密(06)
>>>>>>>>>>2013-01-13<<<<<<<<<<

【解密-軟件】
       我們說(shuō)硬件是載體軟件是靈魂,前面已經(jīng)介紹了遙控坦克的硬件部分接下來(lái)我們?cè)撊?shí)現(xiàn)它的軟件部分了,說(shuō)簡(jiǎn)單就是寫(xiě)程序控制我們的坦克完成預(yù)計(jì)功能?催^(guò)前面文字的朋友知道我們的硬件系統(tǒng)分為兩部分,它們是坦克系統(tǒng)和手柄系統(tǒng),我們要分別為這兩個(gè)系統(tǒng)編寫(xiě)程序。首先我們先設(shè)計(jì)一下坦克一端的軟件架構(gòu),如圖6-1。

       從圖中我們能看出坦克一端在不斷的接收命令,如果有命令發(fā)來(lái)就解析命令然后執(zhí)行命令,如果沒(méi)有命令那么繼續(xù)下一次接收命令,總之坦克一旦上電就在不停的接收命令直到關(guān)閉電源。這里給出部分源程序作為參考,考慮到有些朋友不太熟悉程序設(shè)計(jì)為不影響大家對(duì)原理的理解,在代碼中使用了很多注釋和偽代碼甚至插入很多中文信息,如圖6-2。

       從圖中我們可以清晰的看出程序的執(zhí)行過(guò)程,系統(tǒng)在無(wú)止境的循環(huán)接收命令、解析命令、執(zhí)行命令。其中紅色方框部分是這段程序的主體,我們會(huì)發(fā)現(xiàn)它的核心就是控制電機(jī)的旋轉(zhuǎn),那么如何通過(guò)程序來(lái)控制電機(jī)的旋轉(zhuǎn)呢,這就要回憶一下前面介紹的硬件電路了(《遙控坦克DIY過(guò)程解密(02)》),如圖6-3。

       根據(jù)L9110的工作時(shí)序圖以及我們的硬件原理圖,我們可以清楚的看出要想讓電機(jī)旋轉(zhuǎn)我們只要讓單片機(jī)的兩個(gè)IO引腳P10、P11輸出反相就可以了,如果轉(zhuǎn)化成代碼如圖6-4所示。

       上圖中紅色方框中表示的是對(duì)一個(gè)馬達(dá)的控制,對(duì)另外2個(gè)馬達(dá)的控制方法也是一樣的,進(jìn)行到這里我們已經(jīng)可以通過(guò)程序來(lái)控制電機(jī)的旋轉(zhuǎn)了,只要正確的協(xié)調(diào)3個(gè)馬達(dá)的旋轉(zhuǎn)方向,我們就可以讓我們的坦克完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、炮塔順時(shí)針旋轉(zhuǎn)以及炮塔逆時(shí)針旋轉(zhuǎn)這幾個(gè)功能。
       那么系統(tǒng)是如何知道已經(jīng)接收到數(shù)據(jù)的呢?只要有2種方法,一種方法是對(duì)NRF24L01的狀態(tài)不斷進(jìn)行查詢,另一種方法是當(dāng)NRF24L01接收到數(shù)據(jù)以后主動(dòng)通知MCU,根據(jù)我們的硬件原理圖同時(shí)為了提高系統(tǒng)執(zhí)行效率,我們采用第二種方法,代碼如圖6-5、6-6。
  
       當(dāng)接收到數(shù)據(jù)傳輸模塊觸發(fā)的中斷后,我們?nèi)プx取傳輸模塊的狀態(tài),如果接收到數(shù)據(jù)我們就設(shè)置一個(gè)標(biāo)志,圖6-2的程序會(huì)不斷查詢這個(gè)標(biāo)志,一旦發(fā)現(xiàn)有數(shù)據(jù)發(fā)送來(lái),就可以對(duì)數(shù)據(jù)進(jìn)行解析了。
       當(dāng)然這里面我們省略了初始化硬件、定時(shí)器以及傳輸模塊的詳細(xì)步驟,如果大家在DIY過(guò)程中也遇到到了具體技術(shù)問(wèn)題,可以隨時(shí)翻閱資料或?qū)W習(xí),當(dāng)然也可以與“@ZiShi”進(jìn)行交流。
       如果要讓坦克正常解析接收到的命令,我們可以定義一些簡(jiǎn)單的協(xié)議,如圖6-7。

       有了命令列表,通信雙方就可以根據(jù)這個(gè)“協(xié)議”進(jìn)行通信了,假如坦克一端接收到0X00,那么坦克就全速向前沖,如果坦克一端接收到0X02,那么坦克就會(huì)左轉(zhuǎn),大家還可以自己擴(kuò)充這個(gè)命令列表,讓自己的坦克完成更多的功能。
       坦克一端的程序原理已經(jīng)介紹完畢了,后面我們還會(huì)繼續(xù)介紹遙控手柄一端的程序原理。
       今天先到這里……

遙控坦克DIY過(guò)程解密(07)
>>>>>>>>>>2013-01-15<<<<<<<<<<

       前面介紹了坦克一端的程序原理這一回我們來(lái)看看手柄程序是怎么實(shí)現(xiàn)的,要實(shí)現(xiàn)手柄一端的程序我們還得回顧一下手柄一端的硬件原理圖,如圖7-1。

       根據(jù)原理圖我們可以看出當(dāng)按鍵沒(méi)有被按下是,單片機(jī)對(duì)應(yīng)的IO引腳為高電平,當(dāng)有按鍵按下時(shí)候,單片機(jī)對(duì)應(yīng)的IO引腳為低電平,根據(jù)這一原理,我們的程序可以不斷去讀取IO引腳的狀態(tài)來(lái)判斷是哪個(gè)按鍵被按下了,請(qǐng)看圖7-2。

       圖7-2是一段按鍵掃描程序,這段程序會(huì)返回被按下按鍵的編號(hào),最后根據(jù)按鍵的編號(hào)發(fā)送對(duì)應(yīng)的控制命令。系統(tǒng)程序運(yùn)行起來(lái)后我們只要不斷的調(diào)用這個(gè)按鍵掃描函數(shù),就可以不斷的讀取用戶輸入,發(fā)送控制命令,如圖7-3。

       至此程序部分的基本原理已經(jīng)介紹完畢了,有了這些程序我們已經(jīng)可以控制我們的坦克完成預(yù)計(jì)的功能了,如果后面再需要其他功能我們會(huì)在這個(gè)程序上進(jìn)行擴(kuò)展,另外這里給出的只是框架性的內(nèi)容,為了不影響對(duì)整體程序功能的理解,我們略去了部分技術(shù)細(xì)節(jié)。
       有些朋友可能對(duì)單片機(jī)編程或者對(duì)一些芯片、模塊的使用不太熟悉,這些涉及到具體細(xì)節(jié)的問(wèn)題我們可以另外進(jìn)行討論,這里還是以原理為主。
       軟件部分的“解密”基本完成了,下一回我們要開(kāi)始進(jìn)行結(jié)構(gòu)與外觀的設(shè)計(jì)了,敬請(qǐng)期待……

遙控坦克DIY過(guò)程解密(08)
>>>>>>>>>>2013-01-17<<<<<<<<<<

       前面介紹了很多專業(yè)內(nèi)容,估計(jì)大家看的有些不耐煩了,今天換換口味,欣賞一下我們拍攝的照片,之前一直有朋友反映視頻看的不是很清楚,很多細(xì)節(jié)沒(méi)有看到,今天給大家上幾張圖,我們也正在翻錄新的視頻,希望能做的更好,話不多說(shuō)開(kāi)始上圖嘍,圖8-1:

       上面這張圖,是我們用銅柱和螺母拼出的“DIY”和“ZiShi”字樣,圖中這兩樣?xùn)|西,是我們拼接外殼的主要連接件。他們都是很常見(jiàn)的零件,相信常常DIY的朋友對(duì)這種零件并不陌生。在看下一張,圖8-2。

       看到這個(gè)圖大家會(huì)不會(huì)想起兒時(shí)玩的四驅(qū)車呢,如果能夠回憶起說(shuō)明您從小就十分熱愛(ài)DIY這項(xiàng)充滿刺激的動(dòng)手活動(dòng)。我們的坦克就是利用這些簡(jiǎn)單的組件搭建出來(lái)的,蠻神奇的。
       后來(lái)我們都長(zhǎng)大了,但心依然年輕,從未放棄自己熱愛(ài)的事情,只是不再滿足于“簡(jiǎn)單”的四驅(qū)車,一心想要做出自己的超級(jí)戰(zhàn)車,同時(shí)我們的戰(zhàn)車應(yīng)該具有聰明的“大腦”,而不是簡(jiǎn)單的前、后、左、右,我們要實(shí)現(xiàn)更多功能讓它具備更快的反映能力,要說(shuō)反應(yīng)能力快在這是世界上誰(shuí)還能快過(guò)計(jì)算機(jī)呢,我們打算在戰(zhàn)車中植入計(jì)算機(jī)讓它具有思維,下圖就是我們引入的51計(jì)算機(jī),圖8-3。

       有了大腦戰(zhàn)車才會(huì)變得更加聰明。
       要說(shuō)DIY真的樂(lè)趣很多,可以充分發(fā)揮大家的想象力和動(dòng)手能力,同時(shí)讓我們?cè)趯W(xué)校里學(xué)到的知識(shí)不被浪費(fèi)掉,所以我們一直鼓勵(lì)大家動(dòng)手去做去實(shí)踐。
       說(shuō)到坦克我們?cè)賮?lái)看看他的履帶長(zhǎng)什么樣子,如圖8-4。

       大家看到了嗎,坦克的履帶,我們就以這張笑臉結(jié)束今天的文字,希望我們能為大家?guī)?lái)更多的快樂(lè),同時(shí)也感謝前一段時(shí)間大家對(duì)“ZiShi”遙控坦克的支持,感謝大家。
       后面我們繼續(xù)回到結(jié)構(gòu)設(shè)計(jì)的話題,請(qǐng)看下一回……

遙控坦克DIY過(guò)程解密(09)

>>>>>>>>>>2013-01-19<<<<<<<<<<


       繼續(xù)解密
       今天進(jìn)行我們遙控坦克項(xiàng)目的最后一個(gè)“解密”部分,最后一部分主要是關(guān)于機(jī)械結(jié)構(gòu)的解密。對(duì)于一般的DIY愛(ài)好者來(lái)講螺絲刀、鉗子、鋼鋸、電鉆這些工具還都是具備的,但是要說(shuō)到數(shù)控機(jī)床、激光切割之類的大家伙可能很少有人具備這個(gè)條件了,是不是沒(méi)有這些大家伙我們就不能進(jìn)行DIY了呢?當(dāng)然不是的。DIY的精神就在于有條件要DO,沒(méi)條件創(chuàng)造條件也要DO,沒(méi)有工具沒(méi)有專業(yè)的知識(shí)都不能阻止我們?nèi)IY。
       今天在這里“ZiShi”要給大家分享的內(nèi)容是,在有限的加工工具和有限的專業(yè)知識(shí)條件下如何進(jìn)行個(gè)人的DIY,當(dāng)然我們這回是圍繞機(jī)械結(jié)構(gòu)部分展開(kāi)的。
       我們會(huì)分兩回進(jìn)行這部分內(nèi)容,第一回介紹金屬加工方法,第二回介紹非金屬加工方法。
       先來(lái)看金屬加工方法,做任何事之前都需要進(jìn)行簡(jiǎn)單設(shè)計(jì),如果不進(jìn)行設(shè)計(jì)就開(kāi)工后面會(huì)遇到很多麻煩,對(duì)于機(jī)械加工來(lái)說(shuō)我們第一步要做的就是繪圖,可能有朋友說(shuō)了沒(méi)學(xué)過(guò)CAD怎么做呢?我們說(shuō)沒(méi)關(guān)系一桿筆一把直尺足夠了,當(dāng)然有時(shí)候還會(huì)用到圓規(guī)。有條件的朋友可以現(xiàn)在坐標(biāo)紙上進(jìn)行設(shè)計(jì),沒(méi)有坐標(biāo)紙呢找一張白紙也完全可以,有了這些就可以開(kāi)工嘍,具體怎么畫(huà)不用詳細(xì)介紹,我們只要一上圖,大家馬上明白,請(qǐng)看圖9-1、9-2:
  
       這是我們?cè)?jīng)設(shè)計(jì)過(guò)的一個(gè)實(shí)例—機(jī)械腿,看著可能有些復(fù)雜,但仔細(xì)觀察發(fā)現(xiàn)圖中除了線就是圓,一把直尺一支筆一個(gè)圓規(guī)完全能搞定了,怎么樣原理并不復(fù)雜吧沒(méi)有CAD我們也可以DIY的,有了這張圖接下來(lái)就是繪制具體的零件了,這個(gè)就更加容易了,看圖9-3:

       上面的圖展示了3個(gè)零件的繪制方法,零件畫(huà)好以后順便標(biāo)記尺寸,這個(gè)尺寸就是我們后面進(jìn)行加工的依據(jù)了。上面這個(gè)圖是一個(gè)立體效果,我們還要把它轉(zhuǎn)化成平面的尺寸,看圖9-4:

       圖9-4是一個(gè)簡(jiǎn)單的零件,被展開(kāi)后就是一個(gè)矩形,我們只要把下半部分的圖紙用剪刀剪下,然后貼到金屬材料上(鐵皮、鋁片),然后使用鋼鋸沿著圖紙進(jìn)行切割就好了,切割好的材料根據(jù)預(yù)先設(shè)計(jì)的尺寸進(jìn)行折彎處理,請(qǐng)看圖9-5:


       被加工好的零件與圖9-5左下方的效果類似,這種加工方法效率不算高但是可行的,為了充分說(shuō)明這個(gè)方法的可行性,我們展示一下當(dāng)時(shí)做的機(jī)械腿效果,如圖9-6:

       這里只進(jìn)行了原理性的說(shuō)明,我想大家應(yīng)該可以理解這個(gè)過(guò)程,交代的可能不是很細(xì)致,因?yàn)榫唧w的手工加工過(guò)程還是有很多技巧的,而且對(duì)動(dòng)手能力有比較高的要求,最重要的是有耐心因?yàn)檫@種方法的效率并不高,還有最最重要的是注意安全,主要保護(hù)好眼睛和手。如果大家對(duì)這種DIY方式感興趣我們可以進(jìn)一步分享經(jīng)驗(yàn)。
       下一回我們就介紹非金屬材料的加工,這部分和坦克車就很接近了……

遙控坦克DIY過(guò)程解密(10)
>>>>>>>>>>2013-01-22<<<<<<<<<<
       上回介紹了金屬加工,本來(lái)計(jì)劃接著介紹非金屬的手工加工方法,不過(guò)團(tuán)隊(duì)中負(fù)責(zé)結(jié)構(gòu)的兄弟以及完成了坦克內(nèi)部結(jié)構(gòu)與組裝的“解密”,同時(shí)這個(gè)地方很多網(wǎng)友又比較感興趣,所以我們先進(jìn)行戰(zhàn)車的結(jié)構(gòu)和組裝“解密”,后面抽個(gè)機(jī)會(huì)再與大家分享非金屬的手工加工方法。
       首先來(lái)個(gè)回顧,看看我們的坦克有幾部分構(gòu)成,看圖10-01:

       如果以從上到下的方式去觀察的話,我們的戰(zhàn)車主要包括了炮塔和底盤兩大部分,所以我們?cè)贒IY這個(gè)戰(zhàn)車時(shí)候也依據(jù)這樣的順序,炮塔的組裝、車體的組裝、整體的裝配以及最后的電路調(diào)試過(guò)程。
       組裝這個(gè)坦克涉及的工具并不復(fù)雜,一把螺絲刀一把小鉗子基本就滿足了。
       首先看看炮塔是如何組裝的,既然是“解密”就要讓大家看的清清楚楚,我們特意將車體零件“散開(kāi)”讓大家進(jìn)一步了解其內(nèi)部結(jié)構(gòu),首先看看這個(gè)炮塔是怎么構(gòu)成的,如圖10-02:

       通過(guò)上面的圖我們已經(jīng)很清晰的看出了炮管以及炮塔主體的內(nèi)部結(jié)構(gòu),而且他的組裝過(guò)程也極其簡(jiǎn)單,只要看著這個(gè)3D圖拼拼插插就好了,最后在關(guān)鍵部位使用螺釘鎖緊(哎,連我自己都佩服設(shè)計(jì)坦克的兄弟,這是怎么構(gòu)思滴泥,如果朋友們也感覺(jué)神奇,一定要頂我們哦,先謝謝大家,嘿嘿)。再來(lái)看看炮管和炮塔主體是如何進(jìn)行連接的,看圖10-03:

       一個(gè)完整的炮塔已經(jīng)躍然紙上,不過(guò)大家單純看圖可能很難體會(huì)到DIY的樂(lè)趣了,主要還是得動(dòng)手試一試,后面我們也會(huì)給大家介紹如何通過(guò)手工方法達(dá)到類似效果,當(dāng)然了僅限于簡(jiǎn)單的外觀,像坦克這么大的工程如果完全手工打造的話不是不可以而是時(shí)間長(zhǎng)零件精度方面不好控制。我們團(tuán)隊(duì)也是花了很多時(shí)間反復(fù)修改才把坦克變成今天這個(gè)樣子的,只要大家肯在DIY上面花時(shí)間,當(dāng)然也要花點(diǎn)銀子,基本工具和材料還是要買的,相信每個(gè)人都能D出自己滿意的作品。
       炮塔的組裝基本就介紹完畢了,后面的組裝過(guò)程也是類似的拼拼插插,相信大家一看就能理解,組裝過(guò)程還用到了一些鏈接件,都很常見(jiàn),如圖10-04:

       銅柱、螺釘和螺母,相信每一個(gè)DIY愛(ài)好者家里都有不少這種東西,具體怎么使用自然不用多說(shuō)。
       好了,炮塔的內(nèi)部結(jié)構(gòu)和組裝過(guò)程已經(jīng)介紹完了,今天就到這里,下回繼續(xù)……

-----------------------------------------------------

之前的一篇帖子主要分享了遙控坦克DIY的原理,涉及了一些機(jī)械、電子、軟件原理,受到很多朋友的支持和鼓勵(lì),今天再發(fā)一帖主要介紹這個(gè)坦克的組裝過(guò)程,

如果按照之前的順序今天是第11篇文字了,看看今天聊些什么內(nèi)容......

遙控坦克DIY過(guò)程解密(11)

>>>>>>>>>>2013-01-27<<<<<<<<<<

       上一回我們已經(jīng)介紹了炮塔的組裝過(guò)程,這一回我們看看車體是如何組裝的。先來(lái)看看車體長(zhǎng)什么樣子,如圖11-01:

       車體部分的零件要比炮塔部分的零件多些,所以組裝起來(lái)會(huì)更加有趣一些,從上面的圖我們可以發(fā)現(xiàn),車體部分主要有下面幾部分構(gòu)成,“上面板組件”,“履帶傳動(dòng)板組件”,“底盤前鎖緊組件”,“承重輪組件”,“導(dǎo)向輪組件”,“驅(qū)動(dòng)輪組件”以及“底板組件”。我們會(huì)分別看下這幾個(gè)組件的組裝過(guò)程,最后再看看這些個(gè)組件是如何構(gòu)成坦克的車體的。
       上面板的主要作用是用來(lái)固定炮塔電機(jī)的,我們使用螺絲和螺母將炮塔電機(jī)固定在坦克的上面板上,請(qǐng)看圖11-02:

       在上圖中我們還能看見(jiàn)上面板組件上還有4跟長(zhǎng)長(zhǎng)的“立柱”,這4跟立柱主要用來(lái)連接上面板組件和底板組件。接下來(lái)看看稱重輪組件,所謂稱重輪組件就是車身兩側(cè)的起到支撐左右的輪子,如圖11-03、11-04:


       有了這排稱重輪坦克才能發(fā)揮履帶車的優(yōu)勢(shì),面對(duì)任何地形如履平地。履帶的轉(zhuǎn)動(dòng)依靠驅(qū)動(dòng)輪的帶動(dòng),我們看看驅(qū)動(dòng)輪是如何安裝的,看圖11-05:

       只要把驅(qū)動(dòng)小齒輪安裝在坦克的馬達(dá)上,它就可以帶動(dòng)坦克履帶前進(jìn)了,相信大家一定能夠明白履帶的驅(qū)動(dòng)原理了。前面我們提到了支撐輪、馬達(dá)和驅(qū)動(dòng)輪,那么這些組件是如何組織在一起的呢,我們需要另一個(gè)組件,我們稱為“履帶傳動(dòng)板組件”,如圖11-06:

       后面我們會(huì)把坦克支撐輪、馬達(dá)以及驅(qū)動(dòng)輪固定在這個(gè)傳動(dòng)板上,圖中的長(zhǎng)螺絲還有螺母正是固定傳動(dòng)板和馬達(dá)的。我們所采用的電機(jī)就是常見(jiàn)的TT馬達(dá),如圖11-07:

       接下來(lái)看一下底盤底板組件的安裝,底盤底板組件主要有兩個(gè)功能,一個(gè)是功能是將塔克底盤封起來(lái)讓坦克看上去更加封閉,另一個(gè)功能是固定電池盒,看圖11-08:

       當(dāng)我們把這個(gè)底板固定到坦克的底盤之后整個(gè)車身就被封閉起來(lái),電路、電機(jī)還有電池盒全部被裝到坦克的身體里,這樣看上去坦克更加的美觀。最后我們看看以上介紹的底盤組件是如何組裝起來(lái)形成坦克底盤的,看圖11-09:

       上面這張圖較清晰的說(shuō)明了底盤的構(gòu)成。這一回的坦克組裝介紹先進(jìn)行到這里,我們下回繼續(xù)。

---------------------------------------------------



       遙控坦克DIY過(guò)程解密(12)
       >>>>>>>>>>2013-01-31<<<<<<<<<<
       今天進(jìn)行遙控坦克最后的整體裝配,前面已經(jīng)介紹了炮塔的組裝以及坦克底盤的組裝。圖12-01是炮塔,圖12-02是坦克底盤。




       最后的裝配主要就是將炮塔和底盤進(jìn)行連接,過(guò)程比較簡(jiǎn)單,只需要一個(gè)零件我們稱為“炮塔限位板”,形如圖12-03:

       這個(gè)小零件有兩個(gè)作用,仔細(xì)看零件中間的孔正好可以卡在電機(jī)輸出軸上,從而帶動(dòng)炮塔的旋轉(zhuǎn),它的另一個(gè)作用就如它的名字了,進(jìn)行旋轉(zhuǎn)過(guò)程中的限位控制,我們不會(huì)讓炮塔進(jìn)行360度旋轉(zhuǎn),所以對(duì)其進(jìn)行限位,限位是如何實(shí)現(xiàn)的呢,我們看圖12-04:

       可以看到坦克底盤的上面板有兩顆螺絲(紅圈處),這兩顆螺絲會(huì)限制住炮塔的旋轉(zhuǎn)角度。
       最后我們看看炮塔、限位板以及底盤是如何進(jìn)行連接的,圖12-05、圖12-06:



       穿過(guò)炮塔和限位板,使用一顆螺絲直接將炮塔固定在電機(jī)輸出軸就完成了炮塔與底盤的連接,最后再看看組裝完的坦克效果圖12-07:

       大功告成,坦克拼裝任務(wù)基本結(jié)束了,不過(guò)現(xiàn)在的坦克還不能動(dòng)彈,因?yàn)檫沒(méi)有為它安裝控制電路,欲知詳情咱們下回分解……

       經(jīng)過(guò)前面12次“解密”,相信大家對(duì)遙控坦克的原理以及基本結(jié)構(gòu)有了一定認(rèn)識(shí),如果要讓我們的坦克跑起來(lái)還要經(jīng)歷一個(gè)調(diào)試階段,其實(shí)調(diào)試的主要目的就讓坦克根據(jù)我們的操作產(chǎn)生正確的行為。比如我們按前坦克就向前走,我們按做坦克就向左轉(zhuǎn)等等。
       首先我們要將坦克的3個(gè)電機(jī)與控制板進(jìn)行連接,如圖13-01:

       大家可以看到控制板上有6根(3組)插針,中間一組控制炮塔,兩邊2組控制坦克履帶,首先我們把炮塔電機(jī)插到中間的一組插針上,然后把履帶電機(jī)插到兩側(cè)的插針上如圖13-02:

       電機(jī)與控制連接后我們開(kāi)始調(diào)試工作,調(diào)試主要就是觀察電機(jī)的旋轉(zhuǎn)方向是否正確,以上面的圖為例,我們描述調(diào)試過(guò)程:
       1. 按動(dòng)遙控器上的“上鍵”,如果兩條履帶向下滾動(dòng),我們進(jìn)入步驟3,否則進(jìn)入步驟2;
       2. 將旋轉(zhuǎn)方向錯(cuò)誤的電機(jī)的插針交換位置(組內(nèi)交換),使其旋轉(zhuǎn)方向正確,進(jìn)入步驟3;
       3. 按動(dòng)遙控器上的“左鍵”,如果左側(cè)履帶向下滾動(dòng),右側(cè)履帶向上滾動(dòng),調(diào)試結(jié)束,否則將左右兩個(gè)電機(jī)接入插針的位置進(jìn)行交換(組間交換),然后回到步驟1;
       上面的過(guò)程看起來(lái)可能有點(diǎn)不清晰,我們還是畫(huà)張圖,來(lái)清晰說(shuō)明組內(nèi)交換和組間交換的概念,如圖13-03:

       直到第三步的條件得到滿足,坦克的調(diào)試工作結(jié)束,對(duì)于炮塔動(dòng)作的調(diào)試比較簡(jiǎn)單,只涉及到組內(nèi)交換只要方向反了把插針交換一下就可以了,這里不進(jìn)行介紹了。坦克調(diào)試結(jié)束后我們就可以遙控他自由馳騁嘍。
       最后我們展示一下手柄圖片,目前手柄按鍵是針對(duì)遙控坦克進(jìn)行開(kāi)發(fā)的,上面有7個(gè)按鍵,我們暫時(shí)使用其中的6個(gè),如圖13-04:

       關(guān)于手柄的更多實(shí)現(xiàn)細(xì)節(jié)我們會(huì)單獨(dú)做一次講解,今天就到這里嘍。
--------------------------------


遙控坦克DIY過(guò)程解密(14)
       今天給大家介紹一下遙控坦克的無(wú)線手柄,實(shí)際上這個(gè)手柄不僅僅可以使用在坦克上,他可以應(yīng)用在任何需要無(wú)線遙控的場(chǎng)合,比如小車、機(jī)器人等。當(dāng)然這個(gè)手柄也是可編程的,我們可以根據(jù)自己的需要對(duì)其進(jìn)行編程改變每個(gè)按鍵的功能。我們還是通過(guò)圖片形式與大家分享這個(gè)手柄的DIY過(guò)程,圖14-01是手柄的整體外觀。

       手柄的結(jié)構(gòu)就簡(jiǎn)單多了,組裝一個(gè)這樣的手柄大概也就2-3分鐘的時(shí)間,它主要包含上下兩層面板中間是它主控電路,我們進(jìn)去看看他的結(jié)構(gòu),圖14-02:

       我們使用一節(jié)9V電池為其供電。對(duì)于內(nèi)部的電路來(lái)說(shuō)我們使用上下雙層結(jié)構(gòu),其中一層主要用來(lái)放置按鍵、指示燈、以及開(kāi)關(guān)等電路,另外一層就是無(wú)線手柄的核心電路了,我們看圖14-03、14-04:


       核心板是基于51單片機(jī)的我們也預(yù)留了編程接口,這樣方便我們對(duì)手柄功能進(jìn)行DIY。我們將兩塊層板對(duì)接后效果如圖14-05:

       怎么樣結(jié)構(gòu)還算簡(jiǎn)單吧,只要上下對(duì)插,然后通過(guò)四根螺釘與面板固定就大功告成嘍。最后我們看下手柄與坦克主控板的合影如圖14-06:

       有了他們我們就可以輕松DIY自己的坦克嘍,好了今天先到這里,我們下回繼續(xù)……

-------------------------------------------------

遙控坦克DIY過(guò)程解密(15)-為手柄編寫(xiě)程序
       前面我們已經(jīng)介紹過(guò)子時(shí)DIY的無(wú)線遙控手柄是可編程的,同時(shí)在第7次解密中也介紹過(guò)為手柄編寫(xiě)程序的原理。那么這次“解密”就來(lái)具體看看如何為手柄編寫(xiě)C程序。
       看過(guò)前面解密的朋友可能更加了解我們無(wú)線遙控手柄的硬件結(jié)構(gòu),我們主要使用51單片機(jī)和NRF24L01模塊來(lái)實(shí)現(xiàn)這個(gè)遙控手柄。既然是編寫(xiě)C程序我們需要選擇一個(gè)開(kāi)發(fā)環(huán)境,這里我們選擇常見(jiàn)的KEIL作為我們的集成開(kāi)發(fā)環(huán)境,如圖15-01:

       關(guān)于這個(gè)開(kāi)發(fā)環(huán)境的使用方法在這里就不進(jìn)行介紹了,如果您對(duì)這個(gè)工具的使用不太熟悉可以通過(guò)網(wǎng)絡(luò)搜索這個(gè)工具的使用方法或直接聯(lián)系“子時(shí)”,我們很高興與您探討在編寫(xiě)程序過(guò)程中遇到的問(wèn)題。
       編寫(xiě)手柄程序關(guān)鍵的兩個(gè)工作就是處理按鍵的變化和發(fā)送用戶命令,我們先來(lái)看看如何通過(guò)程序來(lái)處理按鍵變化,我們這里實(shí)現(xiàn)一個(gè)按鍵掃描函數(shù)KeyScan,下面就看看KeyScan的源程序,如圖15-02:

       KeyScan函數(shù)的工作流程,如圖15-03:

       函數(shù)中使用變量KeyState來(lái)記錄當(dāng)前的按鍵狀態(tài),為了判斷按鍵的狀態(tài)變化我們還需要設(shè)置一個(gè)變量來(lái)記錄按鍵的原始狀態(tài)所以定義了局部靜態(tài)變量KeyStateOld,每次進(jìn)行按鍵掃描時(shí)都會(huì)去判斷按鍵狀態(tài)是否有變化,如果按鍵狀態(tài)有變化說(shuō)明用戶在操作手柄那么就根據(jù)新的按鍵狀態(tài)來(lái)發(fā)送對(duì)應(yīng)的命令。我們可以將KeyScan函數(shù)放在主程序中不斷進(jìn)行調(diào)用,來(lái)實(shí)時(shí)監(jiān)控用戶的操作。
       處理完用戶的操作后需要將用戶的操作以命令方式發(fā)送出去,命令的發(fā)送比較簡(jiǎn)單我們利用NRF24L01_LIB.LIB庫(kù)來(lái)實(shí)現(xiàn),我們主要使用三個(gè)函數(shù)就可以完成命令的發(fā)送工作,三個(gè)函數(shù)分別是WirelessDevInit、WirelessSetDataBuf、WirelessTransData,下面看一段例子程序,圖15-04:

       上面是一段例子程序我們只需要在系統(tǒng)初始階段調(diào)用函數(shù)WirelessDevInit、WirelessSetDataBuf對(duì)無(wú)線設(shè)備進(jìn)行初始化操作,當(dāng)需要發(fā)送數(shù)據(jù)時(shí)候調(diào)用函數(shù)WirelessTransData便可以完成無(wú)線數(shù)據(jù)發(fā)送?梢越Y(jié)合上面的按鍵掃描程序?qū)Υa進(jìn)行修改,修改后的代碼形式如圖15-05:

       這里介紹的僅是其中的一種為無(wú)線手柄編寫(xiě)程序的方法,當(dāng)然大家可以根據(jù)自己的設(shè)計(jì)編寫(xiě)自己的程序來(lái)實(shí)現(xiàn)不同的手柄行為,比如擴(kuò)展更多的命令,支持更多的組合鍵等等,這里僅僅列舉了一些代碼片段。
       代碼中涉及到一些C語(yǔ)言的知識(shí)以及程序設(shè)計(jì)技巧,如果大家閱讀過(guò)程中遇到任何程序設(shè)計(jì)方面的問(wèn)題可以隨時(shí)提出,我們共同討論。程序?qū)懞煤笪覀冞要將程序燒錄到單片機(jī)中,這個(gè)是下一次解密的話題,今天就到這里……

      本次解密是針對(duì)遙控坦克作品的最后一次解密,感謝壇友們一直以來(lái)對(duì)【DIY遙控坦克】的支持,希望以后能有更有意思的作品與大家分享。

       上次給大家介紹了如何為無(wú)線遙控手柄編寫(xiě)程序,今天為大家介紹如何將寫(xiě)好的程序放到單片機(jī)中,做過(guò)單片機(jī)開(kāi)發(fā)的朋友一定都清楚,我們一般是在PC上編輯、編譯源程序,但是程序是運(yùn)行在目標(biāo)設(shè)備上的,通常我們稱這個(gè)過(guò)程為“交叉編譯”,簡(jiǎn)單來(lái)說(shuō)就是在X86架構(gòu)下編譯出可以在51(或其他)單片機(jī)上執(zhí)行的程序。
       一般來(lái)講我們編譯出的可執(zhí)行程序是一個(gè)二進(jìn)制文件,對(duì)于Keil編譯環(huán)境來(lái)說(shuō)他會(huì)生成一個(gè)以.hex為后綴的文件。我們的目的就是把這個(gè)*.hex文件下載(燒錄、寫(xiě)入)到我們的單片機(jī)中,下面看看如何來(lái)操作。
       我們已經(jīng)在遙控手柄的電路板上預(yù)留了編程接口,如圖16-01:

       我們使用串口方式對(duì)程序進(jìn)行下載,所以還需要一根USB轉(zhuǎn)串口的數(shù)據(jù)線,這種數(shù)據(jù)線比較多,比如圖16-02:

       圖16-02是一個(gè)USB轉(zhuǎn)串口的模塊,使用它前需要安裝相關(guān)驅(qū)動(dòng)程序。通過(guò)這個(gè)模塊我們可以對(duì)單片機(jī)進(jìn)行編程,線路的連接比較簡(jiǎn)單USB一端插在我們的PC機(jī)上,另外的3根線對(duì)應(yīng)的是GND、TX、RX(地、發(fā)、收),分別與我們的手柄電路板上的編程接口相連,對(duì)應(yīng)關(guān)系是GND-GND、RX-TX、TX-RX。電路連接完畢后開(kāi)始下載程序,由于我們使用的是STC系列的51單片機(jī)所以我們使用STC-ISP.exe這個(gè)工具對(duì)單片機(jī)進(jìn)行編程,看一下這個(gè)工具的截圖,圖16-03:

       操作過(guò)程大概分為5步:
       1. 選擇芯片類型,我們使用STC89C52RC;
       2. 選擇編譯產(chǎn)生的*.hex,文件;
       3. 選擇串口(可以在設(shè)備管理器中查看串口編號(hào));
       4. 點(diǎn)擊下載按鈕;
       5. 當(dāng)提示框提示為單片機(jī)上電時(shí),打開(kāi)系統(tǒng)電源;
       下載結(jié)束后系統(tǒng)會(huì)給出提示信息。
       經(jīng)過(guò)上面的操作后我們的程序已經(jīng)下載到單片機(jī)中,為系統(tǒng)上電后我們的程序就可以運(yùn)行了,趕快驗(yàn)證一下自己編寫(xiě)的程序吧。
       實(shí)際上為單片機(jī)下載程序的方法都是近似的,包括為坦克下載程序的方法和手柄一端是相同的,唯一不同的是它們所運(yùn)行的程序是不一樣的。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂2 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:111597 發(fā)表于 2016-4-16 17:28 | 只看該作者
這么牛的帖子,居然沒(méi)看到回帖?我居然坐沙發(fā)了
回復(fù)

使用道具 舉報(bào)

板凳
ID:117812 發(fā)表于 2016-5-1 18:39 | 只看該作者
不錯(cuò)的制作!請(qǐng)問(wèn)L9110的最大驅(qū)動(dòng)電流為多少?電機(jī)堵轉(zhuǎn)時(shí)電流升到2A以上不會(huì)燒吧!
回復(fù)

使用道具 舉報(bào)

地板
ID:19947 發(fā)表于 2016-5-5 13:59 | 只看該作者
贊!好好學(xué)習(xí)了一把,謝謝lz!
回復(fù)

使用道具 舉報(bào)

5#
ID:378644 發(fā)表于 2018-7-24 19:09 | 只看該作者
牛B的帖子,很好的論壇
回復(fù)

使用道具 舉報(bào)

6#
ID:1036495 發(fā)表于 2022-6-22 21:35 來(lái)自觸屏版 | 只看該作者
博主你還在嘛我想問(wèn)問(wèn)你其他問(wèn)題
回復(fù)

使用道具 舉報(bào)

7#
ID:1039257 發(fā)表于 2022-7-12 15:07 | 只看該作者
學(xué)習(xí)一下,不錯(cuò)不錯(cuò)!
回復(fù)

使用道具 舉報(bào)

8#
ID:74784 發(fā)表于 2022-7-15 19:17 | 只看該作者
最關(guān)鍵的手機(jī)APP文件怎么不發(fā)上來(lái)分享大家??
回復(fù)

使用道具 舉報(bào)

9#
ID:1013588 發(fā)表于 2022-9-5 07:51 | 只看該作者
我的電腦看不到視頻,瀏覽器該升級(jí)了。樓主開(kāi)源嗎?這么好的東西,很多人都想自己擁有一個(gè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表