Category Archives: Robot shield

[ 介紹文 ] 2018.11.28- 進擊的Tank-Go!! V5.3 紅外線對戰坦克

撰文

Niko Yang

圖片

Niko Yang

說明

感謝網友Niko Yang撰稿,特此致謝!

 

玩坦克大戰是許多朋友年輕時期經歷過的美好回憶,無論是從任天堂紅白機或後續的電視遊樂器,坦克大戰皆是熱門的題材之一,也是與朋友或家人共享歡樂的好遊戲。在電視遊樂器之外,至各電商賣場搜尋「對戰坦克」,也有許多遙控坦克販賣,可見坦克類遊戲受歡迎的程度。

 

緣由

欣逢南科AI_ROBOT自造基地交流平台,於6月份在台南舉辦「自造機器人的一百種樣貌」研討會,由KEVIN WANG 對整個MINI-PLAN的進化與發展歷史進行分享。筆者也從研討會認識當前機器人的種類,以及對聯發科技的LinkIt 7697開發板有了第一次接觸。在那麼多的機器人中,最吸引筆者的莫過於TANK GO系列了。

圖1

 

令人驚喜的寶物

目前各種相容於Arduino 的開發板如雨後春筍般出現,有點讓人難以選擇,各家開發板各有千秋。研究各類開發板後,筆者選擇了LinkIt 76XX系列,除了它支援BLE藍芽外,也支援Wi-Fi控制,再加上由MINI-PLAN演進的ROBOT-SHIELD V2 擴充板於2017年10月開始販售,使LinkIt 7697如虎添翼,整體元件結合支援10組PWM及兩組DC馬達同時控制,也支援I2C介面擴充,並由兩顆 270F 2.7V 260mah電容器(Lithium Capacitor)提供電力,不需擔心電源過充或過放電力的問題。也因為是電容器,官方規格的深度循環可達3000次,相對於手機鋰電池的500次循環,連續使用多達六倍以上的時間,也不需擔心起火或爆炸問題。運用在坦克製作上,自然被筆者列為優先考慮的組合。

 

參考文章:

CAVEDU [LinkIt 7697] 認識LinkIt 7697,你會需要這一篇!

圖2

 

資源分享

得到第一把鑰匙後,從網站https://www.thingiverse.com/,看到SMARTS 系列的3D列印件有很大發展空間,同時在YouTube上看見由Chiou ShinWei(George)大神,分享3D列印件和完整的安裝流程,以及零件表和程式碼的分享,皆讓筆者在坦克製作上節省相當多時間。從3D列印領域至控制板,乃至於學生時代學習的知識都要一併用上。在聯發科技網頁上,有很詳細的介紹,以及工程師的技術問題回覆和支援。

 

ShinWei Chiou(George)

V4 版程式和3D模型檔案和零件清單

https://github.com/GeorgeChiou/Robot-Shield-V2.0

 

安裝說明和零件清單

https://youtu.be/rpaQaJ1GmJE

圖3

 

魔鬼藏在細節裡

筆者原以為萬事俱備,結果發現有些事情仍是要嘗試過才能瞭解箇中奧妙。第一個問題是戰車鋁帶元件使用PLA當承軸,但PLA遇到濕氣經過一至二星期後,有30%的PLA承軸斷裂,想拿金屬螺絲取代卻又太重。所以,最後筆者使用木質牙籤,並點上微量的瞬間接著劑在鋁帶元件內側稍做固定。或是由Mike Tsai 網友所建議,用PEG的3D線材取代也可以。

 

在砲台旋轉上,原本使用24AWG線材,但其表皮太硬,導致戰車砲塔旋轉會因線材而上下晃動,馬上更換舵機專用線給紅外線IRDA和紅外線接收IRM-3638N3連接線使用,解決了問題。

 

不用熱熔膠而使用UHU透明膠連接,避免3D列印零件因高溫而變形,以及日後需修改的拆裝;在N20馬達的齒輪本體也塗上田宮齒輪油,塗上後N20馬達瞬間耗電流下降許多,齒輪轉動聲音也慢慢變小。自造的迷人之處,就在於不斷有新挑戰出現,卻總能一一克服。

圖4

 

性能再強化

在筆者與家人玩TANK-GO一段時間後,收集了大家的建議進行一次修改及強化性能,於是便著手發展V5.3版的程式碼。首先在手機操控介面上,針對按鈕位置重新編列,以及針對功能進行調整,不僅操作便利更適合長時間使用。可惜聯發科技的 LRCONTROL 目前暫時只支援六種顏色(RC_ORANGE, RC_BLUE, RC_GREEN, RC_PINK, RC_GREY, RC_YELLOW)。

https://docs.labs.mediatek.com/resource/linkit7697-arduino/en/developer-guide/using-linkit-remote/lremote-control-classes

 

同時戰車砲塔旋轉角度的左右方向,也進行一致性調整;在MPFPLAYER 聲音按鍵上,也更改為每階2格度調整,並限制最大至28 (MAX:30),避免小的喇叭單體破音,以及夜間播放音樂聲量的細部調整。

 

朋友建議加上兩顆燈光(LED)做為彈藥用盡或生命值歸零的提醒,也避免因緊張一直按鈕卻無動作對應。經筆者考慮,除了LED作為狀態顯示外,也加入兩段系統語音,例如:補彈藥和修理進行提示。其他細節可參考GITHUB上的README完整說明。

 

Niko Yang V5.3 版修改軟體和電子零件焊接圖片

https://github.com/yangniko137/Tank-Go-V5?fbclid=IwAR0NseA_2R2cRFvZRvyqWwNXehPig6qMT5wTly-tnJPS84LIOpKXyL0n61k

圖5

 

未來發展

科技發展鮮少有停頓的時刻,在筆者看過「少女與戰車(GIRLS und PANZER)」影片後,發覺還有許多功能值得更新,例如生命值歸0後,升起投降用的白色旗子⋯⋯等等。

 

兩顆超大電容提供激烈對戰達40分鐘左右,但把戰車當成MP3播放器聽CD書,這時便需要插5V市電供應,也考慮以14650或18650電池和保護板供電,省去電線纏繞的困擾。

 

對戰時的遮蔽建築物連同戰車收納的盒子,也可考慮製做成組合式,並且各戰車語音可以男女分開⋯⋯等等。這些都是很好的建議,以及下一步更新的方向。

圖6

 

結論

舉一反三,除了坦克外也順便發展FPV加上攝像頭及圖傳,加上接收和螢幕就可在家中探險。自造除了腦力激盪外,也藉由製作過程認識新的學問及志同道合的朋友。因此,謹藉由本篇文章,感謝無私分享的Maker們。

圖7

 

備註:如果您想要購買 LinkIt 7697Robot Shield,歡迎洽詢機器人王國商城,謝謝。

 

相關文章

[教學文] What!智能寶比可遙控!!沒錯,用超級搭檔LinkIt 7697 + Robot Shield達到(文末有彩蛋喔)

作者/攝影

文:Mason Chen (Mason亦為遙控智能寶比的作者,特此致謝!)

圖:Mason Chenfreepik (主題圖片背景)

文字潤飾:CAVEDU 宗諭

文章分類教學技術文
時間

成本

難度

材料表
  • LinkIt 7697*1

  • Robot Shield*1

  • 寶工智能寶比*1

  • 用來遙控的手機 *1

近來,不少Maker皆喜愛把現成的套件、模組加以改裝,置入開發板,例如LinkIt 7697、Arduino系列⋯⋯等等,使改裝後的套件、模組有更、更聰明的應用。比如之前我門曾專文介紹過的Wall-E機器人,便是一個很好的例子。

 

接著這股趨勢,本文所要介紹的,是由Mason Chen大大所改裝,可用手機的低功耗藍牙遙控的AI智能寶比。

 

寶工(Pro’s Kit)出品的「AI智能寶比」是一款智慧型機器人,能與8歲以上的小朋友一起互動、遊玩。它配有紅外線感應器,因此具備避障的功能,經過Mason的改裝後,把原先的紅外線感應玩法,改換成以手機的低功耗藍牙( BLE )進行遙控。

圖1 卡哇伊的智能寶比

 

小知識:什麼是低功耗藍牙(Bluetooth Low Energy,簡稱BLE)?

低功耗藍牙是一種個人區域網路技術,多應用於醫療保健、運動健身、家庭娛樂⋯⋯等領域。顧名思義,低功耗藍牙跟經典藍牙相比,目的在於保持同等通訊範圍的同時,顯著降低功耗及成本。根據藍牙技術聯盟(SIG)預測,至2018年,高於90%有藍牙的智慧型手機將支援低功耗藍牙。

 

接下來,我們就要進到硬體改裝部分:

 

Step1:把寶比的頭部拆下來,並且以斜口鉗或適當工具,把原先的電池檔板破壞掉。這部分會需要花點時間,且要小心處理,只破壞裏面,外殼要保留好。 處理完後可試擺LinkIt 7697與MiniPlan出品的Robot Shield,看看是否可以完全置入。

圖2

 

圖3

 

圖4

 

Step2:把原先的馬達插頭,按照圖5中所標示的,連接至 Robot Shield 中。

圖5

 

Step3:再把寶比的頭部小心地裝回去。這樣,硬體部分就完成了。

 

再來,是軟體開發部分:

Step1:我們使用 LinkIt 7697 arduino 進行開發。

  • 設定好Arduino IDE的環境,並燒錄已經寫好的程式至LinkIt 7697 中。
圖6

 

Step2:手機端請下載LinkIt Remote APP

  • 請打開手機藍芽,以及Robot Shield的電源。
  • 開啟 LinkIt Remote APP,順利的話,便可以找到已改裝好的寶比。
圖7

 

  • 按住Joystick移動,便可遙控寶比了。
圖8

 

文末彩蛋:透過Scratch 3.0遙控智能寶比

還記得之前的一篇文章,教大家運用Scratch 3.0連接micro:bit嗎?在Masen Chen大大的努力下,現在Scratch 3.0也可連接LinkIt 7697,進而控制智能寶比囉!其基本原理仍是運用Scratch Link連接Scratch 3.0與LinkIt 7697,然而,因Scratch 3.0並不支援LinkIt 7697,所以在運用Scratch Link之外,LinkIt 7697的韌體及Scratch 3.0上的指令積木皆必須重寫。至於如何撰寫、操作,就請各位讀者多跟Mason Chen大大交流了。

 

備註:若想購買相關開發板,請點這裡,謝謝。

 

相關文章

[介紹文]想認識馬達驅動板Robot Shield?先看這一篇——Wall-E輪型機器人

作者/攝影

Wall-E機器人作者:MiniPlan

文字整理:CAVEDU 宗諭 (感謝作者授權,特此致謝。)

圖片:MiniPlan

文章分類介紹文
時間

成本
難度

Robot Shield是一塊「馬達驅動板」,是由開發MiniPlan與TinyPlan的承田科技所設計開發。當它搭配聯發科技的LinkIt 7697開發板後,使用者不需操心線路如何對接,以及電池⋯⋯等問題,成為一套完備、可直接運用的控制單元,讓使用者輕鬆製作各類應用。

 

Robot Shield的設計延伸自TinyPlan V400的設計,尺寸和螺絲孔位置皆與TinyPlan一樣,所以,硬體部份可直接套用至TinyPlan相關應用的作品上。

圖1 Robot Shield馬達控制板

 

說起應用,其實LinkIt 7697搭配Robot Shield的應用範圍相當廣,例如,動力車、輪型機器人,或是之前曾專文介紹的Codibot蜜蜂機器人,以及機械手臂⋯⋯等等。

圖2 Codibot

 

因此,我們將透過幾篇文章,向讀者介紹LinkIt 7697搭配Robot Shield的一些應用,幫助大家更了解Robot Shield,甚至能開發出屬於自己的應用。那就讓我們開始吧!本文的主角是MiniPlan的Wall-E輪型機器人。

 

首先,請大家先看一下MiniPlan完整的介紹影片:

 

開發理念

Wall-E機器人改裝自TAMIYA Cam-Program Robot,因TAMIYA出品的這款機器人在中間處留有空間,可讓機器人愛好者放置電路板展開二次創作。

圖3 有著一雙大眼睛的Wall-E機器人

 

元件介紹

在此需注意的是:

  1. MiniPlan預備了三顆SG90 Servo,原本SG90 Servo的電線標準長度大約是26cm,但作者先把它們剪短至13cm。
  2. 作為Wall-E機器人雙眼的是HC-SR04P超音波感測器。超音波感測器原本採用杜邦端子頭,但MiniPlan為節省空間,先將電線焊上感測器,並在電線尾端保留杜邦端子。
  3. 控制板部分就是使用LinkIt 7697搭配Robot Shield。
圖4 Wall-E機器人的各式元件

 

元件組裝

Wall-E機器人的身體、兩隻手臂及頭部,都是透過3D列印而成。以下簡單介紹組裝重點:

  1. 底盤:基本上,按照TAMIYA Cam-Program Robot的說明書組裝即可。
  2. 身體:下方會擺放三顆SG90 Servo,分別驅動頭部及兩個肩膀。需注意的是,SG90的方向必須擺放正確,否則電線會被卡住。
  3. 頭部:將頭部組裝好後,可能會發現HC-SR04P超音波感測器會些許晃動。對此,MiniPlan建議可透過上膠將其固定,但這個方式並非必要。
  4. 手臂:手部的螺絲不需鎖太緊,免得支架斷裂。手臂部分的螺絲亦同,讓手臂有伸縮的空間。
  5. 控制板:在控制板組裝上底盤後,可先運用手機上的LinkIt Remote app,測試看看Wall-E機器人是否如我們所預計地活動。
  6. 肩膀:安裝時,記得取45度角的位置。在兩個肩膀安裝完成後,記得透過LinkIt Remote再次進行機電測試,Wall-E機器人各部件運作是否良好。

 

以下是Wall-E機器人頭頸部、身體、肩膀手臂的設計圖:

圖5 頭頸部設計圖

 

圖6 身體設計圖

 

圖7 肩膀手臂設計圖

 

完成組裝後,最後就是用手機上的LinkIt Remote進行測試,可測試部分包括:前進、後退、左轉、右轉、頭部轉動、肩膀手臂轉動及超音波感測器效能。以下是MiniPlan所設計LinkIt Remote的程式檔:https://github.com/GeorgeChiou/Robot-Shield-V1.0/tree/master/Linkit7697_RobotShieldV1_WallE_V100,讀者可以自行下載。

 

但若讀者希望Wall-E機器人產生出更多動作,可自行撰寫更多動作的程式碼。

圖8

 

結語

本文主旨在於介紹Wall-E機器人,若讀者想進一步了解,如何完整組裝並操控Wall-E機器人,請上網:https://www.thingiverse.com/thing:2605324,或至Miniplan-Robotfun臉書粉絲專頁詢問,謝謝。

 

CAVEDU教育團隊將會繼續介紹更多Robot Shield的應用,請讀者持續關注,謝謝。若欲購相關開發板,請點這裡

 

相關文章

[ 教學文 ]你好,我會走路、唱歌跳舞跟偵測障礙物喔!——一起動手做超級卡哇伊的機器人OTTO97(下)

作者/攝影

文圖轉載自MediaTek Lab官方網站 ,感謝聯發科技創意實驗室授權,特此致謝。而OTTO97(OTTO for LinkIt 7697)為衍生自 OTTO DIYOffical Site / Github / Thingiverse)的專案。

文章分類教學技術文
時間

成本
難度
材料表
  • Robot Shield V1*1

  • LinkIt 7697*1

  • MicroUSB x2

  • Tower Pro SG90 伺服馬達(Micro Servo 9gx4(附轉軸支架以及二長一短的螺絲)

  • HC-SR04P超音波感應器,工作電壓範圍3V~5.5Vx1

  • MAX7219 8×8 矩陣式 LED顯示模組 x1(選配)

  • 被動式(有源)蜂鳴器 x1,工作電壓範圍3V~5V(選配)

  • 3D 列印出機器人各部位零件(頭、身體、腿 x2、腳底板 x2

  接續上一篇:[教學文]你好,我會走路、唱歌跳舞跟偵測障礙物喔!——一起動手做超級卡哇伊的機器人OTTO97(上) ,讓我們繼續製作OTTO97機器人,一起來看接下來的步驟。

 

Step8:組裝左腿(連接擴充板 P15

(1)打開 SG90 伺服馬達套件,會看見一顆伺服馬達、三支轉軸支架(旋臂),以及二長一短的螺絲。在此專案中,僅會用到最短的轉軸支架。

圖8-1

 

(2)用兩隻長螺絲將伺服馬達鎖至OTTO身體的左腳位置。

圖8-2

 

(3)將伺服馬達接線至擴充板的P15,並將手機上的LinkIt Remote APP連結至LinkIt 7697。開啟校正測試UI後,點選Stiff按鈕使伺服馬達回到初始位置,亦即OTTO直立的狀態。

圖8-3

 

(4)OTTO兩隻的零件是相同的(但腳底板左右有分),因此可任意選擇進行組裝。

圖8-4

 

(5)將轉軸支架切短以放入左腿的卡榫溝槽(如圖8-5),並確認與伺服馬達的連接面需平整 (如圖8-6)。不平整的馬達接觸面將導致OTTO無法直線行走。

圖8-5

 

圖8-6

 

(6)以面朝正面的方向(如圖8-7),將左腿連接至OTTO的身體。由於齒輪齒紋的關係,腿部不見得能精準對準身體正面,這可於之後的步驟透過校正測試 APP做修正。

圖8-7

 

(7)用短螺絲將腿上的轉軸支架與身體上的伺服馬達鎖緊,若沒有確實鎖緊會導致OTTO無法順利直線行走。

圖8-8

 

Step9:組裝右腿 P16

(1)採用與組裝左腿相同的步驟完成右腿組裝,並將伺服馬達連接至擴充板的P16 接腳

(2)開啟LinkIt Remote的校正介面進行腿部位置調整,使雙腿的初始方向平行於身體的面向 (如圖9-1)。校正完成後,務必按下Save按鈕儲存相關設定值供之後使用。

圖9-1

 

 

圖9-2

 

Step10:組裝左腳底板(P5LF

(1)將伺服馬達的電線穿過左腿及身體的開孔後連接至Robot ShieldP5

圖10-1

 

(2)選擇校正介面中的Stiff ,將伺服馬達轉軸置於初始位置。

圖10-2

 

(3)切割馬達轉軸支架(懸臂),使它能放進左腳底板零件的卡榫溝槽。

圖10-3

 

(4)用短螺絲將伺服馬達鎖緊固定於腳底板上。

圖10-4

 

(5)整理並反折馬達的線,好將馬達放入左腿的機構中。

圖10-5

 

圖10-6

 

(6)用長螺絲鎖緊固定馬達和左腿(注意正反面,下圖為OTTO的背面)。

圖10-7

 

Step11:組裝右腳底板(P11: RF)

(1)依照與組裝左腳底板相同的步驟,完成右腳底板的組裝,並連接伺服馬達至擴充板的P11

(2)使用校正APP調整腳底板的角度,使它們能平穩站在地面上(如圖11)。

(3)矯正完畢後,務必點選Save儲存相關設定值。

圖11

 

Step12:將Robot Shield裝進OTTO身體內

(1)為留下安裝LED模組的空間,將Robot Shield放進OTTO身體時,盡量將腿部相關走線整理至後方(如圖12-1中,綠色箭頭所指方向)。

圖12-1

 

(2)調整Robot Shield位置,使開發板相關接口能對齊OTTO身上預先開好的孔位。

圖12-2

 

(3)使用Robot Shield附贈的螺絲,將板子固定在OTTO身體機構中。

圖12-3

 

Step13:安裝超音波感應器、蜂鳴器及8×8矩陣式LED

(1)接下來的組裝步驟,會依照圖13-1的接線方法,分別將之前測試過的超音波感應器、蜂鳴器及8×8矩陣式LED,連接回Robot Shield。

圖13-1

 

(2)將蜂鳴器面朝下安裝至OTTO身體中預留的蜂鳴器位置,並將接線接回Robot Shield

圖13-2

 

(3)將超音波感應器模組安裝至OTTO的頭部內(可用銼刀修整眼睛開口邊緣,以方便安裝),並將接線接回至Robot Shield(注意Trig/Echo接線的位置)。

圖13-3

 

(4)將8×8矩陣式LED模組接線回Robot Shield,並以膠帶或其它絕緣物包覆LED模組背面,以避免接觸Robot Shield造成短路。

圖13-4

 

(5)放置LED模組於OTTO身體正面位置(如圖13-5箭頭所指)。

圖13-5

 

(6)最後將頭部身體組合起來,就完成了OTTO的組裝。

圖13-6

 

Step14:執行Demo App

(1)在Arduino IDE中開啟OTTO_Demo.ino範例,並上傳至LinkIt 7697執行。

(2)開啟LinkIt Remote APP並連接至OTTO,從LinkIt 7697載入UI後,會看見如圖14-1的控制介面:

圖14-1

 

  接下來就可開始嘗試OTTO各式各樣的動作了!

  閱讀完了全文,讀者們是否很想趕快動手組裝一台OTTO97機器人呢?若讀者們想購買LinkIt7697 + Robot shield等相關開發板,歡迎前往機器人王國挑選,謝謝。

 

相關文章

[教學文]你好,我會走路、唱歌跳舞跟偵測障礙物喔!——一起動手做超級卡哇伊的機器人OTTO97(上)

  OTTO97OTTO for LinkIt 7697是一個衍生自OTTODIY的機器人專案,利用 LinkIt 7697 及Robot Shield製作出有趣又古錐的雙足機器人。OTTO具備什麼能力呢?它能夠行走、跳舞、唱歌及偵測障礙物的能力,還能顯示嘴部的表情動畫呢!

作者/攝影

文圖轉載自MediaTek Lab官方網站 ,感謝聯發科技創意實驗室授權,特此致謝。而OTTO97(OTTO for LinkIt 7697)為衍生自 OTTO DIYOffical Site / Github / Thingiverse)的專案。

文章分類教學技術文
時間

成本
難度
材料表
  • Robot Shield V1*1

  • LinkIt 7697*1

  • MicroUSB x2

  • Tower Pro SG90 伺服馬達(Micro Servo 9gx4(附轉軸支架以及二長一短的螺絲)

  • HC-SR04P超音波感應器,工作電壓範圍3V~5.5Vx1

  • MAX7219 8×8 矩陣式 LED顯示模組 x1(選配)

  • 被動式(有源)蜂鳴器 x1,工作電壓範圍3V~5V(選配)

  • 3D 列印出機器人各部位零件(頭、身體、腿 x2、腳底板 x2

組裝前需具備的技能

  • 能使用Arduino IDE 進行 LinkIt 7697基本操作。

  • 了解如何使用LinkIt Remote應用程式連結LinkIt 7697。

  • 基本電路接線概念。

  • 基本焊接能力(若想替OTTO97加上嘴部動畫顯示)。

 

材料準備注意事項:

  準備材料表中的各項元件時,請確認使用的是寬工作電壓版本,以免進行後續步驟時,產生無法運作的狀況。

 

小提醒:

  • 超音波感測器的型號需為HC-SR04P(工作電壓範圍3V5.5V),而非只能支援5V電壓的HC-SR04。兩者在外觀上非常相近,需特別注意。
圖1-1

 

圖1-2

 

2. 被動式(有源)蜂鳴器需支援3V5V的工作電壓,請勿選擇僅能使用於5V電壓的版本。

 

需要準備哪些工具?

  • 智慧型手機(iOS/Android 皆可,用來執行伺服馬達校正及主控程式。)
  • 3D 印表機
  • 焊槍(非必要,但若要顯示嘴部動畫,則需要rework矩陣式LED模組以方便安裝。)
  • 快乾膠(非必要,可用來加強組裝強度。)

其他可幫助組裝的工具如下:

圖2

 

相關程式碼:

  可從 https://github.com/bearwbearw/OTTO97 取得 OTTO97 相關程式碼資訊:

目錄名稱說明
librariesOTTO 相關的函式庫
OTTO_Calibration測試與校正 OTTO 的 sketch 程式
OTTO_Demo控制 OTTO 基本動作的 sketch 程式
OTTO_UnitTest_Buzzer測試被動式蜂鳴器的 sketch 程式
OTTO_UnitTest_LEDMatrix測試 LED 顯示矩陣的 sketch 程式
OTTO_UnitTest_Servo測試伺服馬達的 sketch 程式
OTTO_UnitTest_Ultrasonic測試超音波感應器的 sketch 程式
3D_STLOTTO 零件的 3D 列印檔案

 

怎麼組裝OTTO97?

Step1:以3D 列印出 OTTO 本體零件。從 Thingiverse 下載所需3D檔案,此 3D 檔案基於 OTTODIY 專案修改而成,以適於LinkIt 7697 + Robot Shield使用,所有零件包含:頭、身體、腿 x2、左腳底板、右腳底板共六個元件。

圖3

 

Step2:下載並安裝 Arduino 相關函式庫及應用程式。從專案 GitHub 頁面下載相關函式庫和程式,並將其解壓縮至 Sketchbook 所在目錄。

圖4-1

 

圖4-2

 

圖4-3

 

Step3:啟動裝置校正測試程式。首先開啟Arduino IDE,選擇Step2中下載的OTTO_Clibration.ino範例並上傳至LinkIt 7697執行。之後,在手機上安裝並執行LinkIt Remote,開啟後就會看到名為「OTTO CAL」的裝置。最後,點選 「OTTO_CAL」 後,即可透過藍芽連接LinkIt 7697,並開啟裝置校正相關介面。

圖5-1

 

圖5-2

 

圖5-3

 

Step4:連接伺服馬達。(1)將LinkIt 7697接上Robot Shield,並確認安裝方向是否正確(開發板與擴充板的 USB 接頭應在同一側)。(2)透過USB線將LinkIt 7697連接至PC電腦。(3)透過USB線將Robot Shield連接至5V電源(亦可透過PC供電),保持電池充電。(4)如下圖,將四個伺服馬達連接至Robot Shield。(5)開啟Robot Shield的電源(以附圖方向為例,開關撥至左方為開啟)。

圖6-1

 

(6)按下校正程式中的「Walk」按鈕,確認是否四個伺服馬達都會動作。(7)按下「Home或「Stiff」按鈕使伺服馬達轉軸(懸臂)回到初始位置。

圖6-2

 

按鈕說明:

  • Home 按鈕:使伺服馬達轉軸停在初始位置(OTTO處於直立狀態),並鬆開馬達內部與轉軸之間的連結;此時可從外部施力任意轉動馬達轉軸。

  • Stiff 按鈕:使伺服馬達轉軸停在初始位置(OTTO處於直立狀態),且持續輸出PWM訊號保持馬達內部與轉軸間的接合。此時外部若有過大力道轉動轉軸,可能會損壞伺服馬達。

  • 組裝過程中,通常會讓伺服馬達處於「Stiff狀態」。

 

Step5:連接超音波感應器。(1)如下圖,利用尖嘴鉗等工具將感應器模組的排針彎曲 90 度(或將針腳靠在桌上,往旁邊施力即能彎曲整排針腳),避免後續組裝時卡到LED模組。

圖7-1

 

(2)將HC-SR04P連接至Robot ShieldP2P3

圖7-2

 

小提醒:

照上圖連接時,需特別注意超音波模組的正反面方向、以及 Trig / Echo 接腳位置,若連接錯誤可能造成模組發燙,需儘速拔除接線,以免元件損壞。

 

(3)點選 US 開關,將可在 Serial Monitor 看見感應器偵測到的距離。

圖7-3

 

圖7-4

 

小提醒:

  • HC-SR04(5V)和HC-SR04P(3V~5.5V)外觀非常相似,請務必確認購買的元件是HC-SR04P。

  • 由於Robot Shield的VCC電源來自內建的鋰電池,供電電壓範圍為7V至4.5V,因此無法驅動HC-SR04。HC-SR04 在電壓不足的狀況下,從Serial Monitor只會看見 999.00cm的偵測值。

 

Step6:連接被動式蜂鳴器(非必要步驟,但安裝後可讓OTTO具有唱歌的能力)。(1)將被動式蜂鳴器連接至Robot ShieldP4

圖8-1

 

(2)點選 BUZ 開關,將可聽見蜂鳴器發出聲音。

圖8-2

 

Step7:連接 8×8 矩陣式LED顯示模組(MAX7219(非必要步驟,但安裝後可顯示 OTTO 的嘴巴)。

(1)由於OTTO頭部內的空間限制,安裝顯示模組時,需rework將模組的排針移除,改由直接焊接杜邦線以節省空間。若是不熟悉焊接操作,可略過此步驟。(2)開始rework前,可先測試 8×8 矩陣式LED顯示模組是否能正常運作。如下圖所示,將顯示模組連接至擴充板的P7P8P9

圖9-1

 

(3)點選LED開關,應可看見8×8 矩陣式LED模組開始顯示不同的圖案。

圖9-2

 

(4)若上一步驟結果正常,即表示顯示模組功能無誤,接下來可進行rework(需使用焊接工具)。(5)將顯示模組的輸出針腳剪斷(如下圖左側)。(6)移除模組的輸入針腳,並從模組背面焊接五條杜邦線至對應的孔位。

圖9-3

 

(7)再次將8×8矩陣式LED顯示模組連接至 Robot Shield,並透過手機的校正測試APP,確認運作正常。

圖9-4

 

  此步驟完成後,即完成所有電子元件測試,接下來將進行零件組裝。在此前,請先將擴充板上的接線全部解開,之後的組裝步驟會再說明對應機構的接線方式。

  文章至此,讀者們是否更加期待親自完成一台OTTO97呢?考慮到文章的長度,接下來的步驟,我們將於下回分解,敬請期待。若讀者們想購買LinkIt7697 + Robot shield,歡迎前往機器人王國挑選,謝謝。

 

相關文章

[教學文]坦克18步:手把手教您組裝Robot Shield v2坦克車

相信大家對開發板可用來控制車子、手臂、機器人⋯⋯等等,已玩得不亦樂乎。前陣子,在Thingiverse上看見用3D列印出來的坦克,且還能以開發板來控制它,覺得非常有趣,於是下載了3D檔,並準備相關材料進行組裝,大家可由此TANK GO下載列印件,原作者MiniPlan也非常貼心地放上了組裝影片及材料說明連結喔!

作者/攝影

坦克車原作者:MiniPlan

文字整理/圖片:CAVEDU教育團隊郭皇甫

文章分類教學技術文
時間

成本
難度*(1~10)
材料表
  • Robot Shield*1

  • LinkIt 7697*1

  • 坦克3D列印件

  • N20馬達X2

  • M2X8螺絲10顆、M2X4螺絲4顆

  • DFMP3 Player MINI模組X1

  • SG90伺服機X1

  • 紅外線接收器X1、紅外線發射器X1

  • 8歐姆0.25瓦喇叭X1

  先看一下原作者MiniPlan拍攝的組裝影片:

  小編也替讀者們寫了圖文版的組裝步驟,說明如下:

材料準備:

  1. 坦克3D列印件

  2. N20馬達X2

  3. M2X8螺絲10顆、M2X4螺絲4顆

  4. DFMP3 Player MINI模組X1

  5. SG90伺服機X1

  6. 紅外線接收器X1、紅外線發射器X1

  7. LinkIt 7697開發板X1

  8. 8歐姆25瓦喇叭X1

  9. Robot shield v2控制板X1

圖1 材料準備

 

工具準備:

  • 螺絲起子(十字、一字)

  • 熱熔膠槍、熱熔膠條。

 

Step1:首先連接車身與胎框。這裡會有四個大小一樣的胎框,但其連接軸的圓洞有大小之分,請先拿出二個最大圓洞的胎框,並裝至車身卡榫上,如圖2所示。(PLA較無彈性,所以將胎框壓進卡榫時,要邊轉動胎框邊施力壓進。)

圖2 將胎框壓進卡榫

 

圖3 二邊胎框安裝完成

 

Step2:接下來拿出兩個N20馬達,並將其安裝至車身內,馬達的軸對準車身的小圓洞,即可向外推到底,如圖4所示。

圖4 安裝N20馬達

 

Step3:拿出F部件,並將其對準I部件的上、下方凹槽後,壓進凹槽內。(這裡要特別注意,I部件上、下方的邊框有些微不同,F部件的紋路也不一樣,請依照圖5的方向及位置安裝。)

圖5 安裝F部件

 

Step4:拿出C部件,並將其安裝至N20馬達軸上。(在這裡,作者非常貼心將孔洞設計成與N20馬達的輪軸形狀相同,如此一來,安裝時就不會搞錯了。)

圖6 安裝C部件

 

圖7 四胎框安裝完成

 

Step5:將喇叭焊線後,分別接上MP3 Player mini的SPK_1、SPK_2,使用熱熔膠將喇叭固定在I部件中心的圓孔上。(也請在MP3 Player mini的VCC、RX、TX腳位另外接上三條杜邦線。)

圖8 固定喇叭

 

Step6:用四顆M2x4螺絲,將Robot Shield v2對準C部件圓柱上的孔位並鎖上。(如果在這步驟對不到孔位的話,您可稍微扳動C部件的圓柱,對準後鎖上。在此步驟,您就可以將馬達線鎖上Robot Shield的端子台上了。)

圖9 使用M2螺絲固定Robot Shield v2

 

Step7:車身的下半部先告一個段落,接著拿出D部件,左右半部對準後壓緊固定。

圖10 壓緊D部件

 

Step8:拿出四顆M2x8螺絲,對準E部件上的四個孔洞,將螺絲先鎖一些進去。

圖11 將螺絲先鎖一點進E部件

 

Step9:再將E部件對準D部件上的螺絲孔位,用螺絲起子鎖緊後固定。

圖12 鎖緊D、E部件。

 

Step10:接著拿出B部件,並將一字舵片使用熱熔膠固定至凹槽。(注意,舵片中正央圓形凸起的地方朝上。)

圖13 固定舵片在B部件上

 

Step11:將B部件以四顆M2X8螺絲鎖緊固定在D部件上方四個孔洞。

圖14 固定B部件在D部件上

 

Step12:將焊好線的紅外線接收器,穿過H部件的方形孔洞,並使用熱熔膠固定在方形凹槽內,同時將G部件也以熱熔膠固定在H部件的圓形凹槽。(請特別注意,G部件上有四個小方孔,請將小方孔對齊紅外線接收器的位置後再固定。)

圖15 將紅外線接收器穿過H部件孔洞

 

圖16 將G部件固定在H部件上

 

Step13:請將焊好線的紅外線發射器,從線端穿過A部件前方的炮口。

圖17 紅外線發射器穿過炮口並固定

 

Step14:把A部件翻過來後,將SG90以圖18的位置,以M2X8的螺絲固定。(請特別注意,A部件上只有一個螺絲孔,您也可以使用熱熔膠固定SG90沒有鎖螺絲的一邊,或是使用鑽孔工具再多打一個孔。)

圖18 固定SG90

 

Step15:接下來把SG90與紅外線發射器的線,分別穿過A部件下方的兩個方形孔洞,並將多餘的線整理好。

圖19 將線穿過A部件的方形孔

 

圖20 將多餘的線整理好

 

Step16:將H部件固定在A部件上方的方形洞。(請特別注意,請按照圖21的H部件方向固定。)

圖21 將H部件固定在A部件上

 

Step17:接著請將A部件的SG90對準B部件上舵片的圓孔,往下壓緊固定。(請特別注意,在固定前,請先校正SG90的位置,讓您的炮台能夠左右各旋轉約90度為最佳。)

圖22 固定炮台

 

Step18:最後,將SG90接在P5腳位,其餘感測器按照網站文件上註明的腳位接上後,並將D部件壓緊至I部件上即可。

 

  至此,組裝步驟就完成囉!接下來,您便可將網站上給的程式上傳至7697開發板,並且使用手機下載LinkIt Remote後,試試看,坦克車是不是能順利動起來了呢?

 

備註:若讀者想購買相關的開發板,歡迎洽詢機器人王國

 

相關文章

[教學文]想自己動手做藍牙遙控車?就是這一篇了!

作者/攝影

CAVEDU教育團隊 鈺莨

文章分類教學技術文
時間

成本
難度
材料表
完整程式下載

BlocklyCar7697

導讀

 

本文重點

  我們將介紹馬達轉動原理,還有如何用藍牙裝置接收字元,也會把手機作為遙控車的方向盤,控制遙控車的方向。讓我們一起做出一台屬於自己的LinkIt 7697的藍牙遙控車吧!

圖1 藍牙遙控車,衝啊!

 

  LinkIt 7697的電流無法直接使兩顆直流馬達動起來,所以我們要使用馬達驅動板Robot Shield。

 

Step1:我們先用手機的藍牙裝置,試著控制一顆直流馬達,先接上一顆直流馬達。下面圖片是直流馬達接線圖:

圖2 一顆直流馬達連接Robot Shield

 

馬達的腳位

Robot Shield的腳位

113
217

 

藍牙遙控車程式

  程式部分,我們使用BlocklyDuino來寫程式。程式有分成車子的接收部分,以及手機的發送部分。我們先說明車子接收部分的程式,會用到藍牙的積木有下面幾種:

圖3 藍牙BlocklyDuino積木

 

Step2:打開【BLE周邊】(黃色標籤1)抽屜,可看見「建立藍牙週邊裝置」(黃色標籤2)、「新增藍牙屬性」(黃色標籤3)、「藍牙屬性已更新」(黃色標籤4)、「讀取藍牙屬性數值」(黃色標籤5)。這些是我們需要用到的積木,拼出來的積木如下圖:

圖4 BlocklyDuino藍牙裝置程式

 

Step3:我們要把BlocklyDuino藍牙初始化的裝置建立起來。請大家在「建立藍牙週邊裝置」的「顯示名稱」上改名字,在手機的那一端就會顯示出「顯示名稱」上的名字。

 

  此外,「服務UUID」和「新增藍牙屬性UUID」,只要和App Inventor上面的數值是一樣的,我們就可以讓LinkIt 7697和手機的藍牙裝置連線。

 

Step4:我們要寫出LinkIt 7697接收到字元後所要進行的動作,如下圖:

圖5 BlocklyDuino馬達轉動程式

 

Step5:寫完LinkIt 7697開發板接收到數字的程式後,接下來,我們要寫手機發送指令部分的程式。在此,我們繼續用App Inventor寫成手機的App程式。下圖是App Inventor的手機使用版面圖:

圖6 App Inventor的手機使用版面圖

 

  版面設計完成後,接下來進入App Inventor的程式設計介面,我們要來寫如何用手機傳送字元的程式。

 

Step6:下圖是手機和LinkIt 7697的藍牙裝置連線的積木:

圖7 LinkIt 7697開發板藍牙裝置的UUID

 

圖8 手機搜尋藍牙裝置的名字和名字欄位選擇

 

圖9用手機連上LinkIt 7697藍牙裝置的積木

 

Step7:當我們按下手機上的「搜尋」按鈕時,手機就會自動尋找附近有沒有LinkIt 7697的藍牙裝置。

 

Step8:若有的話,按下「名稱」按鈕,藍牙裝置的名稱就會顯示在選擇名單內,再按一次選擇名單內的藍牙裝置名稱就可進行連線。若連線成功,手機螢幕就會顯示出藍牙遙控車的名字。

 

Step9:按下斷線按鈕,手機就會和LinkIt 7697開發板的藍牙裝置斷線。

 

  接下來,我們要教大家寫如何控制一台藍牙遙控車的程式!

 

Step10:我們再將另一顆馬達接上馬達驅動板Robot Shield

圖10 兩顆馬達連接馬達驅動板Robot Shield

 

馬達的腳位

Robot Shield的腳位

113
217
312
410

 

  我們可以用程式的高電位或低電位,控制馬達的正方向轉或反方向轉。我們用兩顆馬達的正方向轉或反方向轉決定車子的行走方向,車子有下面四種走法:

圖11 車子有五種不同的運動方式

 

  程式部分,我們利用LinkIt 7697開發板的高電位或低電位,控制馬達的正方向轉或反方向轉。就如圖12一樣,馬達驅動板Robot Shield的10和12腳位是控制右邊的馬達;13和17腳位是控制左邊的馬達,所以程式會如下圖:

圖12 BlocklyDuino程式

 

  有了前面的做法後,我們現在來寫寫看LinkIt7697開發板的程式吧!

 

Step11:LinkIt 7697的程式部分,只要把前面程式中的【重複執行】的「轉動」和「停止」積木,改寫成「停止」、「前進」、「後退」、「右轉」、「左轉」積木就可以了。程式積木如下圖:

圖13 BlocklyDuino的全部程式

 

Step12:接下來,我們要改寫手機遙控部分的積木程式,也是按照順序分別改成「停止」、「前進」、「後退」、「右轉」、「左轉」這五種動作指令。完整的手機控制版面如下圖:

圖14 藍牙遙控車手機的控制版面

 

再來是App Inventor程式積木的部分:

圖15 藍牙遙控車連線、斷線的事件

 

圖16 手機發送指令事件

 

  這樣藍牙遙控小車的程式就完成了,趕快拿手機來玩玩看!

 

[教學文] 從Zero到Hero,給想實做動力小車的你——軟體篇

作者/攝影

動力大腳車製作者、資料、圖影片提供:游允赫

文字整理:CAVEDU 宗諭

文章分類教學文
時間

成本
難度
材料表

 

  接著上一篇「從Zero到Hero,給想實做動力小車的你——硬體篇」,這次我們將繼續介紹,完成動力大腳車硬體設施後,軟體層面該如何部署。

 

  首先介紹所需要的配備:

  • 開發板:LinkIt 7697 + RobotShield

  • 顏色感測器:TCS3200

  設定方式:

Frequency Scaling 20% (S0-H,S1-L)

Photodiode Type Clean (S2-H,S3-L)

  • 手機遙控app:LinkIt Remote

  • 程式編輯器:Arduino IDE

圖1

 

  先讓我們打開Arduino IDE,然後寫好將顯示在LinkIt Remote上的各項物件,等之後LinkIt Remot與7697透過藍牙連接時,LinkIt Remote將自動抓取這些物件。如下:

//設定爬坡按鈕

  LRemoteButton buttonClimb;

//設定折返按鈕

  LRemoteButton buttonGoAndBack;

//設定計時器

  LRemoteSlider Timer;

//設定顏色極限值

  LRemoteSlider Limit;

//上方標籤

  LRemoteLabel  BigFoot;

//設定狀態欄

  LRemoteLabel  LabelS;

//設定顏色感應器偵測值欄

  LRemoteLabel  LabelLight;

 

  接下來,讓我們為著之後的主程式宣告一些變數,如下:

//馬達分別接於13、17

  int M1A = 17;

  int M1B = 13;

//宣告變數T(時間-0.1秒為單位)

  int T;

//宣告變數F(顏色感應器讀數)

  int F;

//宣告變數S(車輛狀態)

  int S = 0;

//宣告變數L(顏色極限值)

  int L;

//宣告變數button=6(7697內建USR按鈕)

  int button = 6;

圖2

 

  現在來到主程式部分,首先是setup函式,如下:

void setup() {

  Serial.begin(9600);

  Serial.println(“Start configuring remote”);

  pinMode                  (13, OUTPUT);

  pinMode                  (17, OUTPUT);

  pinMode                  ( 2,  INPUT);

  pinMode                  ( 4,  INPUT);

  pinMode                  ( 6,  OUTPUT);

  digitalWrite             (13, 1);

  digitalWrite             (17, 1);

 

//這部分是LinkIt Remote介面上各項物件的進一步設定

//藍牙名稱,介面分割

  LRemote.setName          (“BigFoot”);

  LRemote.setOrientation   (RC_PORTRAIT);

  LRemote.setGrid          (3, 5);

 

//上方標籤

  BigFoot.setText          (“!大腳車!”);

  BigFoot.setPos           (0,0);

  BigFoot.setSize          (3,1);

  BigFoot.setColor         (RC_GREY);

  LRemote.addControl       (BigFoot);

 

//爬坡按鈕

  buttonClimb.setText      (“爬坡!”);

  buttonClimb.setPos       (0, 2);

  buttonClimb.setSize      (1, 1);

  buttonClimb.setColor     (RC_BLUE);

  LRemote.addControl       (buttonClimb);

 

//折返按鈕

  buttonGoAndBack.setText   (“折返!”);

  buttonGoAndBack.setPos    (2, 2);

  buttonGoAndBack.setSize   (1, 1);

  buttonGoAndBack.setColor  (RC_BLUE);

  LRemote.addControl        (buttonGoAndBack);

 

//時間設定滑桿

  Timer.setText             (“Timer=( 10 ~ 150 )”);

  Timer.setPos              (0,1);

  Timer.setSize             (3,1);

  Timer.setColor            (RC_ORANGE);

  Timer.setValueRange       (10,150,10);

  LRemote.addControl        (Timer);

//光感極限值設定滑桿

  Limit.setText             (“LIMIT”);

  Limit.setPos              (0,3);

  Limit.setSize             (3,1);

  Limit.setColor            (RC_GREEN);

  Limit.setValueRange       (100,360,225);

  LRemote.addControl        (Limit);

 

//光感值顯示標籤

  LabelLight.setText        (String(F));

  LabelLight.setPos         (0, 4);

  LabelLight.setSize        (2, 1);

  LabelLight.setColor       (RC_PINK);

  LRemote.addControl        (LabelLight);

 

//狀態顯示標籤

  LabelS.setText            (String(S));

  LabelS.setPos             (2, 4);

  LabelS.setSize            (1, 1);

  LabelS.setColor           (RC_GREY);

  LRemote.addControl        (LabelS);

 

  LRemote.begin();

  Serial.println(“begin() returned”);

}

 

  關於LinkIt Remote如何設定,讀者們可以進一步參考這篇文章:使用LinkIt Remote

圖3 在手機的LinkIt Remote上,介面如此呈現。

 

  再來是loop函式的部分,如下:

void loop() {

  if(!LRemote.connected()) {

    Serial.println(“waiting for connection”);

    delay(1000);

  } else {

    delay(15);

  }

  LRemote.process();

//獲取極限值設定

  L = Limit.getValue();

//獲取時間值設定

  T = Timer.getValue();

//獲取顏色感測器讀取值,感測器訊號接於4號腳位上

  F = pulseIn(4,LOW);

//顯示讀取值於光感值標籤

  LabelLight.updateText(String(F));

 

 

//當爬坡按鈕按下,狀態值設定為5,狀態欄顯示為”已選爬坡”

  switch (buttonClimb.getValue()){

    case 1:

    S = 5;

    LabelS.updateText(“已選爬坡”);

    break;

    case 0:

    break;

   }

 

//當爬坡按鈕按下,狀態值設定為1,狀態欄顯示為”已選折返”

  switch (buttonGoAndBack.getValue()){

    case 1:

    S = 1;

    LabelS.updateText(“已選折返”);

    break;

    case 0:

    break;

   }

 

 

//若狀態值為1(已選折返)且7697 USR按鈕被按下

//狀態列顯示為”下坡”,馬達反轉,持續秒數依滑感設定

//持續時間設定值過後,狀態值切換至2

if (digitalRead(button) == 1 && S ==1 ){

    LabelS.updateText(“下坡”);

    digitalWrite(M1A,0);

    digitalWrite(M1B,1);

    delay(T*100);

    S = 2;

   }

 

//若狀態為2且顏色感應器偵測值小於極限值(判定為尚未過黑線)

//馬達持續反轉,狀態欄顯示為”偵測中”

    else if(S == 2 && F < L){

      digitalWrite(M1A,0);

      digitalWrite(M1B,1);

      LabelS.updateText(“偵測中”);

    }

 

//若狀態為2且顏色感應器偵測值大於極限值(判定為過黑線)

//狀態值切換至3,狀態欄顯示為”已偵測”

    else if(S == 2 && F > L){

      S = 3;

      LabelS.updateText(“已偵測”);

    }

//若狀態為3,則狀態欄顯示為”上坡”,馬達正轉

//持續時間為設定值+2秒(上坡所需時間較長),時間到達後狀態值切換至4

    else if(S==3){

      LabelS.updateText(“上坡”);

      digitalWrite(M1A, 1);

      digitalWrite(M1B, 0);

      delay(T*100+2000);

      S = 4;

    }

//若狀態為4且顏色感應器偵測值小於極限值(判定為尚未過黑線)

//馬達持續正轉,狀態欄顯示為”偵測中”

    else if(S == 4 && F < L){

      digitalWrite(M1A,1);

      digitalWrite(M1B,0);

      LabelS.updateText(“偵測中”);

    }

//若狀態為4且顏色感應器偵測值大於極限值(判定為過黑線)

//狀態欄顯示為”已偵測”,馬達持續正轉一秒

//一秒後狀態值切換至0,狀態欄顯示為”停止”

    else if(S == 4 && F > L){

      LabelS.updateText(“已偵測”);

      digitalWrite(M1A,1);

      digitalWrite(M1B,0);

      delay(1000);

      digitalWrite(M1A,1);

      digitalWrite(M1B,1);

      S = 0;

      LabelS.updateText(“停止”);

    }

 

//若狀態值為5(已選爬坡)且7697 USR按鈕被按下

//狀態值切換至3

    else if(S ==5 && digitalRead(button) == 1){

      S = 3;

    }

}

圖4

 

  程式完成後,最後一步就是把程式燒錄至LinkIt 7697上。

 

  軟體部分簡單介紹至此,若讀者有不了解的地方,歡迎詢問允赫老師,E-mail:yhyu@cavedu.com,謝謝。

 

相關文章

[教學文] 從Zero到Hero,給想實做動力小車的你——硬體篇

作者/攝影

動力大腳車製作者、資料、圖影片提供:游允赫

文字整理:CAVEDU 宗諭

文章分類教學文
時間

成本
難度
材料表

 

  幾週前,在淡江大學同舟廣場舉辦的「創意皂飛車競賽」,動力組的競爭可真是龍爭虎鬥。其中,我們CAVEDU教育團隊的好夥伴游允赫老師,以動力大腳車在動力組的激烈競爭中脫穎而出,在動力折返挑戰賽中獲得第二名的佳績!

圖1 游允赫老師(左)

 

  對於製作動力小車深有熱忱的允赫老師,便想藉由文字跟讀者們分享製作動力大腳車的過程及心得。因此,這篇文章將為大家簡單介紹,如何製作動力大腳車的硬體設施。

 

先讓我們看一下動力大腳車的測試影片:

 

  在開始製作動力大腳車的硬體設施前,我們先要取得一台Tamiya大腳車。有了大腳車後,我們把車子上的電池盒拆掉,只保留底盤、馬達及齒輪組。

 

  接下來,我們要幫大腳車裝上培林(Bearing)。為什麼要裝培林呢?主要是因大腳車的底盤把齒輪放在同一邊,所以要利用培林使車體置中。大腳車本身輪軸中間是外露的,可以直接使用那邊的空間製作結構,前後是可動結構,可隨坡度有微幅變化,足以確保感應器和軌道的距離不變,便不會因距離不同而產生誤判。

圖2 大腳車輪軸中間的空間外露

 

機械小知識——什麼是培林

  台灣人稱軸承(Bearing)為培林。而軸承這個機件在機械上的作用是,當其它機件在軸上彼此產生相對的運動時,用來保持軸的中心位置,並且控制該運動(參考自維基百科)。

圖3 動力大腳車使用的培林

 

圖4 大腳車安裝上培林

 

  因為我們已把大腳車的電池盒拆除了,所以要讓大腳車有適合的動力來源。在這裡我們使用的是LinkIt 7697開發板 + Robot Shield馬達驅動板。如何將它們固定在大腳車上?不複雜,就是把塑膠殼拆開,使板子可以固定即可,但要注意不要讓板子的重心太高。

圖5

 

  在進行前述流程時,幾兩個事項要注意:(1)需測量底盤軸距,以及裡面有多少空間可製做結構;(2)還有因齒輪箱在左邊,所以在畫3D時,需計算修正,好使車子放在軌道上時,不會偏向一邊。

 

  接下來便都是進行3D建模了。

 

  硬體部分大致介紹至此,若讀者有不了解的地方,歡迎詢問允赫老師,E-mail:yhyu@cavedu.com;下一篇,我們將介紹動力大腳車在軟體層面需有哪些部署。

 

相關文章

[LinkIt 7697] 物聯網應用情境下的LinkIt 7697

作者/攝影

熊大

文章分類介紹文
時間

成本
難度****(1~10)
材料表

 

  今日的物聯網應用多包含裝置(Device)、雲端(Cloud)及手機 (Mobile) 三部分,彼此互相連通,常用的有三種情境:

圖1

 

  情境一:手機和開發板透過藍芽對連,透過手機控制開發板。開發者可在 Arduino 中使用的 LRemote函式庫撰寫 UI的呈現和互動方式,手機上則需安裝 LinkIt Remote App。當手機透過藍芽連至 LinkIt 7697,會自動讀取 UI 的呈現方式,並可做交互操作。例如 OTTO97 這個二足機器人專案,就是使用此方法透過手機的藍芽操作機器人。除了使用 LRemote 函式庫(Arduino端)搭配 LinkIt Remote App(手機端)進行藍芽連線操作之外,也可使用 App Inventor製作手機端的應用與 LinkIt 7697 互相溝通。使用藍芽連線的好處之一,就是手機對外網路(Wi-Fi or 4G)還是連通的,依舊可上網。

 

資源連結:

LRemote: https://goo.gl/gx6uPY

OTTO97: https://goo.gl/qLK2Vq

 

圖2 OTTO97

 

  情境二:手機和開發板透過Wi-Fi 對連。使用此方法 LinkIt 7697 會需要切到AP模式,手機連到LinkIt 7697(Soft AP)並使用瀏覽器開啟網頁。此種方法的缺點就是,當手機連線到LinkIt 7697時,會失去上網功能,但手機基端不需安裝應用,只需要有瀏覽器則是其優點。(目前 LinkIt 7697 Soft AP模式 Arduino 函式庫已經開發,並且已經釋放出來給開發者使用。)

 

  情境三:透過MCS(MediaTek Cloud Sandbox)雲端服務,進行LinkIt 7697與多屏的溝通。MCS為聯發科技公司,免費提供給開發者進行概念驗證和學習物聯網應用的一個雲端平台,分成公有雲版本(MCS)和私有雲版本(MSCLite)。公有雲版本只要至 mcs.mediatek.com 註冊後便可直接使用;私有雲MCSLite需要安裝到自己的網路環境內,可在任何一台可執行Node.js的環境上運行(Windows、MacOS、Linux),所以可以裝在 PC、Notebook、NAS、AWS/Azure,甚至是 LinkIt Smart 7688 上。MCSLite 為一開源專案,且提供大量的彈性可供讓使用者客製化,方便使用者依自己的需求修改調整。

 

資源連結:

MCS : https://mcs.mediatek.com

MCSLite : https://mcslite.netlify.com/zh-TW

 

周邊配套

  LinkIt 7697 已與眾多通路上容易購買的常用周邊硬體進行過相容性測,並有提供可用的函式庫及教學文章,例如七段顯示器/矩陣顯示器(74HC595/MAX7219),OLED(SH1106/SSD1306⋯⋯等等),LCD模組(PCF8574A/PCF8574),溫度壓力感測器(BMP183),RGB LED(WS2812),超音波測距模組(HC-SR04),溫溼度感測器(AM2302/DHT22/DHT11⋯⋯等等),光感測器(LM358),LED Bar(MY9221),加速度感測器(MPU-9250)⋯⋯等等。

 

資源 :

相容周邊驅動和教學: https://goo.gl/sUQnCM

 

  開發者除可單獨入手這些常用的周邊模組外,若想要一次性入手常用周邊,也可考慮Grove Starter Kit for LinkIt 7697,作為上手學習的套件。

圖3 Grove Starter Kit for LinkIt 7697

 

  此外,台灣知名的機器人開發板廠商 MiniPlan,也有針對LinkIt 7697 開發相容的Robot Shield,提供好用的馬達控制功能及高效安全的內建可充電電池,非常適合開發初階機器人應用。

圖4 Robot Shield(左)

 

總結

  LinkIt 7697為學習和實作物聯網應用非常好用的平台,搭配聯發科技公司提供的免費物聯網雲服務MCS/MCSLite,以及手機應用LinkIt Remote,可以更容易製做出橫跨裝置 (Device)、雲端(Cloud)及手機(Mobile)的物聯網專案。也歡迎大家加入FB粉絲團 「LinkIt 開發者社群」,可及時獲得第一手資訊。

 

相關文章

[教學文]MIT App Inventor Codi Bot 設計發想

作者/攝影曾吉弘
文章分類教學
時間
成本
難度
材料表

 

  對於會寫程式的人來說,不同程式語言有著極大不同,但對於不會的人來說:

 

都一樣啊!哪有什麼不同,看起來都像咒語⋯⋯

 

  因此需要一個符號或吉祥物來與這種語言產生連結,例如Linux的小企鵝、Arduino的無限符號,或Scratch的小貓⋯⋯等等,在各式場合都能看到代表各自的logo。App Inventor 以往的logo太像Android,為搭配即將推出的App Inventor iOS版,MIT App Inventor小組推出了新的logo,CAVEDU也很高興能設計 MIT App Inventor Codi bot(選購連結)

圖1

 

  之前已經寫過一篇介紹Codi Bot的各類功能教學文件也都出來了:

  • 單機執行:直接執行 (影片)

  • LED:使用按鈕、滑桿來控制翅膀與底座的LED (影片)

  • 翅膀:使用按鈕、滑桿來控制翅膀(伺服機) (影片)

  • 聲音:控制蜂鳴器發出各種音符或自訂義頻率與時間長度 (影片)

  • 完整app:整合上述功能 (影片)

 

  本篇要與大家分享 Codi Bot的設計發想,分成核心、外觀及燈光⋯⋯等等(感謝設計師:游允赫大大):

 

一、核心:

 

  MIT App Inventor在阿吉老師去MIT擔任訪問學者前,藍牙BLE支援的板子只有Arduino 101,但大家知道的⋯⋯Arduino 101已停產,所以自然要有一款平價好用的控制板補上,那便是LinkIt 7697。為方便腳位和電源管理,我們再搭配 Robot Shield for LinkIt 7697 V2.0 好放進Codi bot的肚子裡。

 

  Robot Shield 背面有兩個電容,並且是專門為機器人應用所設計,所以把許多腳位都用 3 pin 的方式接出來,也有兩個直流馬達的螺絲接口。兩者只要疊在一起就好了,並且可用 Robot Shield 來為 7697供電。另一個很棒的地方是 Robot Shield上就有一個蜂鳴器,可讓機器人發出簡易音效。

圖2

 

圖3

 

  把超音波感測器、LED、servo接上後,Robot shield的腳位都快用完了呢⋯⋯,再以螺絲固定即可。

圖4

 

所有內部的線路走法大致如此,要準備組合了。

圖5

 

是不是塞得很滿呢?

圖6

 

二、外觀

超音波感測器裝在Codi bot頭部,線路走脖子接到擴充板上。

圖7

 

就是眼睛啦,很可愛吧!深度是有測試過的,不會影響距離偵測的效果。

圖8

 

我們設計了一個背包,驅動翅膀的兩顆servo 就放在裡面。

圖9

 

Codi bot 底部,很容易就能撥動開關來開機。

圖10

 

組合身體前後兩片零件的螺絲會被條紋(牛皮)遮起來。

圖11

三、燈光

  為了順利呈現MIT App Inventor logo 兩個翅膀的紫色與綠色,又要有互動效果,我們選用LED燈條,從servo的背包孔位拉出線來。

圖12

 

把LED燈條放入翅膀零件的溝槽,這一步難度比較高,小心不要壓到線。

圖13

 

  Codi Bot背包上有一個孔,可以讓壓克力支撐架扣入以固定。底部的RGB LED 則是安裝在壓克力底座的孔,伸進去一點有很不錯的燈光效果喔!

圖14

 

圖15

 

相關文章