Category Archives: 聯發科LinkIt家族

[教學文] 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大大交流了。

 

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

 

相關文章

[CAVEDU化學小教室] pH值知多少?運用類比式酸鹼感測模組,讓滴定實驗更精準!!

照片改編自pixabay下載的兩張圖片,蒙允免費使用,特此致謝。

炎炎夏日,小編手刀衝進公司附近的7-11,準備好好解一解身體的渴。然而,打開擺放飲料的冰櫃才發現,原來光是礦泉水就有那麼多品牌,而且許多都標榜自己是鹼性水(重點是賣得比較貴)。但是,究竟這些礦泉水是否真為鹼性呢?所以啦,今天CAVEDU化學小教室第一天開張,就是要教讀者們「酸鹼滴定實驗」,這樣就可以測量所喝的飲料,到底是酸還是鹼。

作者/攝影

撰寫:宗諭

攝影:鈺莨、pixabay

文章分類
時間
成本
難度
材料表
  • 蒸餾水

  • 筆記型電腦*1

  • LinkIt 7697或Arduino系列開發板*1

  • 類比式酸鹼感測模組*1

  • 滴定管*1

  • 錐形瓶*1

什麼是酸鹼滴定實驗?

酸鹼滴定實驗的主要原理,主要是利用已知濃度的鹼或酸溶液,透過滴定的方式,測量出未知濃度溶液的酸鹼值。

圖1

 

實驗會使用哪些裝置?

1.滴定管

裝酸性溶液時,多使用玻璃材質;盛裝鹼性溶液時改用鐵氟龍材質,因鹼性溶液會腐蝕玻璃。

 

2.錐形瓶/燒杯

為什麼用錐形瓶會更好呢?因為錐形瓶形狀上窄下寬,當滴入酸或鹼溶液時,液體比較不會噴濺至外面。若是沒有錐形瓶,亦可使用燒杯,但要特別注意液體的噴濺。

 

3.類比式酸鹼感測模組

在一般酸鹼滴定實驗中,會在下方的錐形瓶或燒杯中加入酸鹼指示劑,作用是當酸鹼指示劑變色時,即達到「滴定終點」,表示氫離子(H+)的ml數剛好等於氫氧根離子(OH-)的ml數,完全反用成為水。然而,在此我們使用「類比式酸鹼感測模組」,也是這次實驗的特點。當我們使用「類比式酸鹼感測模組」,便能透過開發板及筆電,更精準測量出每一段實驗時間內pH值的變化。同時,由於我們測量出的是明確的數字,所以,在記錄上會更加精準,並可作為日後實驗的參考。(若欲購買類比式酸鹼感測模組,請洽機器人王國。)

圖2

 

4.LinkIt 7697開發板或Arduino系列開發板

主要是作為感測裝置的類比式酸鹼感測模組,必須連接至開發板,開發板再連接至電腦,才能將感測到的酸鹼值上傳至電腦進行觀測。

 

5.筆記型電腦

作為觀測酸鹼值之用。須在筆電上安裝好Arduino IDE,因為我們會透過這個程式,打開Serial port監測酸鹼值。

 

6.蒸餾水

主要用來清洗實驗器具

 

實驗步驟:

1.以鹼滴定酸:

  • 滴定管中置入鹼液;

  • 錐形瓶/燒杯中置入酸液;

  • 把類比式酸鹼感測模組連接好開發板及電腦;

  • 將類比式酸鹼感測模組置入錐形瓶/燒杯中的溶液;

  • 觀察pH值的變化,以及當達到滴定終點pH 7時,記錄下滴定液體體積為多少。

圖3

 

2.以酸滴定鹼:

  • 滴定管中置入酸液;

  • 錐形瓶/燒杯中置入鹼液;

  • 把類比式酸鹼感測模組連接好開發板及電腦;

  • 將類比式酸鹼感測模組置入錐形瓶/燒杯中的溶液;

  • 觀察pH值的變化,以及當達到滴定終點pH7時,記錄下滴定液體體積為多少。

圖4

 

實驗結果:

1.以鹼滴定酸:

記錄下滴定過程中pH值的變化,可得出類似下面的圖表:

圖5

 

2.以酸滴定鹼:

記錄下滴定過程中pH值的變化,可得出類似下面的圖表:

圖6

 

需要注意的事情:

  1. 類比式酸鹼感測模組是利用置入pH 7的穩定溶液中,進行參數校正。

  2. 水溫要設定。如果水溫沒有設定好,pH值會偏移。所以在進行滴定實驗時,需要準備一個比較準的溫度計。

 

經過這次酸鹼滴定實驗,相信讀者們對於酸鹼混合時的現象,以及當加入的鹼性液體或酸性液體體積漸多時,pH值的變化情形有更深入了解。下一次,若是有富教育意義的化學實驗,我們再跟大家分享。See you!

 

相關文章

[介紹文]以LinkIt7697搭配LinkIt Remote打造智慧門禁系統 6項功能、6大特色一次帶您看!!

作者/攝影

智慧門禁系統作者:曾希哲老師

文字整理:CAVEDU 宗諭

圖片:曾希哲老師、pixabay

文章分類介紹文
時間

成本
難度
材料表
  • LinkIt 7697*1(若欲購買,請洽機器人王國商城)

  • RC522 RFID讀取器*1

  • 電磁鎖*1

  • LCD*1

  • 蜂鳴器*1

  • Mifare S50 Card*1

  • 智慧型手機*1

因長期致力於科技教育,CAVEDU團隊認識許多老師,但慢慢地我們才發現,教師當中真是人才濟濟,高手藏身於教育界。對科技、程式教育,有熱忱又富能力的老師其實相當多,例如熱衷於四軸飛行器教學的洪雅慧老師,還有對於Micro:bit深有研究的劉正吉老師⋯⋯等等,而花蓮的曾希哲老師也是其中之一。

圖1 各路高手在教師界

 

若仔細瞧瞧曾希哲老師的臉書頁面,上面幾乎都是他各種學習程式、物聯網、開發板的心得、照片及影片,例如,他最近就在玩LinkIt 7697的擴充板,不斷發出新的貼文,真感受到他的樂此不疲!為將所學得的技術充分教導給學生,曾老師也架設一個網站「曾希哲的學習天地」,上面有他學習物聯網、LinkIt 7697、Arduino⋯⋯等等心得,讀者們記得抽空去逛逛喔!

圖2 曾希哲老師的個人網站

 

本文的主角是曾希哲老師一手打造的「智慧門禁系統」。當初,曾老師有做過RFID的門禁系統,並於2017年以此系統參加過「花蓮創客賽物聯網組」,卻一直找不著適合的按鍵輸入方式。

 

因此,曾希哲老師便逐漸萌生以手機當作藍牙鍵盤的想法,並想透過LinkIt Remote實現。後來,他在手機上實做出藍牙鍵盤,並加入原有的門禁系統中,再把幾項一直想做出的功能實現,最後「智慧門禁系統」就大功告成。(噹啷~~)

圖3 智慧門禁系統

 

讓我們先看看曾希哲老師親自錄製的介紹影片:

 

這個「智慧門禁系統」包含哪些單元呢?請見下圖:

圖4

 

智慧門禁系統的功能與特色

系統是以LinkIt 7697為核心建立,有以下幾項功能:

  1. 可用RFID刷卡輸入

  2. 可以藍牙鍵盤輸入

  3. LCD顯示輸出

  4. 蜂鳴器輸出

  5. 若使用者兩次輸入錯誤,系統就會透過Line即時訊息通知屋主。

  6. 假設使用者受威脅必須開門,可輸入威脅密碼,門一樣會打開,但會在威脅者無法察覺情況下,以Line即時訊息通知屋主,使屋主能盡快報警。

 

這個系統又有哪些特色呢?

  1. 以手機作為藍牙鍵盤,使用起來相對方便。

  2. 使用者受威脅需開門時,可使用威脅密碼。

  3. 同時使用藍牙與WiFi功能,LinkIt 7697是以IFTTT網路服務,透過Wi-Fi傳送Line即時訊息。

  4. 不需使用App Inventor撰寫手機程式,只要撰寫7697程式即可。

  5. 使用LinkIt 7697 BlocklyDuino,程式撰寫比較容易。

圖5

 

圖6 圖5、6為曾希哲老師運用LinkIt 7697 BlocklyDuino,所撰寫的程式碼。

 

6.可透過這個系統,學習RFID的概念。

 

進一步交流

關於如何自造智慧門禁系統,應是因製作步驟較複雜,曾希哲老師只簡單提及,就是拆解系統各部分功能,然後進行各單元製作、測試,逐步組成為一個完整系統。若讀者閱畢本文,有興趣進一步了解此系統,歡迎直接至曾希哲老師的臉書頁面與他交流。

 

前文提及,曾老師設計、製作此系統很重要的原因,是為了實踐把手機當成藍牙鍵盤。而他是用BlocklyDuino撰寫藍牙鍵盤的程式,若讀者想更多了解,可點此下載原始程式碼。

 

結語

總之,曾希哲老師目前正積極測試LinkIt 7697擴充板的各式功能,若後續有任何消息、成果,CAVEDU教育團隊也會成為報馬仔,透過技術部落格或臉書粉絲專頁,跟讀者們分享,敬請期待!

 

附錄:

曾希哲老師以BlocklyDuino撰寫藍牙鍵盤的程式碼

/*
 * Generated using BlocklyDuino:
 *
 * https://github.com/MediaTek-Labs/BlocklyDuino-for-LinkIt
 *
 * Date: Wed, 27 Jun 2018 18:58:00 GMT
 */

#include <LRemote.h>

int SetPasswd;

int PhonePasswd;

int c;

String S1;

String S2;

String S3;

String S4;

String InputPsaawd;

String OpeningDoor;

String PasswdError;

LRemoteLabel label1;
LRemoteButton button7;
LRemoteButton button8;
LRemoteButton button9;
LRemoteButton button4;
LRemoteButton button5;
LRemoteButton button6;
LRemoteButton button1;
LRemoteButton button2;
LRemoteButton button3;
LRemoteButton button0;
LRemoteButton button10;

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  LRemote.setName("LinkIt 7697");
  LRemote.setOrientation(RC_PORTRAIT);
  LRemote.setGrid(3, 5);
    label1.setPos(0, 0);
    label1.setText("Input Password");
    label1.setSize(3, 1);
    label1.setColor(RC_ORANGE);
    LRemote.addControl(label1);

    button7.setPos(0, 1);
    button7.setText("7");
    button7.setSize(1, 1);
    button7.setColor(RC_BLUE);
    LRemote.addControl(button7);

    button8.setPos(1, 1);
    button8.setText("8");
    button8.setSize(1, 1);
    button8.setColor(RC_GREEN);
    LRemote.addControl(button8);

    button9.setPos(2, 1);
    button9.setText("9");
    button9.setSize(1, 1);
    button9.setColor(RC_BLUE);
    LRemote.addControl(button9);

    button4.setPos(0, 2);
    button4.setText("4");
    button4.setSize(1, 1);
    button4.setColor(RC_GREEN);
    LRemote.addControl(button4);

    button5.setPos(1, 2);
    button5.setText("5");
    button5.setSize(1, 1);
    button5.setColor(RC_BLUE);
    LRemote.addControl(button5);

    button6.setPos(2, 2);
    button6.setText("6");
    button6.setSize(1, 1);
    button6.setColor(RC_GREEN);
    LRemote.addControl(button6);

    button1.setPos(0, 3);
    button1.setText("1");
    button1.setSize(1, 1);
    button1.setColor(RC_BLUE);
    LRemote.addControl(button1);

    button2.setPos(1, 3);
    button2.setText("2");
    button2.setSize(1, 1);
    button2.setColor(RC_GREEN);
    LRemote.addControl(button2);

    button3.setPos(2, 3);
    button3.setText("3");
    button3.setSize(1, 1);
    button3.setColor(RC_BLUE);
    LRemote.addControl(button3);

    button0.setPos(0, 4);
    button0.setText("0");
    button0.setSize(1, 1);
    button0.setColor(RC_GREEN);
    LRemote.addControl(button0);

    button10.setPos(1, 4);
    button10.setText("Clear");
    button10.setSize(2, 1);
    button10.setColor(RC_ORANGE);
    LRemote.addControl(button10);
  LRemote.begin();
  SetPasswd = 10;
  PhonePasswd = 0;
  c = 0;
  digitalWrite(LED_BUILTIN, LOW);
  S1 = "*";
  S2 = "**";
  S3 = "***";
  S4 = "****";
  InputPsaawd = "Input Password";
  OpeningDoor = "Opening Door";
  PasswdError = "Password Error";
}


void loop()
{
  LRemote.process();
  if (button0.isValueChanged()) {
    if (button0.getValue() == 1) {
      c = c + 1;
      if (c == 1) {
        PhonePasswd = PhonePasswd + 1;

      }

    }

  } else if (button1.isValueChanged()) {
    if (button1.getValue() == 1) {
      c = c + 1;
      if (c == 2) {
        PhonePasswd = PhonePasswd + 2;

      }

    }
  } else if (button2.isValueChanged()) {
    if (button2.getValue() == 1) {
      c = c + 1;
      if (c == 3) {
        PhonePasswd = PhonePasswd + 3;

      }

    }
  } else if (button3.isValueChanged()) {
    if (button3.getValue() == 1) {
      c = c + 1;
      if (c == 4) {
        PhonePasswd = PhonePasswd + 4;

      }

    }
  } else if (button4.isValueChanged()) {
    if (button4.getValue() == 1) {
      c = c + 1;

    }
  } else if (button5.isValueChanged()) {
    if (button5.getValue() == 1) {
      c = c + 1;

    }
  } else if (button6.isValueChanged()) {
    if (button6.getValue() == 1) {
      c = c + 1;

    }
  } else if (button7.isValueChanged()) {
    if (button7.getValue() == 1) {
      c = c + 1;

    }
  } else if (button8.isValueChanged()) {
    if (button8.getValue() == 1) {
      c = c + 1;

    }
  } else if (button9.isValueChanged()) {
    if (button9.getValue() == 1) {
      c = c + 1;

    }
  } else if (button10.isValueChanged()) {
    if (button10.getValue() == 1) {
      label1.updateText(String(InputPsaawd));
      c = 0;
      PhonePasswd = 0;

    }
  }
  if (c == 1) {
    label1.updateText(String(S1));

  } else if (c == 2) {
    label1.updateText(String(S2));
  } else if (c == 3) {
    label1.updateText(String(S3));
  } else if (c == 4) {
    label1.updateText(String(S4));
    delay(500);
    if (SetPasswd == PhonePasswd) {
      label1.updateText(String(OpeningDoor));
      digitalWrite(LED_BUILTIN, HIGH);
      delay(5000);
      digitalWrite(LED_BUILTIN, LOW);

    } else {
      label1.updateText(String(PasswdError));
      delay(5000);

    }
    label1.updateText(String(InputPsaawd));
    c = 0;
    PhonePasswd = 0;
  }
  delay(100);
}

 

相關文章

[教學文] 係金ㄝ !!不需3D列印外觀元件,也能製作的機械生物——OTTO Like

原本,筆者將此作品命名為「果凍步兵」,但命名後,總感覺已跳脫原始設定的框架,於是便改為前輩Bridan Wang大哥所稱的「OTTO Like」吧!也透過此命名,向Otto開源者Camilo Parra Palacio表達無限敬意!

作者/攝影

機甲人形師 林益成

文章分類教學技術文
時間

成本
難度
材料表
  • Arduino nano X 1組

  • Nano多用擴展板 X 1 組

  • 伺服馬達SG90 X 4 顆

  • 開關(有段)X 1 顆

  • 塑膠罐 X 1 個

  • 塑膠(木)板 X 2 片

  • L型機構件X 2 片

製作緣起

2017年偶然在網路上看見Otto機器人,心中十分喜愛,但因當時手邊並無3D列印機,因此無法列印自造⋯⋯(遺憾啊啊啊……)。

 

在入手3D列印機後的某一天,想起了這過往的殘念,因此在Thingiverse網站取得開源資料後,迫不及待地列印、組裝,同時也下載製作了同類型、貌似青蛙的 arduped。當時,為讓Otto和arduped二者看起來更協調,因此筆者硬是改掉了Otto的腳部。以下是它們共舞的影片:

 

之後,因爲花在3D列印上的時間過長,並且希望外觀上能有更高的自由度,筆者開始試以生活周遭方便取得的物品進行製作。以下是首次試作作品的影片:

 

筆者個人一個很大的願望,是讓沒有3D列印機的朋友們,也能享受自造類Otto機器人的樂趣。因此,透過本文將個人研究成果與讀者們分享,也期待有一天能看見大家製作出更多作品。

 

製作過程

一、本體製作

Step1:開鑿相關機構孔位

圖1

 

Step2:組裝伺服馬達及電源開關

圖2

 

二、腿部製作:

Step3:將伺服馬達擺臂固定於L型機構件(需製作二組)

圖3

 

三、腳掌製作:

Step4:將伺服馬達黏著固定於塑膠板上

圖4

 

四、腿部安裝:

請參考圖5

圖5

 

五、腳掌安裝:

請參考圖6

圖6

 

六、完成Arduino程式燒錄及配線

七、素體完成

圖7

 

八、請讀者們發揮豐富的想像力,以泡棉、瓦楞紙等素材,為Otto like自造出獨一無二的外型吧!

 

相關作品

因考量後續作品會參與某些公開展示的活動,考量到強度及保存,故使用3D列印製作外型零件。目前筆者製作了三架以日系妖怪為主題的Otto like:

 

1.化貍-文福茶鍋

圖8

 

2.河童

圖9

 

3.天狗

圖10

 

目前排定參展的活動:

  • 10/19-21 TIRT全能機器人國際邀請賽暨桃園觀光工廠創客嘉年華

  • 11/2-4 Maker Faire Taipei 2018

 

屆時歡迎讀者們蒞臨展攤「機甲人形師的覓星工坊」,也歡迎至我個人的FB粉絲專頁交流:https://www.facebook.com/lyclovetyc/。而因我過去製作機器生物,有使用過ROSA系統,若讀者想更多了解這個系統,請參考:https://4rdp.blogspot.com/2017/09/rosa-38-robot-like-otto.html?m=1,謝謝。

 

備註:根據小編與作者機甲人形師林益成討論後,他表示,因近來比較忙碌,暫時抽不出時間寫給LinkIt 7697的Otto程式,所以先以Arduino測試。但未來不排除寫給LinkIt 7697的Otto程式,請讀者們靜待好消息囉!若想購買相關的開發板,請點這裡

 

相關文章

[ 教學文 ]你好,我會走路、唱歌跳舞跟偵測障礙物喔!——一起動手做超級卡哇伊的機器人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

 

相關文章

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

作者/攝影

熊大

文章分類介紹文
時間

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

  隨著物聯網蓬勃發展,各家廠商皆推出物聯網開發平台,使開發者更容易發揮創意,做出各種物聯網應用。而國內科技大廠聯發科技於這幾年開始,相繼推出幾塊物聯網開發板,包含全功能聯網 (GSM/GPRS/Wi-Fi/Bluetooth/GNSS) 的 LinkIt ONE;可使用 OpenWrt (Linux) 開發較高端應用的 LinkIt Smart 7688/7688 Duo;於2017年6月又偕同Seeed Studio 推出了最新的物聯網開發板 LinkIt 7697。

 

  LinkIt 7697使用 MT7697 作為主控制器,該晶片核心為主流的 ARM Cortex-M4(含浮點運算器),運行時脈為192MHz,同時提供 Wi-Fi 和 BLE(低功耗藍芽)兩種通訊最主要的通訊功能。軟體部分採用最為廣泛地FreeRTOS為作業系統,同時也提供 Arduino 開發環境,為目前學習開發物聯網應用的最佳開發平台之一。

圖1 LinkIt 7697

 

LinkIt 系列開發板比較

  LinkIt ONE 於 2014 年推出,為市面上少見具備 GSM/GPRS/Wi-Fi/BT/GNSS 多功能通訊的 Arduino 相容開發板,但隨著台灣電信商2G系統的關台,缺少了GSM/GPRS 的支持,LinkIt ONE 就缺少最主要的特點了。

 

  目前LinkIt系列開發板針對物聯網應用,主要是提供兩個系列開發板:LinkIt Smart 7688/7688 Duo 用於較高階IoT節點或Gateway使用,可使用高階語言(Python/JS)與眾多Linux套件進行開發。而LinkIt 7697 則定位成較輕量的結點。

LinkIt Smart 7688
LinkIt Smart 7688 Duo
LinkIt 7697
定位較高端 IoT 節點
Gateway
較輕量 IoT 節點
微控制器MT7688 (MIPS)MT7697 (ARM Cortex-M4F)
主頻580Mhz196Mhz
RAM128MB352KB
Flash32MB4MB
開發環境OpenWrt (一種Linux)
Arduino (Duo only)
FreeRTOS + Arduino
開發語言C/C++/Python/JSC/C++/Blockly
Wi-Fi802.11 b/g/n802.11 b/g/n
BluetoothBLE 4.2
Ethernet10/100 PHY
USBHost
SD CardMicroSD

表一

 

LinkIt 7697 的優點

  對一位想學習物聯網者的開發者而言,如果需要一個Arduino相容開發板,而且又有連網需求,那麼LinkIt 7697可說是相當好的選擇,因為LinkIt 7697包含以下幾項優點:

  • 使用Arduino開發環境

  • 內建 Wi-Fi / BLE,並包裝成好用的函式庫,能輕鬆連結雲端和手機。

  • 足夠的內存(352K RAM /4MB Flash),可運行更複雜的應用。

  • 官網內容相當豐富,聯發科技的工程師也會在粉絲頁提供技術問題解答。

 

外觀功能介紹

  LinkIt 7697的大小,特別設計成能置入於麵包板上,並留有排針腳位可插杜邦線。開發板包含TX/RX LED,會於燒錄軟體或是透過序列埠有在傳送資料時閃爍,PWR LED會於有外部供電時點亮,USR LED則接至PIN 6可透過軟體控制。RST按鈕會重新開機,USR 按鈕可供使用者當作基本的輸入使用。LinkIt 7697開出了18 根可用腳位,可設置成GPIO (18),UART(2),I2C(1),SPI(1),PWM(18),EINT(4),ADC(4),IrDA(1)和I2S(1),除了ADC是 0至2.5V外,其他功能的工作電壓皆為3.3V。板子上有一個 MicroUSB 接頭,用於連接PC以燒錄軟體和供電(5V)。

圖2 麵包版上留有兩排排針腳位可插

 

多樣的開發環境

  LinkIt 7697針對不同族群的開發者,提供了三種開發環境:

  1. GCC/KEIL/IAR : 提供給專業物聯網產品開發者的開發除錯環境,直接使用SDK進行開發,擁有最佳開發彈性且能優化出最佳效能。

  2. Arduino IDE:提供給Maker/教育教學者的開發環境,完全相容於Arduino的程式語法,並包含LinkIt 7697獨家功能,例如LWIFI、LBLE、MCS(MediaTek Cloud Sandbox)、LFlash、LRTC及LRemote 等好用函式庫,大幅降低各種物聯網應用的開發門檻。

  3. BlocklyDuino : 提供物聯網入門開發者的視覺化積木開發環境,透過簡單的積木拖拉就可組合出各種邏輯應用。BlocklyDuino 會將積木轉換成 Arduino 程式,也可作為從視覺化積木轉換至Arduino程式語言的學習工具。

 

GCC/KEIL/IAR

Arduino

BlocklyDuino

C/C++Wiring(C/C++)Blockly(視覺化方塊)
專業開發者Maker/教育工作者教育工作者
最高彈性
最高效能
開發複雜度較高
豐富的軟硬周邊資源

封裝過好用的函式庫

簡易使用

 

表二

 

相關文章

 

[ 密技 ] 如何製做出可挑戰「創意皂飛車競賽」動力組的作品

2018年6月9日在淡江大學要舉辦全台第一場,可能也是亞洲第一場,使用無動力小車(Nerdy Derby)軌道的動力攀登競賽。在比賽之前,分享一些製作心得,以及創作時的注意事項。

作者/攝影

腦波弱老闆包辦大部分,感謝允赫、琮琮提供作品,還有紅聲數位的阿凱幫忙畫圖。

文章分類教學文
時間

10分鐘起跳

成本O元起
難度中等
材料表
  • 田宮大腳車*1

  • Linkit 7697 + RoboShield (選購連結),或是 LEGO EV3。

 

  2018年6月9日在淡江大學要舉辦全台第一場,可能也是亞洲第一場,使用無動力小車(Nerdy Derby)軌道的動力攀登競賽。這個比賽還是由科技部指導,南科AI_ROBOT自造基地贊助的喔!

 

  整個活動包括了上午的無動力組工作坊,將由「Maker一哥」鄭鴻旗主持。下午就都是比賽時間了,分成無動力組和動力組,動力組又分成競速攀登組與動力折返挑戰組。比賽詳情可以看這裡:創意皂飛車競賽

 

報名不但不用錢,還有獎金可以領喔!

不過,這篇文章的重點是,如何打造一台可以完成挑戰的車子

 

  首先分析一下軌道,軌道是由四片木板組合而成,中間兩片較高,寬約34mm,高低落差約為6mm,軌道全寬約68mm。

圖1

 

  由此可知,車體設計時,輪胎接地點至車底高度需大於6mm,輪胎內距需大於34mm。

 

  重點在於車體的「重心」位置,四個輪子的接地點所圍起來的區域為支撐區,當坡度改變,不論是上坡或下坡,只要車體重心不要落在支撐區外,就不會翻車了。

 

  重心位置愈低愈好,所以車體零件中比較重的零件,如電池、馬達、EV3主機皆盡量裝在較低的位置。而支撐區愈大愈好,而輪胎的左右距離受限於軌道寬度,只能從增長前後輪距著手,但車體太長,可能會卡在軌道坡度變換的區域,請謹慎選擇。

 

軌道側視全圖:

圖2 (修改自Nerdy Derby所提供的設計圖)

 

  不過,這次車子是沿著軌道跑,軌道除了上下起伏之外,沒有左右轉彎的需求。所以,輪子的轉向、差速機構皆可以不用準備,只要注意車體左右配重,以及左右輪胎受力狀況一致就可以。

 

  由設計圖得知,坡道斜約30度,除了夠力的馬達,你還需要抓地力夠強的輪胎。輪胎斷面較寬、較高的會比較適合。

 

圖3

 

  我們情商了創作者,先把他們的作品分享給大家參考。這是使用LEGO EV3:

圖4

 

競速攀登影片:

 

動力折返影片:

 

  或許你會發現,上述許多條件都是互斥的,例如重心要低但輪胎又要大,然而,創作的樂趣就是在諸多限制中,找到最佳平衡點。

  比賽規則與比賽道具,還是要以主辦單位公告與現場陳列的為準喔。

 

相關文章

[新品介紹]MIT App Inventor Codi Bot物聯網教學互動機器人

作者/攝影曾吉弘
文章分類產品介紹
時間
成本
難度*  (1~10)
材料表

對於會寫程式的人來說,Python/C/Java是完全不同的程式語言。但對於沒接觸過的人來說,通通都是一樣的:很可怕。因此程式語言需要一個圖騰來代表,例如,Scratch的那隻小貓、 Linux的企鵝、Java的咖啡,以及Android的小機器人⋯⋯等等,在相關場合中,我們都可以看見這樣的代表符號。

    MIT App Inventor去年發起了一項募資計畫,目標是加速App Inventor 的 iOS版本。贊助$1500美金以上者可以收到一套實體的物聯網教育套件,但這時大家對於內容還不是很清楚應該如何規劃。Hal Abelson教授就問是否可以幫忙?

當然可以啦,不就是為了幫忙才去MIT的嗎?

輪型或多足型機器人設計相關課程算是CAVEDU教育團體的專長,但MIT App Inventor小組盼望能結合它們的新logo,因為之前的logo太Android了,所以他們於去年推出了新的小蜜蜂logo,與Android 3.0 honeycomb 相當神似。

經過一番努力之後,MIT App Inventor Codi Bot 誕生了!

圖1

MIT App Inventor Codi Bot在設計上有幾項重點:

可愛、易用、教育、可擴充

特色:

為了讓使用者更易入手,我們開發了 LinkIt 7697 的 App Inventor extension,(個人覺得比Arduino 101的好用多了)。LinkIt 7697端只要上傳一次程式就可以順利與App Inventor溝通,也就是使用者只要專心寫App Inventor程式即可。如果在辦短期營隊或是體驗活動的時候,可以先把LinkIt 7697準備好,這樣可以省去現場上傳程式的各種麻煩事。

核心使用 LinkIt 7697Robot Shield V2.0,這樣使得整理電線變得很輕鬆,國內也有許多團隊使用兩者開發出許多有趣的專題。

當然,Codi Bot能做的不只是如此,7697 可以結合 MediaTek Cloud Sandbox等雲端服務結合LINE、IFTTT等通訊軟體

 

教學文件:

  • 單機執行:直接執行 (影片)
  • LED:使用按鈕、滑桿來控制翅膀與底座的LED (影片)
  • 翅膀:使用按鈕、滑桿來控制翅膀(伺服機) (影片)
  • 聲音:控制蜂鳴器發出各種音符或自訂義頻率與時間長度 (影片)
  • 完整app:整合上述功能 (影片)

來看實體照片吧,LED亮起的時候真的很漂亮,影片中可以看到翅膀拍動以及發出聲音的效果。

 

圖2

 

圖3 背面

 

圖4側面

    開發過程中,非常感謝聯發科技實驗室MiniPlan,CAVEDU同仁的超強後勤。

7697 extension感謝林祥瑞袁佑緣兩位小超人,以及MIT App Inventor Codi Bot的設計者:游允赫老師。

比較一下 MIT App Inventor的logo 與 Android 3.0 honeycomb:

圖5 App Inventor的logo

 

圖6 Android3.0 honeycomb

 

相關文章: