Quantcast
Channel: CAVEDU教育團隊技術部落格
Viewing all 678 articles
Browse latest View live

[回顧] 2017小小自造者冬令營(下)篇

$
0
0

上篇文章介紹了小小自造者冬令營前兩天的課程,這篇文章將繼續為大家詳細介紹這群小小自造者在最後兩天的營隊中還進行了什麼好玩的課程。

作者/攝影   陳亭妏/ 吳怡婷、陳亭妏
課程時間   2017/01/23-01/26
課程講師   吳怡婷、陳亭妏、郭皇甫
課程場地   機器人王國

課程介紹來到了第三天,今天早上也是戶外課程,我們來到了再生藝術工坊,在這裡,透過創意手作,所有看似廢棄的材料都能夠重獲新生。我們要在這裡進行CIY(Create It Yourself)的課程,讓小小自造者們認識再生材料。

謝謝之軒老師為大家導覽再生藝術工坊,透過詳細的介紹,大家不但認識了再生藝術工坊以及再生材料,也從中明白了環保的重要性。

接下來,大家要用再生材料做什麼呢?

進入了工坊,首先映入眼簾的就是這個讓大家都雀躍不已的十公尺超長軌道,之軒老師跟大家介紹,這是Nerdy Derby無動力軌道車的比賽軌道,大家要運用工坊提供的再生材料,製作出獨一無二的小車,而這台小車不僅要顧及外觀,還要考慮速度與脫軌等等問題~

有許多孩子是第一次使用鐵鎚,在老師的協助下,大家害怕受傷的心情也逐漸煙消雲散,也越來越能得心應手的使用工具了!










在大家專注於製作小車時,一眨眼就中午了!午餐過後,大家終於要開始挑戰十公尺的超長軌道囉!

挑戰過程中,大家都屏氣凝神地盯著自己的小車,用力祈禱不要掉出軌道。

Nerdy Derby的活動就在孩子們挑戰成功的歡呼中落幕了,我們搭著公車搖搖晃晃地回到教室,準備迎接第三天的最後一堂課程。

再過兩天就是農曆新年了,老師們提供了紅包紙,我們要來寫春聯囉!大家一開始先腦力激盪一番,想出跟雞年有關的成語,以及拜年常說的吉祥話。拿起毛筆,大家下筆時都比往常更加小心翼翼,就怕破壞了畫面。


讓我們來看看大家如何圖文並茂的呈現出各式各樣的創意春聯吧~

年年有餘,菜菜今年有好多魚啊~

大家畫了好多吉祥的小圖在成語旁邊,除了小魚以外,還有元寶、公雞等等,畫面非常豐富。

對寫書法很講究的沂學,一筆一畫都非常的仔細。

最後大家的作品擺在一塊晾乾,作品完成越多,越能感受到濃厚的過節氣息,孩子們還紛紛嚷著老師這個紙好香喔~想必是已經開始期待除夕夜的壓歲錢啦!

小小自造者營終於來到了最後一天,第一堂課是皇甫老師的Scratch課程,跟以往的Scratch課不同的是,這次使用的是單板電腦Latte Panda~透過皇甫老師的介紹,大家在上課之前,先認識了這塊厲害的小小熊貓。


開機囉~~~~~

皇甫老師開始介紹Scratch的介面與功能,今天大家的目標是完成由老師設計的遊戲半成品,完成過後,不僅能抓到遊戲中預設的水箭龜,還能抓到兩天前大家自己創造的寶可夢喔!

在開始寫寶可夢程式之前,老師先讓大家先來個基礎練習,讓Scratch小貓動起來。

大家熟悉Scratch之後,就能開始挑戰寶可夢程式啦~

程式欄越來越豐富了,大家的目標是丟出寶貝球後能夠順利收服隨機出現的寶可夢!


看到自己畫的寶可夢出現在螢幕上,更激發了大家想要順利完成程式的慾望~

 

在大家同心協力的努力之下,每個人都順利地抓到自己的寶可夢啦!一陣腦力激盪過後,孩子們都餓昏了,不過今天的午餐要自己動手做喔!這天剛好是小年夜,怡婷老師先跟大家聊聊過年要吃水餃的習俗,不僅因為水餃象徵元寶,裡面包的餡也藏著新年的祈望。大家圍著桌子,一起看老師們示範包水餃,再自己挑戰。





大家包的水餃都非常漂亮啊!而且每個都有黏得緊緊的,沒有在鍋子裡分離喔~最後配著可口的玉米濃湯,大家開心地飽餐一頓,補充滿滿的體力準備迎接最後半天的課囉!

過年系列的第二堂課要來畫紅包,但是今天要使用的媒材是金粉!大家聽到吹金粉時都似懂非懂,阿圓老師拿出了範例讓大家摸摸看,原來金粉加熱過後,就能呈現出燙金一樣的質感~

首先要先用膠水在紅包上創作,但是速度要快,以免金粉黏不上去。


畫好後就能來灑金粉囉~阿圓老師幫忙把金粉撒勻,再交給怡婷老師協助,利用熱風槍加熱金粉。

最後再用墨水點綴就完成囉!閃閃發亮的金字與紅包的搭配看起來喜氣洋洋,大家可以帶回去給爸媽包壓歲錢啦~




最後一堂課要讓大家自己創作桌遊,孩子們要用樂高設計關卡與關卡的外觀,最後集合作品圍成一圈大富翁!


每個人的作品都只是大富翁的一小部分,但是當大家的成果一起呈現時,畫面變得非常的壯觀!大家都迫不及待想開始遊戲了~



一起擬定規則、一起設計關卡、一起處罰也一起過關,一起努力創造的遊戲玩起來也特別好玩,歡樂的小小自造者營就在此起彼落的笑聲中來到了尾聲。透過這個營隊,不僅帶給孩子們學校沒教的有趣知識,體會動手做的美好,結交到好朋友,最重要的還是讓大家在笑聲中學習,更能獲得動手嘗試不怕失敗的勇氣。

 

相關文章:

 


[翻模好好玩] 做隻百變怪吧!印模粉+石膏篇(CAVEDU實驗史上成功率最高翻模套組)

$
0
0

試過兩三種翻模方式後,真心認為這是最簡易且容易成功的翻模方式,並且十分適合親子活動,除了印模粉的味道很像草莓牙膏外,乾膜時間也很短暫,小朋友很容易就可以從翻模課程得到成就感,也因為翻模時間變短,所以不小心自己也多翻了幾個樣品,有百變怪及可愛小熊。大家就一起來看看吧!

作者/攝影   趙偉伶
時間   2小時
成本
  • 總計約$300
難度   *
材料表
  • 準備材料有
    1. 印模粉(可google印模粉即可找到買的地方)
    2. 石膏粉(一般材料行)
    3. 容器4個(建議使用回收紙碗)
    4. 報紙或廢紙
    5. 竹筷子
    6. 電子秤
    7. 想要翻模的物品

在翻模前先帶大家認識一下,本次翻模的材料

首先,印模粉成分是由海藻膠所組成,無毒,使用方便,容易清洗

再來,石膏粉是由二水硫酸鈣所組成,無毒,但須注意當石膏開始硬化會開始放熱,不要好玩把手放在石膏漿內等其硬化,嚴重可能會灼傷

了解材料特性後,大家一起動手做吧!本次翻模有兩大部分

 

第一部分、利用印模粉做出母模

先鋪好廢紙,並將容器放在電子秤上歸零

倒入印模粉:水=4:5 的比例下去攪拌,本次實驗使用100克的印模粉及125克的水下去調和

     

開始攪拌,可以用竹筷子攪拌,但也可以讓小朋友嘗試用手攪拌(印模粉並無毒性),可以感受一下印模粉的觸感,並去體會硬化的過程

     

將想要翻模的物品放在另一個紙杯中並倒入印模粉,本次翻模物品為百變怪

(翻模物品盡量有點重量,不然就需要固定材料在容器底部)

將液體倒超過物品一公分以上,不然成模後容易被破壞

接著,敲擊容器底部,使溶液中氣泡釋出

等待大約30分鐘後(可依照剩下的溶液做判斷是否硬化的標準)

破壞紙杯,即可取出成品

   

從模具底部挖出翻模物品

   

中間的空洞就形成母模了

 

第二部分、利用母模做出石膏模型

首先一樣,先將杯子放在電子秤上歸零

接著加入水:石膏粉= 8:10的比例做調和

(這並非正確的比例,因石膏粉材容易吸水,所以可依感覺調和至像泥漿般即可,石膏會依濃度而改變硬化的時間,所以不要太濃,以免乾的太快,如無法理解請依照比例做調和)

特別注意:必須先放水再慢慢加入石膏粉,不然會像太白粉一樣攪不開

   

攪拌調和完成後請立即放入母模,可用手及筷子進行調和,用手進行調和時,可感受到石膏硬化時微微的放熱,但請勿故意將手放進石膏內等其硬化,有可能會導致灼傷(很重要,所以講第二次)

  

等待大約20分鐘,石膏即硬化完成(因為當天調和的石膏漿不同,會有些微的變化)

將印模粉做的母模破壞後,即可得到百變怪成品

將將將將~~可愛百變怪出來了

之後多的石膏粉及印模粉結合樂高積木做出小熊

小熊被淹死了~~

積木是小熊跟百變怪的家呢~~

整體等待時間大約為一小時,算是個滿快速就完成的翻模作品,整體翻模效果也十分良好,連百變怪細微的表情都翻得出來,在上個色就是完美的作品了呢!!

期望大家都能做出讓自己滿意的作品歐~

 

相關文章:

[翻模好好玩]寶石翻模DIY—環氧樹酯

[好用的物聯網開發工具] 使用Node-RED工具,讀取聯發科雲端感測器資料(MediaTek Cloud Sandbox資料通道數值)

$
0
0

大家好!我是偉和

繼上次成功在Node-RED中顯示「當下時間」,既然Node-RED是讓開發者有更方便的環境去撰寫關於物聯網應用的程式,在眾多的雲服務中,本篇選用Mediatek Cloud Sandbox(以下簡稱MCS)作為資料傳輸、讀取的對象。

本篇要教導各位如何透過Node-RED將MCS裡的資料通道數值讀取,並且顯示至Node-RED的Debug上。

作者/攝影   偉和
時間   依個人而訂
成本   無
難度   * * *
材料表
  • 個人電腦(無系統限制)

1. 從方塊區的input中將Inject拉至程式撰寫區,此方塊控制我們讀取MCS的頻率

2. 快速點擊timestamp二下設定重複執行的條件

3. 勾選「Inject once at start?」

4. 從方塊區function中將function拉至程式撰寫區

5. 快速點擊二下function
在Name中輸入「header」、在Function中輸入 (將紅字更改為自己MCS的deviceKey)

msg.headers = {'deviceKey' : ':Your deviceKey'};
return msg;

6. 將「Function(header)」的左邊點點與「timestamp」右邊點點相接起

7. 從方塊區function中將「http request」拉至程式撰寫區

8. 快速點擊二下http request將下列網址輸入至URL欄中(將紅字更改為自己MCS的deviceID及datachannel)

http://api.mediatek.com/mcs/v2/devices/:Your deviceID/datachannels/:Your datachannel/datapoints.csv

9.在「Name」輸入想要的名稱,本篇使用「request」,完成後按下Done鈕就會變成如下圖的樣子

10.將「header」右邊的點點與「request」的左邊點點相接起來

11.從方塊區output中將「http response」拉至程式撰寫區

12.將「request」右邊的點點與「http(http response)」的左邊點點相接起來

13. 為了觀看從MCS中讀取到的資料通道之訊,我們從方塊區output中將「debug」拉至程式撰寫區,並與「request」相接

14. 點擊 執行,就可以在除錯區看到讀取到的資訊了!

 

相關文章:

[LinkIt One 教學] 連接 LinkIt ONE 到 MediaTek Cloud Sandbox

[TJBOT紙板機器人] 第一次製作機器人就上手-程式進階篇_語音控制LED

$
0
0

本文將介紹如何在 Raspberry Pi 上設定 TJBot 所需之硬體與軟體環境,並結合 IBM Bluemix 的 Sppech to text 服務打造一台能以語音指令控制LED的機器人。

機器人外殼組裝請參考:http://wp.me/p3T9Qk-5B1

作者/攝影   曾吉弘
時間   6小時(組裝、環境設定與編寫程式等)
成本
難度  * * * * * * *
材料表
  • TjBot紙板模型(未組裝) X1
  • 樹莓派 Raspberry Pi 3 Model B X1
  • 5V3A USB交換式電源供應器 X1
  • Class 10 16G micro SD卡 X1
  • 小喇叭 X1
  • USB 迷你麥克風 X1
  • LED 5mm 白發紅光 X1
  • SG90小型伺服機 X1
  • EIC 170孔麵包板 X1
  • 電阻 220歐姆 X1
  • 線材 X1

1.Raspberry Pi設定

請燒錄最新的 Raspbian 作業系統讓 Raspberry Pi 開機,本文使用 Raspberry Pi 3,但經測試,Raspberry Pi 2 也可正常使用。

2.安裝所需套件

Raspberry Pi 連上網路之後,請依序在 Raspberry Pi 的 terminal 中執行以下指令:

  • sudo apt-get update   (更新可用軟體)
  • sudo apt-get dist-upgrade   (升級軟體)
  • curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –
  • sudo apt-get install -y nodejs   (安裝js)
  • sudo apt-get install alsa-base alsa-utils (安裝alsa聲音程式)
  • git clone https://github.com/ibmtjbot/tjbot.git (取得本專案之github source)
  • cd tjbot/recipes/speech_to_text (切換到指定資料夾)
  • npm install   (安裝所需之npm套件與檔案)
  • npm install onoff

安裝完之後您的資料夾應該長這樣,有一個 /node_modules 資料夾,裡面是必要的函式庫:

3. Bluemix 設定

本段將介紹如何在 IBM Bluemix 上建立一個 Speech to text 服務。這個服務可以把我們對麥克風說的話轉成文字,讓Raspberry Pi 來辨識並執行對應動作

請註冊一個免費的 IBM bluemix 帳號

 

完成之後完成之後可於畫面左上角點選 [服務]/ [Watson] 即可看到我們所建立的 my-stt-service 服務。

4. 所需零件

所需硬體

   5. 硬體設定

請如下圖連接硬體,GND接到 Pi 的GND,LED則分別將正極接到Raspberry Pi 3 的GPIO14腳位(下圖右排,第4隻),負極則接到Raspberry Pi 3 的GND腳位(下圖右排,第3隻)

 

stt.js

程式大致上分成以下步驟:

  1. 設定Bluemix
    在此須正確輸入您的 Bluemix 帳號密碼
  2. 設定麥克風
    設定麥克風來取得您說話時的語音輸入檔。更多資訊請參考https://www.npmjs.com/package/mic
  3. 把語音指令轉成文字
    本步驟會把麥克風所錄製的聲音檔送到 “Watson Speech to Text”服務,並以”textStream” 回傳轉譯後的文字。可用的語系有以下,請由程式碼中的 var recognizeparams = {
    content_type: ‘audio/l16; rate=44100; channels=2’,
    model: ‘en-US_BroadbandModel’
    };

來設定:

  • zh-CN_NarrowbandModel
  • zh-CN_BroadbandModel
  • pt-BR_NarrowbandModel
  • pt-BR_BroadbandModel
  • ja-JP_NarrowbandModel
  • ja-JP_BroadbandModel
  • fr-FR_BroadbandModel
  • es-ES_NarrowbandModel
  • es-ES_BroadbandModel
  • en-US_NarrowbandModel
  • en-US_BroadbandModel (預設)
  • en-UK_NarrowbandModel
  • en-UK_BroadbandModel
  • ar-AR_BroadbandModel

4.解析文字

在此會在解析後文字中找尋有沒有我們所設定的關鍵字,例如”on”、”off”與”light”。您可以說各種組合,例如”lights on”、”turn the lights on”或”turn on the lights”等等,在此我們使用的文字解析服務而非單純的字串辨識。您可由 parseText 函式中可看到定義關鍵字的方式,您可以根據這樣的架構加入更多關鍵字以及配對,一步步讓您的TJbot 更聰明。

/************************************************************************
* Copyright 2016 IBM Corp. All Rights Reserved.
*
* Watson Maker Kits
*
* This project is licensed under the Apache License 2.0, see LICENSE.*
*
************************************************************************
*
* Control a NeoPixel LED unit connected to a Raspberry Pi pin through voice commands
* Must run with root-level protection
* sudo node stt.js

 Based on example NeoPixel code by Jeremy Garff (jer@jers.net)

 Follow the instructions in http://www.instructables.com/id/Use-Your-Voice-to-Control-a-Light-With-Watson/ to
 get the system ready to run this code.
*/

//modified to single LED version, no NeoPixel needed, CAVEDU, Feb 2017

//STEP1
var watson = require('watson-developer-cloud');
var config = require('./config');  // gets our username and passwords from the config.js files
var speech_to_text = watson.speech_to_text({
    username: config.username,
    password: config.password,
    version: config.version
});

//STEP2
// Initiate Microphone Instance to Get audio samples
var mic = require('mic');
var micInstance = mic({ 'rate': '44100', 'channels': '2', 'debug': false, 'exitOnSilence': 6 });
var micInputStream = micInstance.getAudioStream();

micInputStream.on('data', function(data) {
    //console.log("Recieved Input Stream: " + data.length);
});

micInputStream.on('error', function(err) {
    console.log("Error in Input Stream: " + err);
});

micInputStream.on('silence', function() {
    // detect silence.
});
micInstance.start();
console.log("TJBot is listening, you may speak now.");

//設定GPIO來控制LED亮滅
var Gpio = require('onoff').Gpio;
var led = new Gpio(14, 'out');

//STEP3
var recognizeparams = {
  content_type: 'audio/l16; rate=44100; channels=2',
  model: 'en-US_BroadbandModel'  //請由此設定語系
};
var textStream = micInputStream.pipe(
    speech_to_text.createRecognizeStream(recognizeparams)
);

//STEP4
textStream.setEncoding('utf8');
textStream.on('data', function(str) {
    console.log(' ===== Speech to Text ===== : ' + str); // print each text we receive
    parseText(str);
});

textStream.on('error', function(err) {
  console.log(' === Watson Speech to Text : An Error has occurred =====') ; // handle errors
  console.log(err) ;
  console.log("Press <ctrl>+C to exit.") ;
});

function parseText(str) {
    if (containsText(str, "light") && containsText(str, "on")) {
        console.log("Turn ON");
        led.writeSync(1)
    } else if (containsText(str, "light") && containsText(str, "off")) {
        console.log("Turn OFF");
        led.writeSync(0)
    } else {
        console.log("Please say something like turn on/off the light");
    }
}

function containsText(str, keyword) {
    return str.indexOf(keyword) >= 0;
}

7. 測試與執行

請回到您的Pi,把上述程式碼中的 username 與 password 改成您個人的 Bluemix 帳號密碼即可。請在 terminal 中輸入以下指令即可執行本程式:

 

sudo node stt.js

 

請對您的 TJBot 說話吧,只要一句話中包含了關鍵字”on”與”light”,就會亮燈,如果包含關鍵字”off”與”light”則會熄燈。因此您可以說 “light on” 或是 “turn on the light” 都是可以的。

 

如果無法辨識關鍵字會提示您相關的關鍵字。從 parseText 函式中可看到定義關鍵字的方式,您可以根據這樣的架構加入更多關鍵字以及配對,讓您的TJBot 更聰明喔!

 

參考資料:

http://www.instructables.com/id/Use-Your-Voice-to-Control-a-Light-With-Watson/

 

相關文章:

[TJBOT紙板機器人] 第一次製作機器人就上手-組裝篇

[積木也能控制機械車] 來自淡江電機實驗室-兒童無電腦程式邏輯訓練營

$
0
0

放寒假期間,家中的小朋友都去哪裡玩呢? 擔心小孩整天沉溺在電腦及平板上嗎?這次CAVEDU教育團隊邀請了淡江大學電機系同學針對兒童所設計出的「無電腦程式邏輯課程」進行教學。

本次課程分成兩大部分,第一部份是機械結構訓練,第二部分則是程式邏輯及方向感認識,有了對課程的基礎認識,就讓我們一起來看課程的各項細節吧!

作者/攝影  趙偉伶
課程時間   2017 2/11
課程講師  淡江電機實驗室
課程場地   機器人王國B1教室

本次課程我們聚集了中班到小學四年級的小朋友們來參加,在教學的過程中發現小學以上的小孩較為適合本次的課程。

第一部份、機械結構訓練

我們透過組裝樂高積木,來訓練小孩子認識機械結構的能力

而今天我們要教孩子們組裝的就是這台機械手臂車

可以大致上看出他對稱的機械結構,而本次課程會教小孩半邊的結構再進而讓他們嘗試自己組出另一半的結構

老師們跟小朋友都很認真在組裝機械車呢?!

這麼多零件,要拿哪一個呢?!

老師:我這麼認真教,有沒有再聽??

學生:有歐~~~

大約小學二年級以上的學生,老師教一次就能稍微地融會貫通並自己開始組裝

但像中班的學生,就需要老師在一旁指導哪些零件要怎麼裝

經過一番奮鬥,小孩們都把零件組裝完成囉!

好累阿~終於組裝完成了

而接著經過一個午休就開始進行第二部分

 

第二部分、程式邏輯及方向感訓練

休息一陣後,就開始教小孩們如何使用程式積木了

首先先簡單介紹一下三樣控制機械車的要件:

 1.邏輯板

按下邏輯板的綠燈為「執行程式」,紅燈為「停止程式」

2.方向積木

將方向積木放邏輯板(圖七)的格子中,就能夠產生指令給車子,是用來操縱車子方向及觸碰感測器很重要的元素之一。

3.闖關圖紙

闖關圖紙的設計是希望透過不一樣的關卡讓孩子們試著使用邏輯板(圖七)及方向積木(圖八)來進行闖關及破解任務。

看孩子們認真用邏輯板讓車子移動到想要到達的地方,除了可以訓練程式邏輯之外,還能夠訓練孩子們的方向感。

在課程的過程中,有時會看到孩子因左右分不清楚而感到挫敗,但老師們也不斷激勵孩子們思考解決錯誤及邏輯重組,透過這樣子的過程讓他們能從錯誤中學習,從另一層面來說,更是訓練他們面對失敗不斷努力的精神!

課程的設計上安排了許多不一樣的關卡,讓他們從闖關中學習,並由簡單到困難。

孩子們很積極並開心地參與其中,讓學習不再是書本上的事情,而是從體驗過程中刺激出更多可能性。

完成任務及闖關時,也讓孩子們有更多的成就感以及想要更深入了解課程的興趣。

闖關結束後,老師們安排了課後娛樂「用機械車畫畫」

將機械車綁上畫筆後,孩子們開始各顯本事囉!(操控的方式當然還是使用邏輯板跟方向積木)

最後小孩們畫出的圖片呈現出大藝術家的氣息呢!

課程一開始時,孩子們對於方向及程式邏輯思考都是不熟悉的,經過課程的訓練後大家都有進步,並且愛上了使用邏輯板控制機械車畫畫這件事呢!

最後孩子們還開心地一起來個大合照呢~~~~

 

 

相關文章:

 

[老闆推坑開箱文] EGO form桌上型真空成型機VF100A好好玩

$
0
0

手滑腦波弱老闆又來了,這次跟您分享的是真空吸引機,更正,是『真空成型機』。

真空成型機可以用來做什麼呢?絕對不是用來增進身體某些部位的尺寸

真空成型是把具熱塑性的薄片材料,如聚苯乙烯(PS)、聚對苯二甲酸二醇脂(PET)、具氯乙烯原樹脂(PVC)等,大多都是塑膠類,加熱到一定的溫度後,再壓到模具上,並透過真空吸引,把材料跟模具之間的空氣抽走,一方面減少材料與模具之間空隙上,另一方面也可以讓大氣壓力幫忙讓材料更貼緊在模具上。像是小七咖啡杯的杯蓋、外帶手搖杯的杯架、包裝盒的內襯、也可用來做面具、外殼等。

 

作者/攝影   鄭建彥
時間
  •  30分鐘(開箱時間)
  • 2~5分鐘(製作時間)
成本
  • 機器一台新台幣48,800元
  • 材料一片約新台幣60~100元
難度   *

EGO form桌上型真空成型機VF100A是台灣製的喔,是位於台中的達模快速成型工作室所推出的產品。產品介紹就請參閱他們自己的網站:http://www.rp-damo.com/還有FaceBook粉絲團https://www.facebook.com/RPDAMO/

我們買的是標準型,工作範圍是340 X 240 mm

以下是開箱照

我買的是冰箱嗎,怎麼這麼大一台。

包裝很扎實,層層保護的好好的。

 

將本體搬出來,有點重,兩個人一起搬比較好。

 

主角出現了。

 

配件與耗材們,有簡單的操作說明、一雙麻布工作手套、一把剪刀、四個長尾夾,還有一個作品樣本。其他是我們加購與附贈的耗材。

 

馬上來試玩,大家如果對操作方式有興趣的話,

可以參考達模放在youtube上的影片:https://www.youtube.com/user/wingojep

 

超簡易流程說明:

固定板材 ➜ 升上去 ➜ 開始加熱 ➜ 在工作區放上模具 ➜ 材料軟化之後 ➜ 關加熱 ➜ 開始抽真空 ➜ 把板材往下壓 ➜ 成型 ➜ 拿濕抹布擦一擦 ➜ 脫模。

我們當晚試了兩個模型,第一個是我的滑鼠

下方影片是由我們拍攝的真空成型機操作影片:

 

另一個用3D印表機製作的模型,其中一個是最近很流行的穿山甲模型喔。

後來有用這個穿山甲模型來當成巧克力模具,並成功的做出穿山甲巧克力。

  

 

心得:

真空成型機操作其實不難,但是還是有些要注意的地方。

模具的形狀很重要:如果您打算在不破壞成品或模具的情況下取出,千萬要注意模具的形狀,基本上,型狀開口比本體大、有側面內凹的(像是我的ELECOM滑鼠),就不太適合。模具也要避免有銳角,免得產生破洞。模具本身要夠堅固,最好是實心的,我們也有發生過,真空開下去,模具先扁掉的悲劇。

如果有多個模具排列在工作區,他們的間隔距離就不要太近,會有醜醜的皺褶。

板材的受熱狀況不明:雖然操作幾次就可以抓到使用的眉角,但我們是注重科學與科技的人(明明就是宅宅),這種沒有量化的情況,總是有點難接受。所以我後來買了一隻紅外線測溫槍來幫助我們了解溫度變化(繼續手滑)。

 

如果你也想體驗看看,歡迎來機器人王國(台北市中正區中華路二段165號)由CAVEDU親切的講師指導,或是到高雄的Mzone大港製造特區:https://www.facebook.com/mzon.KH/(高雄市鹽埕區駁二藝術特區大勇區八號倉庫),使用辦法請洽各單位連絡人。

 

我們也會不定期舉辦相關的工作坊,請持續關注我們的FaceBook粉絲頁:https://www.facebook.com/CAVEEducation/。

 

相關文章:

[LattePanda教學] lattepanda + Azure #1 環境建置

$
0
0
作者/攝影   曾吉弘
時間   3小時
成本   Lattepanda
難度   * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

本文說明如何在lattepanda上建置 Azure IoT 相關環境,包含:

  1. 下載相關檔案
  2. 安裝Visual Studio 2015
  3. 設定Azure portal 與 Storage acount

STEP 1 下載相關檔案

接下來要說明如何建置Microsoft Azure IoT SDK for Node.js的開發環境(您也可以採用C#來開發 Azure 相關應用,後續我們會專文介紹)請根據以下步驟操作:

  • 安裝 Node.js http://nodejs.org/,您可在 cmd 中用這個指令檢查 Node.js的版本,本專案需要 0.12.x 以上:node –version
  • 在cmd下輸入 node 進入 Node.js command prompt,切換到方才從 github 下載並解壓縮的 azure-iot-sdks /node 資料夾中。請執行 build\dev-setup.cmd 完成環境建置,如下圖:

STEP2 設定微軟IoT Hub

  接下來將介紹如何在 Azure 中建立一個 IoT hub,接著讓您的裝置與 IoT hub 完成介接,兩者即可通訊了。

建立一個IoT hub

  請由 Azure Portal 建立一個可用於您裝置(Lattepanda或其他聯網裝置)的IoT hub。

  1. 登入Azure Portal,如果尚未具有帳號的話請申請一個。
  2. 請點選左上角的[+ New] -> Internet of Things,由畫面右側找到Azure IoT Hub

3.這時需要新增訂閱帳戶,在此請先點選 Free Trial 為期一個月的免費試用方案,日後您可根據個人需求選擇合適的付費方案。請注意,Free trial 一樣須完成電話號碼與信用卡認證,但Free trial 不會向您收取任何費用。

4.New IoT Hub視窗中輸入相關訊息,打*者代表必填欄位,完成如下圖。

  • Name:幫您的IoT hub取個名字吧,系統會自動檢查您希望的名稱是否可用,以綠色勾勾表示。
  • Pricing and scale tier:使用預設的S1 – Standard 即可。
  • Resource group:您可建立新的資源團體或選擇既有的。請參考 Using resource groups to manage your Azure resources
  • Location :請選擇您所在地區即可。

5.IoT hub設定好之後請點選Create ,在此須等候一小段時間。完成之後即可在Azure portal 看到它,您可以自由更改 protal 上各元件的位置。

6.建立好IoT hub之後,點選它,記下右上角的 hostname URI(例如下圖的 lattepanda.azure-devices.net )之後點選左側選單的 Shared access policies.

7.在Shared access policy中,選擇iothubowner(代表我們需要 registry write, service connect 與 device connect 等最高權限),最後把最右側的 Connection string (HostName=lattepanda.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=OOOXXX 這一大串) 記下來,後續會用到。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

請由此申請一個 Azure Storage Accout(https://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/#create-a-storage-account  ,需登記信用卡,但在此不會收取任何費用)

IoT hub建立完成了,上一部的connection string 需搭配 iothub-explorer 或 Device Explorer工具來使用。這個字串可讓外部應用程式在IoT hub 上執行相關的管理動作,例如在 IoT hub 上新增裝置。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

下一篇將告訴您如何將 Lattepanda 的類比腳位資料上傳到 Azure IoT hub,您可在這個腳位上使用電位計、光敏電阻或彎曲度電阻等類比元件。  

 

相關文章:

 

[課程紀錄]Arduino_AppInventor雙A計畫@高雄大港自造

$
0
0
作者/攝影  曾吉弘
課程時間   2017 3/18
課程講師  曾吉弘
課程場地   高雄大港自造

大港自造位於高雄西子灣駁二特區的自造空間,去年辦了大港自造節,開啟了不一定要掛 Maker Faire 牌的 Maker 活動,很多不一樣的發想就此展開。

言歸正傳,CAVEDU的專長是開課嘛,所以我們把招牌課程搬到大港囉。

我覺得Maker的能量就是從拿起工具的那一剎那開始,我真的覺得人人都會喜歡動手做些什麼,不管是鋼彈、小餅乾或是拿筆胡畫一通,總是對於指尖下的無限可能有著各類型的憧憬。

阿吉老師國高中就很喜歡工藝課,還記得當時要自己做一個書架,從切木板開始,到鑽孔、打磨拋光與上色都是新鮮的新鮮。為了讓木頭表面可以順利上漆,我還特別去五金行挑選各式各樣的砂紙,竟然發現了五金行老闆喜歡自己改造軍事模型–>因為工具應有盡有所以開五金行嗎?我不知道,但我看得出來他很快樂。自己做東西這件事也無所謂好不好,甚至”business model“(聽說大家最討厭被問到這句話,哈哈)。這個成品就代表了當下的自己,心境、技術等各方面的自己。

雖然說雙A計畫已經是老牌課程了,但是打底的工作還是很重要的。讓Android手機使用藍牙去與Arduino溝通之後,手機就能作為控制與顯示之用,Arduino也能藉由手機得到更多原本難以企及的功能,例如連接社群網路、拍照以及更好的計算能力等等。

來看上課照片(上課投影片於本文末)

 

 

小班教學,其實外面玻璃有很多有興趣的民眾在看呢

學員很認真地嘗試老師不同的題目

感謝大港的美麗攝影師把我拍得這麼滄桑…

最後來感受大港自造的熱鬧吧!










最後是本日上課投影片,歡迎多多分享喔

 

文章的結尾,來到了工商服務時間

未來Cavedu教育團隊也會不定期在大港自造舉辦課程~最近一期的課程在4/15的樹莓派課程喔!想要報名的朋友可直接在下方連結報名喔!

報名連結:http://www.accupass.com/event/register/1703240957416260981710

 

相關文章:


[ 3D繪圖 ] 浪漫情人節-自製巧克力與造型模具for DesignSpark Mechanical 2.0

$
0
0

DesignSpark Mechanical是一款簡易好上手的3D繪圖軟體,除了用來繪製方方正正的機器零件外,也可以有其它的變化。例如:在情人節當天總是會送給對方巧克力,如果巧克力的造型是經由自己的巧思設計出來的,那麼對方收到巧克力時一定會非常驚喜,今天就讓我們來繪製造型巧克力吧。

作者/攝影  郭皇甫/吳怡婷、洪卉君
時間
  •  3D繪圖:10-15分鐘
  • 3D列印:12分鐘
  • 真空成形:5分鐘
  • 煮巧克力:2分鐘
成本
  • 3D列印件54元(4.5元/分鐘)
  • 塑料一片60-100元
  • 巧克力磚230元
難度   * *
材料表
  • 3D印表機
  • 真空成形機
  • 塑料
  • 巧克力磚少許
  • 鐵碗、鐵杯
  • 水一杯
  • 電熱水壺

一般在做巧克力或是果凍時,都會將巧克力或是調好的果凍倒入模具,冷卻後取出,而其中所使用的模具就是我們今天要來繪製的模型。當然,繪製後所印出的3D模型並不適合拿來當作模具直接使用,所以我們會利用真空成形機,將3D模型成形為一個模具,如此一來我們就有了自製的模具來做出巧克力。

以下的步驟中,我們使用了矩形和弧線組合出愛心的圖樣,並使用薄殼功能將拉動後的愛心實體做出空心的造型,好處是節省了列印線材的使用,同時也節省列印的時間。(當然,您也可以不使用薄殼,直接做出實心的愛心喔!)

 

Step1.正面視圖。

請從「檔案/新增/設計」開啟一個新的設計,並找到左上角的「定位/正面視圖」,點擊後就會把格線從原本的斜視圖,轉成平視圖,也方便我們繪製圖形。

圖1 正面視圖

 

Step2. 建立建構線。

點選左上角的「草圖/圓形」(或是按下ALT+C),在格線上任一點當作圓心,按一下滑鼠左鍵後,移動滑鼠,您可以看到圓形的大小跟著您的滑鼠改變,此時在鍵盤上輸入30後,按下ENTER,就會得到一個直徑為30mm的圓,在圓的外框上按下滑鼠右鍵,選擇「建構開啟/關閉」,如此一來,圓的外框就會變為虛線。(建立建構線的好處是,它可以拿來當作繪圖尺寸的參考,又不會被視為圖形的一部份,所以不必擔心它會成為您最終的圖形)。

圖2 建立建構線

Step3.繪製矩形。

在DesignSpark Mechanical中,要繪製出矩形有許多種方式,您可以按ALT+L利用線條功能繪製;或是按下ALT+R利用矩形功能繪製;亦可以選擇「草圖/多邊形」輸入邊數與角度後繪製。在本篇我們使用「草圖/三點矩形」,在圓形的上方、左方、下方各按下滑鼠左鍵後,即完成我們要的矩形。

圖3 繪製矩形

Step4.繪製二個半圓。

點擊「草圖/三點弧線」,以矩形左上方的邊長當作半圓的直徑,分別在邊長的二端點擊滑鼠左鍵後,將角度決定在180度。(您也可以自行決定喜歡的角度,角度愈小,半圓也會愈小)另一邊也是以同樣的方式完成半圓。

圖4 繪製半圓

(半圓愈小的情況,所呈形的愛心形狀)

圖5 較小的半圓

(半圓愈大的情況,所呈現的愛心形狀,似乎像米老鼠的耳朵…)

圖6 較大的半圓

 

Step5.切除線段。

點擊「草圖/修剪」(或是按下ATL+T)將不需要的線段剪除,在這裡我們剪掉矩形上方左右二邊的邊長。

圖7 剪除多餘線段

 

Step6.拉動成形。

點選「編輯/拉動」(或者按下ALT+P),點選愛心表面,按住滑鼠中鍵旋轉視圖後,鍵盤輸入數字10,就會形成一個高度10mm的愛心。(您也可以自行決定愛心形成的高度)

圖8 拉動成形

Step7.形成薄殼。

點選「插入/薄殼」,點擊愛心的一面,並輸入數字2,即可形成外殼厚度為2mm的愛心空殼。(您也可以自行決定殼厚)

圖9 薄殼

Step8.圓角修飾。

軟體預設在拉動的狀態下,點選邊線的預設功能為「圓角」,所以我們只要點擊「編輯/拉動」,再點選愛心的邊框後按住滑鼠左鍵拉動,即可將原本尖銳的邊,修飾成柔和的圓角。(在拉動的狀態下,點選邊線的同時,滑鼠游標上方也會出現圓角的功能列;或是在左方的「選項/一般」找到圓角的功能)

圖10 修飾成圓角

繪圖完成後,我們選擇右上角的「插入/匯出選項/3D列印(* .STL)」將檔案存成STL檔後,即可利用3D印表機列印。

圖11 存成STL檔

接著我們再利用真空成形機,將列印出的3D模型做成模具。

圖12 將列印件放置真空成型機

圖13 真空成型愛心模具

(有關真空成形機的使用,請參閱我們的部落格文章【老闆推坑開箱文】EGO form桌上型真空成型機VF100A好好玩

接下來是巧克力的灌模,我們將買來的巧克力切碎後放在鐵杯中,鐵碗內倒一些水,放入鐵杯並隔水加熱,您可以在家中使用電磁爐或是瓦斯爐,若這二種都沒有,亦可以使用電熱水壺。(巧克力可使用市售烘焙用巧克力磚,例如「深黑苦甜」、「特級純白」、「72%杏仁黑」等)

圖14 巧克力隔水加熱

等到巧克力熔解後,再倒入模具。

圖15 將熔解的巧克力倒入模具

 

直到巧克力完全冷卻後,即可取出囉!(若您身邊有冰箱或是冷凍櫃,也可放置冷凍約30分鐘後即可)您也可依照自己的喜好加入小熊軟糖、糖花、糖粉…等,讓巧克力看起來更繽紛。

圖16 巧克力冷卻成型

圖17 白色愛心巧克力

如何?是不是有趣又好玩呢?沒想到3D繪圖也能結合一些IDEA做出好吃又好玩的東西呢,相信您也能做出屬於自己的創意巧克力喔!

 

相關文章:

[ Arduino101 專題實作計畫] Arduino101二輪平衡小車DIY

$
0
0
作者/攝影  袁佑緣
時間
  • 3小時
成本
難度   * * * * * *
材料表
  • 厚度3mm壓克力板
  • Arduino101控制板
  • 減速馬達x2
  • 麵包板
  • 杜邦線
  • 排針
  • 電池盒
  • 防滑墊
  • 3.7v鋰電池(14500)
  • 鋰電池充電器
  • TA7279P馬達驅動晶片

1. 平衡車車體製作

本範例的平衡車車體主要是由雷切壓克力構成,壓克力的厚度是使用3mm的板材,再藉由螺絲螺帽組合而成,車子的馬達使用的是兩顆小型的5V減速馬達,輪子的部份也是由壓克力組成,胎皮則是貼上一層防滑墊,車子的底部則有兩個3號電池座,裡面各裝兩顆7V的鋰電池,一個用來驅動控制板,另一個則用來驅動馬達。
詳細的CAD檔可以參考筆者放在網路上的onsahpe專案,有興趣的讀者可以參考看看喔!

圖一、平衡車的模擬動畫

圖二、組裝爆炸圖




圖四六七八、車體的三視圖

圖八、平衡車實體圖

 

2.電路接線

本次範例使用的馬達驅動晶片是TA7279P,其腳位功能與編號如下圖(節錄自官方datasheet) ,請將5號及10號腳位接到鋰電池的電源上,並把A、B兩個channel的馬達訊號輸入腳位,也就是1、3、12、13接到Arduino 101上的3、5、6、9號腳位來當作控制板的訊號控制腳位,因為這些腳位才有辦法做PWM訊號的輸出,也因此才能控制馬達的轉速。
至於馬達的部份,請將下表output(輸出)的腳位各自接到兩顆馬達上即可,例如:A channel想控制左馬達,B channel想控制右馬達,那就把4、6號腳位接到左馬達上,9、11號腳位接到右馬達上。
另外也別忘記要給TA7279馬達驅動晶片供給工作電壓,只要在14號腳位供給5V的電力,7號腳位接地就行囉。

圖九、TA7279P腳位功能圖

圖十、TA7279P腳位編號圖

圖十一、完成車體與電線配置!

3. Arduino環境準備

請先準備好Arduino IDE,並請在Arduion IDE上的Boards Manager那邊搜尋關鍵字intel,並如下圖安裝Intel Cuire Board。至於驅動程式的部份,使用MacOS跟Linux的朋友不用擔心,直接使用就可以了,那如果是windows的使用者在第一次將控制板接到電腦上時,會挑出自動安裝驅動程式的視窗,請耐心等候電腦完成安裝就可以進行到下一步囉!

圖十二、Arduino IDE Boards Manager設定

4.程式設計

#include "CurieIMU.h" //引入Arduino 101 IMU的函式庫,用來偵測車體的            角速度與加速度方向

//宣告PID控制的各個參數,各個參數的最佳數值必須視車體情況而定,不同的車體會有所不同,電力的大小也會有影響
const float kp = 24; 
const float ki = 0.05;
const float kd = 15;

//宣告參數K作為complimentray filter的參數
const float K = 0.95;

//list number的大小會決定取平均的樣本數,越多則越準,但也會花掉更多計算時間
const int angle_list_number = 5;
const int error_list_number = 10;

//設定馬達初速為0
int speed = 0;

//定義馬達的驅動腳位
const int motor_A_1 = 3;
const int motor_A_2 = 5;
const int motor_B_1 = 6;
const int motor_B_2 = 9;

//宣告進行角度計算與PID控制會用到的一些參數
float time, time_pre, time_step;
float gyro_angle = 0;
float acce_angle = 0;
float angle_list[angle_list_number];
float pre_error = 0;
float error_list[error_list_number];
float diff_error = 0;
float offset = 0;

void setup()
{
	for(int i = 0; i < angle_list_number; i++)
		angle_list[i] = 0.0;
	for(int i = 0; i < error_list_number; i++)
		error_list[i] = 0.0;
	pinMode(motor_A_1, OUTPUT);
	pinMode(motor_A_2, OUTPUT);
	pinMode(motor_B_1, OUTPUT);
	pinMode(motor_B_2, OUTPUT);
	pinMode(13, OUTPUT);

	Serial.begin(9600);
	Serial.println("Start!!!");

//設定Arduino 101 的IMU感測器	
      CurieIMU.begin();
	CurieIMU.setAccelerometerRange(4);
	CurieIMU.setGyroRange(250);
	time = millis();
	for(int i = 0; i < 5; i++)
	{
		Serial.println("Ready...");
		delay(200);	
	}
	int time2 = millis();

//待機兩秒後,取得一個初始位置的角度,這個位置將會是平衡車目標的平衡位置
	while((millis()-time2) < 2000)
		offset = get_angle();
	adjust_timer = millis();
	digitalWrite(13, HIGH);
}

void loop()
{
//主迴圈會一直去讀取現在角度與目標角度的誤差,並透過PID控制來回傳修正動作給馬達
	float error = get_angle();
	float feedback = PID_feedback(error);
	if(abs(error) > 70)
//當傾斜角度過大時,會視為倒掉,此時將會停機並等待重啟
	{
		while(true)
		{
			analogWrite(motor_A_1, 0);
			digitalWrite(motor_A_2, LOW);
			analogWrite(motor_B_1, 0);
			digitalWrite(motor_B_2, LOW);
			Serial.println("Stop!!!");
		}
	}
	balance(feedback);
}

//平衡函式將會根據PID算出的回饋數值,呼叫馬達做出相對應的修正動作
void balance(float feedback)
{
	speed = int(feedback);
	if(speed < 0)
	{
		analogWrite(motor_A_1, abs(speed));
		analogWrite(motor_B_1, abs(speed));
		digitalWrite(motor_A_2, LOW);
		digitalWrite(motor_B_2, LOW);
	}
	else
	{
		digitalWrite(motor_A_1, LOW);
		digitalWrite(motor_B_1, LOW);
		analogWrite(motor_A_2, abs(speed));
		analogWrite(motor_B_2, abs(speed));
	}
}

//讀取角度的函式會透過計時器累加的部份,將IMU讀到的角速度離散積分成角度,同時會做平均取值並輔以complimentary filter的方式來將精確的角度數值計算出來
float get_angle()
{
	time_pre = time;
	time = millis();
	time_step = (time - time_pre)/1000;

	float ax, ay, az;
	float gx, gy, gz;
	CurieIMU.readAccelerometerScaled(ax, ay, az);
	CurieIMU.readGyroScaled(gx, gy, gz);

//將以下的註解取消掉的話可以從Arduino 101的Serial讀到此刻感應器的原始數值,記得baud rate要跟前面宣告的一樣設定成9600,另外要提醒一下如果開啟Serial輸出的功能的話,會消耗掉額外的計算資源,所以如果已經不需要再讀取數值時,最好把以下的程式碼註解掉
	//Serial.print(ax);
	//Serial.print("\t");
	//Serial.print(ay);
	//Serial.print("\t");
	//Serial.print(az);
	//Serial.print("\t");
	//Serial.print(gx);
	//Serial.print("\t");
	//Serial.print(gy);
	//Serial.print("\t");
	//Serial.print(gz);
	//Serial.println();
	
	gyro_angle += gy*time_step;
	acce_angle = (180/3.141593) * atan(ax/az);
	for(int i = 0; i < angle_list_number-1; i++)
		angle_list[i] = angle_list[i+1];
	angle_list[angle_list_number-1] = K * acce_angle + (1-K) * gyro_angle;
	float mean_angle;
	mean_angle = 0.0;
	for(int i = 0; i < angle_list_number; i++)
		mean_angle += angle_list[i];
	mean_angle /= 5;
	mean_angle -= offset;
	return mean_angle;

}

//PID回饋的函式會將錯誤進行一連串的計算,並根據開頭我們設定的三個係數來做出適當的回饋
float PID_feedback(float error)
{
	for(int i = 0; i < error_list_number-1; i++)
		error_list[i] = error_list[i+1];
	error_list[error_list_number-1] = error;

	float sum_error = 0;
	for(int i = 0; i < error_list_number; i++)
		sum_error += error_list[i];
	diff_error = error - pre_error;
	pre_error = error;
	float p_term = kp * error;
	float i_term = ki * sum_error;
	float d_term = kd * diff_error;
	float feedback = p_term + i_term + d_term;
	if(feedback >= 255)
		feedback = 255;
	else if(feedback <= -255)
		feedback = -255;

//跟前面一樣,把以下程式碼的註解拿掉的話可以從Serial讀出實際得出的回饋
	// Serial.print("P_term: ");
	// Serial.print(p_term);
	// Serial.print("\tI_term: ");
	// Serial.print(i_term);
	// Serial.print("\tD_term: ");
	// Serial.print(d_term);
	// Serial.print("\tError: ");
	// Serial.print(error);
	// Serial.print("\tFeedback: ");
	// Serial.println(feedback);
	return feedback;
}

 

5.實際操作

 

相關文章:

[單板電腦大評比] ASUS Tinker 與 Raspberry Pi 3 比一比

$
0
0
作者/攝影  曾吉弘
時間
成本
難度   * * *
材料表
  • ASUS Tinker挺客板
  • Raspberry Pi 3

 

ASUS從去年底悄悄在各大消費性電子展露出了 Tinker 開發板之後,大家就開期待這片板子有什麼有趣的地方。畢竟在在對手林立的SBC戰場中,不只是硬體規格要好,還需要軟體與社群端的支援(資源)。本文將簡單比較兩片板子的異同以及使用 sysbench 軟體的效能評比結果。

如想要以影片方式更加了解Tinker的朋友們,

歡迎觀看CAVEDU教育團隊粉絲團挺客之夜直播影片


簡單來說,Tinker 在硬體配置上與Raspberry Pi 3可說是完全相同,但在硬體上,照規格來看高檔了許多。當然,Raspberry Pi 會紅本來就不是靠規格強(想想當年第一片pi吧),而是靠諸多社群大大無私奉獻,讓它在軟硬體支援與完整度上都愈來愈好。君不見水果拼盤系列,有香蕉橘子蓮霧鳳梨,還有老虎呢。一定都會被問到這一個問題:”Raspberry Pi 一片$1500,如果不是比便宜,要如何說服消費者掏錢去買這個價差呢?

所以本篇對於Tinker的著眼點在於從 Raspberry Pi 的轉移體驗,如果差異性太大,島至於看上Tinker效能而想要移植專案的使用者,如果碰到軟體套件不相容或是函式庫要重做等等,可能又跑回去Pi的懷抱了。簡單說,多聽聽使用者的聲音是很重要的,這點ASUS團隊看來做得不錯喔。

謎之音:2月底剛結束的台大電機黑客松,明查暗訪的結果對於Tinker的反應相當不錯呢!

 

規格

項目 ASUS Tinker Raspberry Pi 3
價格 約$2200 約$1500
尺寸 85.6mm x 56.5mm 85.6mm x 56.5mm
處理器 Rockchip RK3288

四核心 1.8GHz

Broadcom BCM2837

四核心 ARM Cortex-A53, 1.2GHz

時脈
RAM 2GB Dual Channel DDR3 1GB LPDDR2 (900 MHz)
顯示晶片 Integrated Graphics Processor

ARM® Mali™-T764 GPU*1

Broadcom VideoCore IV
資料儲存 Micro SD card Micro SD card
電源 5V DC 5V DC
GPIO腳位 40 pin 40 pin
類比輸入
PWM
I2C
UART
攝影機 CSI CSI
影像輸出 4K HDMI /   DSI port HDMI / DSI port
聲音輸入/輸出 HDMI / 音源孔

RTL ALC4040 CODEC

HDMI / 音源孔
乙太網路 有 Gb LAN 有   100M LAN
USB接頭 4 x USB 2.0 4 x USB 2.0
無線網路 802.11 b/g/n 802.11 n
藍牙 BLE BLE
目前可用之OS
  • 特製版Debian
  • Kodi

載點:https://www.asus.com/tw/Single-board-Computer/TINKER-BOARD/HelpDesk_Download/

樹莓派基金會推薦Raspbian,其他還有Ubuntu Mate, Windows 10 Iot Core (注意不是Windows 10開機), OSMCAndroid等非常多。

載點:https://www.raspberrypi.org/downloads/

GPIO腳位配置

ASUS Tinker

 

Raspberry Pi3

系統效能測試

在此使用sysbench來測試 Tinker 與 Pi3 的CPU效能與檔案存取速度,(螢幕截圖使用ssh登入後截圖,請先安裝sysbench才能執行相關指令來測試效能

 

$ sudo apt-get update

$ sudo apt-get install sysbench

 

先來看看兩者CPU基本規格

$ lscpu

 

ASUS Tinker

 

Raspberry Pi3

CPU效能

請執行以下指令:

$ sysbench –test=cpu –cpu-max-prime=2000 run

 

左側 linaro 為 tinker 的 terminal 畫面,右側為Raspberry Pi 3,可以看到Tinker : 14.49秒,Pi3則需37.05秒。使用 i7-4700筆記電腦執行同一指令,大概是1.02秒,由此可知這類型的單板電腦與桌機/筆電還是有相當大的差異(價錢也是啊!)

檔案存取

請先用以下指令建立用來測試用的檔案,在此為1G,數字不要調太大不然會跑不完

$ sysbench –test=fileio –file-total-size=1G prepare

接著執行以下指令

$ sysbench –test=fileio –file-total-size=1G –file-test-mode=rndrw –init-rng=on –max-time=300 –max-requests=0 run

上圖為Tinker(49.6),下圖為Pi3(51.02秒)

在此兩者執行時間是差不多,但是兩者的讀寫速度則差別相當大,Tinker是31.8 Kb/s,Pi3 是。Tinker的 Total tranferred data 只有 18.75Mb,Pi3卻高達1.7Gb!

 

ASUS Tinker

Raspberry Pi3

 

記憶體讀取測試

請用以下指令進行記憶體讀取測試

$sysbench –test=memory –memory-block-size=8K –memory-total-size=1G –memory-oper=read run

ASUS Tinker(3330.7Mb/s)

Raspberry Pi3(1413.3Mb/s)

記憶體寫入測試

請用以下指令進行記憶體寫入測試

$sysbench –test=memory –memory-block-size=8K –memory-total-size=1G run

ASUS Tinker(1483.5Mb/s)

Raspberry Pi3(646.6Mb/s)

 

註1:Tinker 的 GeekBench 得分為3925,Pi3為2092,但還是老話一句,速度快當然很好,也需要周邊軟硬體與社群的支持才行喔。資料來源:https://www.slideshare.net/NiyaziSARAL/asus-tinker-board

註2:ASUS 相關資料與圖片經同意後引用自 ASUS Tinker 原廠網站

 

相關文章:

[不錯用的電路設計軟體Multisim Blue]手把手安裝教學

$
0
0

技術行銷部門副總裁 Kevin Hess 表示:「Mouser 非常榮幸能與NI合作,為工程師帶來這款全新的先進設計工具……透過 MultiSIM BLUE,兩大業者 Mouser 與 NI 攜手,創造簡單易用的的 PCB 至 BOM 整合式電路模擬平台,並為此打下基礎。」

知道Multisim Blue的優勢後,我們緊接著來安裝它吧!

作者/攝影   偉和
時間   2小時(視網路速度而定)
成本  軟體安裝免費
難度  * *
材料表
  • 電腦(Windows系統)


1.前往官網(http://www.mouser.tw/multisimblue/)往下找到「Download Lastest Version」點擊

2.填寫National Instruments(以下簡稱NI)表單,在前一篇有提到Multisim BlueMouserNI合作共同推出的軟體,然後Multisim Blue存放在NI的空間中,所以我們需要填寫表單才能進入下載區

3.點擊「Download MultiSIM BLUE 14.0 (615MB)」鈕開始下載「下載軟體」

4.下載完畢後執行軟體,這才開始下載Multisim Blue,此步驟約花20分左右(視網路速度而定)

5.下載完畢後點擊「Open

6.點擊「確定」,這對話框表示說會解壓縮檔案並且會存放在硬碟中,你可以在安裝完畢後將此資料夾刪除

7.點選「Unzip」解壓縮

8.解壓縮完畢後,點選「Install NI Multisim Component Evaluator 14.0」

9.點選「Next」,這是選擇安裝路徑,建議使用預設路徑就好

10.點選「Next」

11.等待安裝

12.安裝完畢,點選「Next」

13.點選後會自動開啟Multisim Blue Launcher

14.點選左下角的「Download Parts」

15.等待下載完畢

16.下載完後點選右上方的「Launch Multisim」即可看到Multisim Blue的環境了~

 

[TJBOT紙板機器人]CAVEDU 組裝設計升級 2.0

$
0
0

您如果還沒看過我們上一篇TJBot組裝心得發表文,趕快去看不用擔心,這不會影響您的閱讀順序,但是可能會少一些閱讀樂趣。

如果您是在【機器人王國商城】shop.robotkingdom.com.tw購買TJBot的套件,請以本篇敘述的方式來組裝。

購買TjBot傳送門:http://shop.robotkingdom.com.tw/humanoid-robot/tjbot01.html

作者/攝影   鄭建彥
時間   15分鐘
成本   總共約新台幣3,675 元 (想買TJBOT材料包可點選 商城連結 )
難度   * * *
材料表
  • TJBot的雷切紙模板
  • Raspberry Pi B+(或是更新的版本、ASUS Tinker也可以)與相關配件(micro SD卡與5V3A變壓器)
  • USB麥克風
  • 小喇叭
  • 5mmLED
  • SG90伺服機
  • 170孔麵包板
  • Raspberry Pi 攝影機(非必須)。

我們的TJBot的雷切圖檔與手臂的3D設計檔:http://www.thingiverse.com/thing:2191961

 

建議工具:

  • 寬度6mm雙面膠。
  • 直尺(金屬製為佳),協助折線用,不用太長。
  • 小隻的十字螺絲起子。
  • 美工刀。

注意事項:

  1. 手還是會弄的髒髒的:因為是雷切紙板,紙板的邊緣會有燒焦的痕跡,組裝時不可避免的會弄到手,愛乾淨的朋友可以帶個手套再來組。
  2. 組裝說明請多看幾次:雖然不是什麼很難的模型,在你動手前,還是請多多參考相關影片https://www.youtube.com/watch?v=bLt3Cf2Ui3o、https://youtu.be/MpL4BeQ3Nqc,或是其他人的組裝分享文(如本篇跟上一篇優質文http://wp.me/p3T9Qk-5B1),減少不必要的悲劇或是意外。
  3. 紙板折錯方向是會斷掉的:雖然本次的版本已經減少部分容易損壞的部分,部分固定方式改成以雙面膠固定。但雷切出來的折線,不適合反覆彎折,會 斷 掉!請先確定方向再折。若不幸真的斷了,不須覺得世界末日,拿膠帶來黏就好。如果不喜歡膠帶黏過的感覺,沒關係,我們很樂意再賣你一套材料包。
  4. 妥善運用直尺:金屬製15公分直尺會是你組裝的好幫手,除了可以幫你順利的折出完美的轉角,在榫接時也很好用。
  5. 不要硬拔:在取下零件時,請用美工刀將連接處劃開。
  6. 找一個小盒子,把小零件都先放在裡面。
  7. 建議先不要把雙面膠撕開,先確定各部分都在對的地方,確定無誤後,再黏起來。
  8. 注意方向:我是沒有發生啦,但有些朋友會把TJBot的手組到另一邊去。
  9. 錯了就錯了,斷了就斷了,不完美才是特色,最糟不過再來買一套。

這是基於本團隊組裝好幾台TJBot後的心得,在挫折與沮喪之中,跑到河邊看魚逆流而上,由衷讚嘆師父的偉大,有感而發,才開發出來的。

部分組裝方式跟之前的版本相同,如果在本篇看不清楚,可以參考上一篇(點閱數入手)-[TJBOT紙板機器人] 第一次製作機器人就上手-組裝篇

 

STEP 1先來組裝底座。

在寫有Ford Down的地方貼上雙面膠,正反面都要貼喔。






STEP 2組裝大頭。

方法同STEP 1。







STEP 3 組合下半身





STEP 4. 裝上Raspberry Pi攝影機(選配,但我裝了),沒要裝攝影機的朋友請看STEP 5





STEP 5 放入控制板

上次已經裝過Raspberry Pi,這次我們裝的是剛剛上市的ASUS Tinker,Tinker的外型跟Raspberry Pi完全相容,裝進TJBot完全沒問題。


 

STEP 6裝喇叭與麥克風

喇叭上的電源開關先撥到ON。









 

PART 7 裝手臂

之前紙板的手臂不容易順利摺好,經過幾次不愉快的經驗之後,我們決定改用3D印表機製作。如果你想要自己印,歡迎使用我們的設計檔案。

伺服機先歸到中心點:先將伺服機轉到適當的位置,手臂朝上時是中點,往前後都各有90度的動作範圍。



PART 8 組裝固定板

黏上麵包板:我們有預留固定麵包板的位置,把麵包板背面的雙面膠撕開,對準刻痕,黏上去。


 

PART 9 把臉裝上去。





來個完成照!

裝飾一下你的TJBot。(下圖是我家公子們的真跡)

 

參考資料:

 

相關文章:

 

[課程紀錄] Arduino+樂高機器人研習@萬大國小

$
0
0
作者/攝影  曾吉弘
課程時間   2017 3/16
課程講師  曾吉弘
課程場地   台北市萬大國小

3/16 來到了CAVEDU旁邊的萬大國小,學生們想要參加今年台北市校際盃的公開賽(主機不可使用樂高原廠主機)。這樣一來多數人會改用Arduino作為控制主機。不過馬上就會遇到的問題就是機構問題,總是要組裝出一台機器人車身的嘛。自行設計機構零件的話,在組裝和修改上的彈性就比樂高弱了一點。樂高的積木式零件能讓學生可以馬上修正上次測試中不滿意的地方。

所以啦,MindSensors這家與HiTechnic齊名的電子周邊廠商早早在NXT時代就推出了NXShield-D/ M 可以搭配 Arduino Uno 與 Mega 2560,到了EV3也推出了 EVShield。讓Arduino Uno 可以使用樂高EV3的原廠感測器,當然MindSensors推出的周邊(例如本次研習用到的Lineleader 光感測器陣列)也可以用,回頭還能繼續擴充各種 Arduino 的擴充板,一舉多得呢。

EVShield購買連結請按我

(樂高強大的地方並非只有主機而已,應有盡有零件庫才是關鍵。說來很現實,但多數人離不開樂高的原因的確是如此。)

先來看一下EVShield的外觀,左右各有四個接頭,可以同時連接4顆感測器與4顆馬達,EVShield另一面還有6個 servo 的 3 pin 接頭,除非要做二足步行機器人,不然這樣的I/O數量應該很夠了。

真的不滿足的話… 還有馬達多工板NXT感測器擴充板可以用,舊款的NXT一樣不會浪費喔。

疊上一片小螢幕的樣子

接著說明一下 Lineleader,這是MindSensors 特別針對刁鑽的直角彎、髮夾彎甚至斷線等設計出的神兵利器:八個光感測器整合成一個陣列。每個可獨立回傳0~100的光值變化,並且已經有 PID 函式庫讓您直接修改相關參數就可以有很好的循跡效果,希望能讓小朋友過程中建立一些機器人控制所需的數學基礎。讓他們知道原來線性方程式以及三角函數真的有用,而不是一直解一些無聊的題目(很可惜,阿吉老師的學生時代就是這樣過的…,無法體會數學之美)。

來看看執行的影片吧 (偵測障礙物是使用 MindSensors SumoEye紅外線感測器,您當然可改用樂高EV3的超音波感測器)。

 

圖說:阿吉老師分享使用一般光感測器與 Lineleader 在過十字路口以及色卡紅綠燈的一些小小心得

最後請看上課照片,祝各位小朋友、家長與老師,在比賽的過程與結果都能有滿滿的收穫喔!

 

圖說:老師們特別調課來上研習,真的超有動力

圖說:老師們對於機構已經有一定的研究了

 

相關文章:

[3/29_C-Day有什麼?]系列之四:台北市校際盃機器人選拔賽(三)- 使用Arduino uno與NXShield

[DIY人形機器人] 日本Kondo公司機器人

$
0
0

日本近藤科學KONDO KHR3-HV Ver. 2 機器人相關介紹可以先看這篇文章

這個故事得從2015年的蘇迪勒颱風說起:還記得當時慘烈的災情嗎?在風雨肆虐的夜裡,CAVEDU不幸地──淹水了。我們將受災的KONDO KHR-3HV Ver.2機器人,拿起來邊重建邊開始玩。

作者/攝影   高稚然
時間   打開盒子拿出來排的時間
成本   17軸-新台幣63,000元(商城連結
難度  
材料表
  • KHR-3HV Ver.2一套

首先是在濕軟的紙箱中掏出所有零件,一整套包含:

  1. KRS-2552RHV ICS伺服馬達*17顆

KONDO出品的KRS-2552RHV ICS伺服馬達作動範圍達270度,除了傳統的PWM控制外,還可使用KODNO特別研發的串接模式(Serial、シリアル),大幅減少接線的複雜度及痛苦程度。此外,該馬達內建電流與溫度的偵測及過保護機能,11.1V時最大扭力為14.0kgf・cm。

將馬達們依組裝位置排列如圖1,各部位可動度如下:頸部或腰部一軸(二擇一)、一手三軸、一腳五軸。馬達上的ID編號不僅是為了組裝方便,也與串接模式的控制有關,如果要換位置還需用軟體改編號,顏色則是單純區分部位。

2.控制板RCB-4HV及其他選配模組(加速規、無線通訊模組等)

3.鋁件

主要做為馬達之間的固定結構,部份有攻牙以搭配機械牙螺絲。

4.塑膠件

此類為強化型樹脂,主要為伺服臂,搭配自攻螺絲。

5.塑膠件

其餘為KONDO的外殼等裝飾件,同樣搭配自攻螺絲。

6.各式螺絲

KHR-3HV Ver.2套件中足足有「10種」規格的螺絲,總共有四百多顆(深呼吸),強烈建議找個分類盒,依序放好後撕下包裝上的貼紙貼於盒上,方便操作。下圖6可看到暴雨的痕跡,不過我後來用的是災情較小的那套,沒有生鏽的問題。

7.電池與充電器

由九個鎳氫電池串接而成,10.8V-800mAh。接頭是臺灣比較少見的規格,有防呆及卡榫。日規電壓為100V,此外,由於鎳氫電池有記憶效應的問題,充電時務必按下按鈕先行放電。

8.各式接線

讓機器人動起來,連接各個組件、傳達訊號的重要角色就是它們了,規格同樣多的讓人眼花撩亂。

讓我們依資料類型及接頭將其分為三類:

  • 與RCB-4HV版溝通的杜邦頭3 pin(圖9)

端子頭在號線側有凸起便於識別,並且搭配防呆座。

  • 連接伺服馬達的JP24150端子3 pin(圖10下)

1.5mm的端子十分纖細,三條接線依序為:信號(灰)、正電(黑)、地(黑)。母座上有防呆設計。

  • 電源用接頭(圖10上)

電原用接頭是臺灣比較少見的型號,有卡準及防呆設計。

講了這麼多次防呆,就是要特別提醒大家,千萬別接錯線,或者是靠蠻力硬來啊!

剩下的是內含軟體及多份說明書的光碟、可切換兩種通訊模式的USB連接器、貼紙等等。到這裡我們終於把零件清點完了(抹汗),那麼請期待下回:22軸組裝篇!

 

相關文章:


[課程紀錄]7688物聯網研習@大仁科技大學

$
0
0
作者/攝影  曾吉弘
課程時間   2017 3/10
課程講師  曾吉弘
課程場地   屏東大仁科技大學

3/10 來到了屏東大仁科大辦理一天的物聯網研習,使用LinkIt Smart 7688 搭配 MCS雲服務。參加對象是大仁科大資訊工程與娛樂科技系的同學與來自中國寧夏的短期交換生。感謝曾系主任大力促成本次研習,期待有機會再去分享。

 

一天的課程就是做到 MCS控制7688 Duo 腳位狀態以及上傳感測器(光感測器) 到 MCS,這是最基礎的控制/顯示功能。說真的還是有點趕,但也一趟到屏東了,總是要把精華教給大家。

 

有趣的現象:中國的同學普遍都算認真,有的還是聽說今天的主題是物聯網應用就專程請假來上課。台灣的同學就比較兩極,認真的很認真,也有些人中午之後就消失了。中國畢竟還在創客(中國maker) 與萬物互聯等一些超火紅的浪頭上,任何事情感覺都興致勃勃。台灣的同學可能要等到出社會之後才知道競爭對手來自哪裡吧。大陸的朋友總羨慕台灣香港在內容上還是走得比較前面,但我總擔心還能領先多久?(個人觀察不代表全貌,大家理性討論喔)

 

當天課表的 Google doc 在這邊,請和我們一起學習吧!

https://docs.google.com/document/d/1tZFeQLECCXwX_FdS7rqMbbzptG8HY4tvB8P2RQ66yPU/edit#heading=h.9na8cfi8e9mc

簡列大綱如下:

   上午   7688 Duo 硬體介紹以及當作 Arduino使用

   下午   7688 網路設定與 openWRT 操作 (檔案系統,以及如何執行Node.js / python)

             Mediatek Cloud Sandbox 介紹 -> 繼電器(數位輸出) 控制

             上傳感測器資料 (Node.js + Arduino)

             (MCS影像串流 / 照片上傳只 demo) 

 

感謝曾系主任大力促成本次研習 

和同學一起討論,介紹各種物聯網常見的卡關點

教室的網路環境相當不錯,40片7688都聯網跑起來都沒問題。一次10多片串流影像到MCS也還算順暢。

全班40多位同學一起上課,真熱鬧啊

 

相關文章:

[LinkIt 7697開發板上市啦!] 燒燙燙開箱規格報你知

$
0
0

本文要介紹聯發科技實驗室推出的7697開發板,包括其硬體規格、Arduino環境建置以及基礎I/O控制。

作者/攝影   曾吉弘
時間   3小時
成本   LinkIt 7697開發板
難度   * * *
材料表
  • 個人電腦
  • LinkIt 7697 開發板

認識LinkIt 7697

  • 採用 ARM Cortex-M4, 192 Mhz
  • 擁有 352 KB RAM, 4MB Flash
  • 同時支持 Wifi 802.11 b/g/n 和 Bluetooth LE 4.2 雙通訊功能
  • 主要軟體支持FreeRTOS 與Arduino

LinkIt 7697 是以MediaTek MT7697 系統單晶片SoC. 為核心的開發板,支援Wi-Fi 與Bluetooth Low Energy( BLE)通訊功能。您可使用GCC、IAR embedded workbench 或 KEIL uVision 來編寫原生的 LinkIt SDK。或者可採用相當普遍的 Arduino IDE (已經幫入門使用者架好了) 來編寫 Arduino 草稿碼並運用周邊驅動程式與函式庫。

腳位配置(圖片來源 labs.mediatek.com)

與Arduino UNO 簡單比較一下

LinkIt 7697 Arduino UNO
微控制器 聯發科MT7697 Microchip ATmega328p
主時脈 192 MHz 16 MHz
RAM 352K 2K
Flash 3612K 32K
Wi-Fi 802.11 b/g/n
BLE BLE 4.2
尺寸 48 x 26 mm 69 x 53 mm
週邊硬體支援 普通 非常好

規格一覽

模組 wrtnode^7 (wrtnode.com)
晶片 MT7697

Cortex-M4 with FPU @ 192Mhz

RAM 352 KB
Flash 4 MB
Wi-Fi 802.11 b/g/n (2.4G)
Bluetooth 4.2 LE
尺寸 48×26 mm
作業電壓 3v3
輸入電壓 5v (microUSB)
USB2UART CP2102N
周邊介面 GPIO x18

UART x2

I2C x1

SPI x1

PWM x18

EINT x4

ADC x4 (0~2.5V)

IrDA x1

I2S x1

除錯介面 SWD x1
可用的SDK LinkIt SDK

Arduino for LinkIt 7697

LinkIt 7697腳位配置

Download (PDF)

Arduino環境建置與 LED 閃爍-簡易實作教學

Arduino環境建置

請先下載 Arduino 1.6 之後的輸入“http://download.labs.mediatek.com/package_mtk_linkit_7697_index.json”,如下圖:版本,開啟Arduino IDE之後,請於 File/Preferences中的 Additional Board Url 欄位中

接著開啟 Tools/Board,在 Board Manager 中輸入 7697 會看到以下畫面:

安裝驅動程式

7697 需要安裝CP2102N VCP driver,下載之後解壓縮,根據您的作業系統版本點選CP210x_Windows_Drivers資料夾中的 x64 或 x86.exe

完成之後系統就會給予7697 一個 COM port。請於裝置管理員中檢視,Arduino IDE 的 Tools/Ports 也會看到同樣的 port 號:

基礎範例操作

數位輸出 LED Blink

檔案路徑:File/Examples/01. Basic/Blink

萬丈高樓平地起,使用 Blink 來控制吧,唯一不同之處請將LED的腳位改為7號, 代表7697的P7腳位,也就是 USR LED。接線方式如下圖:

void setup() {
  pinMode(7, OUTPUT);

}

void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

類比輸入 analogReadSerial

檔案路徑:File/Examples/01. Basic/analogReadSerial

在此有一些關於LinkIt 7697的類比輸入腳位需要注意的地方:

  1. 7697 的 ADC 輸入電壓範圍是 0 到5V,並非3.3V。
  2. 7697 ADC 解析度為 12-bit,因此analogRead()的數值範圍是 0 ~ 4095
  3. 在 Arduino IDE 中,A0 是對應到 7697 的 ADC_IN0 (P14) ,也就是說P14~17 分別代表Arduino的A0~A3,請參照先前的腳位配置圖。

請按照以下來接線,請注意這樣的做法可讓5V降到 2.5V:

void setup() {
  Serial.begin(9600);
}

void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

 

[LattePanda教學] lattepanda + Azure #2 上傳類比資料到Azure IoT hub

$
0
0
作者/攝影   曾吉弘
時間   3小時
成本   Lattepanda
難度   * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

請參閱 [LattePanda教學] lattepanda + Azure #1 環境建置] 本文將介紹如何上傳類比資料(電位計)到Azure IoT hub,並可在 Visual Studio 與 Power BI 中檢視資料。

環境建置

硬體

在此有兩種做法,使用 Lattepanda 感測器套件 中的 Analog Rotation Potentiometer sensor 接在 Lattepanda 上的 Gravity 4號接腳上,請參考下圖:

或採用一般的電位計,中央腳位接到 Lattepanda A0腳位,另外兩隻腳一端接 5V,一端接GND即可,完成如下圖:

Lattepanda Arduino

 

請上傳StandardFirmata Lattepanda Arduino 晶片中,別忘了 Board 要選 Arduino LeonardoCOM port 請根據 Windows裝置管理員為準,本程式中為 COM4

Lattepanda Windows端:

請用 git client 下載 azure iot sdk,請安裝 Windows git 工具之後在 powershell (cmd + r 之後搜尋 powershell )下執行以下指令把檔案下載到 lattepanda。在此我們預設的路徑皆為 C:\Users\Lattepanda:

git clone https://github.com/Azure/azure-iot-sdks.git

完成之後在其中的 /build 資料夾中找到 dev-setup.cmd,點擊兩下即可開始安裝程序。安裝完成之後可在同路徑下看到多了一個 node_modules 資料夾。

安裝Node.js所需套件

請在powershell 中執行以下指令,johnny-five serialport 這兩個是我們在 app.js 中會用到的套件:

npm install johnny-five serialport

 

建立Azure storage

Azure Storage

Azure Storage 是微軟所提供的雲端儲存方案,提供不同客戶在耐用性、取得性以及規模彈性上的各種需求,大到科學、金融用的數百TB以上資料,小到個人網站,都可在此完成。

請登入Azure portalNew -> Storage -> Storage account。並根據以下參數來建立 Storage account:

Name:自行取一個名稱,在此為 cavedu

Storage service ecryption: Disabled

Subscription: Free Trial (根據您帳號而定)

Resource group: Create new 或 USe existing 都可以,在此我建立一個新的: cavedu

location: 根據您所在地,在此我選 East Asia

建立完成後會看到以下畫面,請注意右下角的 URL 要記起來,後續與 Power BI 連接時會用到

Settings / Access Keys 下面的 key1 / key2也記起來,請任選一組輸入在後續要執行的程式中。

程式說明

Lattepanda Arduino

請確認 StandardFirmata 程式已經上傳 Lattepanda Arduino 晶片並執行,如果不確定的話可以再上傳一次或按下板子上的 Reset 鈕讓 Arduino 晶片重新執行程式。Arduino端程式一定要先執行,後續 app.js 去呼叫 Arduino COM port 時才可正常運作,否則就會顯示錯誤訊息。

Lattepanda Windows

請開啟power shell,切換到您解壓縮 azure-iot-sdk的資料夾下,(我們的路徑是 C:\Users\lattepanda),使用您喜歡的編輯程式建立一個名為 app.js 的檔案並貼入以下內容。您只要修改 accountNameaccountKeytableName這三筆資料即可,如下圖:

app.js

var azure = require('azure-storage');
var five = require('johnny-five');

var accountName = 'XXX'; // Enter your Azure storage account name
var accountKey = 'OOO'; // Enter your Azure storage account key
var tableName = 'MyLightSensorData'; // Name of your table to store the light sensor data

var arduinoPort = 'COM4';// Enter your Arduino Port

var tableService = azure.createTableService(accountName, accountKey);

if (CreateTable()) {
InitializeBoard();
}

// Create a table in Azure storage
function CreateTable() {
tableService.createTableIfNotExists(tableName, function (error, result, response) {
  if (error) {
    console.log(error);
    return false;
  }
});
return true;
}

// Initialize the Arduino board with Johnny-Five
function InitializeBoard() {
var board = new five.Board({ port: arduinoPort });

board.on('ready', function () {
  lightSensor = new five.Sensor({
    pin: "A0",
    freq: 30000 // 上傳間隔30秒
  });

  lightSensor.on('change', function () {
    InsertValue(this.value);
  });
});
}

function InsertValue(value) {
console.log('Value to insert: ' + value);

//建立一個實體,將光感測器值與日期存在資料表中
var entGen = azure.TableUtilities.entityGenerator;
var entity = {
  PartitionKey: entGen.String('Light'),
  RowKey: entGen.String(String(Date.now())),
  intValue: entGen.Int32(value),
  dateValue: entGen.DateTime(new Date().toISOString()),
};

//將實體插入Azure storage table
tableService.insertEntity(tableName, entity, function (error, result, response) {
  if (error) {
    console.log(error);
  }
});
}

 

執行與檢視資料

請在powershell 下切換到您的您解壓縮 azure-iot-sdk的資料夾下(我們的路徑是 C:\Users\lattepanda),執行以下指令來執行程式。 /XX 資料夾之後執行以下指令:

node app.js

即可看到以下畫面,由console中可看到程式已經陸續上傳多筆資料了。後續我們會在 VisualStudio 中檢視您所上傳的資料。

回到 Azure portal 的 storage acount,在左側選單中找到 Activity log選項,可以看到方才執行的動作。

在 Visual Studio中檢視資料

開啟VisualStudio時,請點選Connect to Azure並用您的Azure帳號登入。

在工具列的 View 中,點選 Server Explorer

登入您的 Azure 帳號之後,即可在 Storage 選項中找到您所建立的 Table 名稱(MyLightSensorData),點選即可看到資料喔!

在PowerBI中檢視資料( 選用)

Power BI 是微軟提供的商務分析工具套件,可用來分析資料及共用深入資訊。透過自行定義或預設的儀表板模組,使用者可以匯入、分析並取得資料中的重要資訊,協助決策。

登入Power BI 之後,您可以在此檢視 Azure storage 中的資料,就是上述我們所執行的程式結果。請點選下圖的 [取得 資料庫],並登入您的 Azure 帳號再輸入您的 server 路徑以及資料庫名稱,完成之後即可看到同一筆資料了

參考資料:

 

  1. 建議使用powershell,開啟方法:win+R快捷見,然後輸入powershell就可以開啟了
  2. 建議使用git,下載網址:https://git-scm.com/download/win

Git – Downloading Package

The entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Dead tree versions are available on Amazon.com.

git-scm.com

  1. 打開powershell,cd 到你想裝的地方,預設是直接在使用者的家目錄,然後輸入git clone https://github.com/Azure/azure-iot-sdks.git

Azure/azure-iot-sdks

azure-iot-sdks – SDKs for a variety of languages and platforms that help connect devices to Microsoft Azure IoT services

github.com

  1. 根據教學文它需要把其中node的submodule一併裝進來,所以輸入:git submodule update –init — node

這樣就搞定了

 

相關文章:

 

[ Scratch2.0] 從零開始學習遊戲製作-射擊篇

$
0
0
作者/攝影   郭皇甫
時間   12小時
成本   時間
難度   * * *
材料表
  • 個人電腦 (作業系統可用 Windows)
  • Scratch

談到遊戲,您可能會想到不久前的「Pokemon Go」,而六、七年級生也許會想到「最終幻想」、「勇者鬥惡龍」、「超級瑪琍」,這些遊戲從2D橫向畫面發展到3D立體世界,每一款都深植人心,想要做出好遊戲不容易,所幸在這個世代裡,我們有許多好工具可以使用,本篇文章將與您分享如何使用Scratch軟體,從零開始製作遊戲,首先來試玩一下今天要製作的遊戲吧!

<iframe allowtransparency=”true” width=”485″ height=”402″ src=”//scratch.mit.edu/projects/embed/142876917/?autostart=false” frameborder=”0″ allowfullscreen></iframe>

在製作遊戲前,我們要先知道遊戲本身需具備哪些要素?簡單來說,角色、場景、音樂是組成遊戲最基本的三個要素。遊戲就是構築一個虛擬的世界或情境,讓玩家能夠身歷其境,而「角色」就是玩家在遊戲中的代言人;「場景」是針對遊戲的故事背景、類型而建立的環境;最後也是最重要的「音樂」,除了視覺的刺激也要聽覺的享受,選對音樂能夠讓遊戲加分不少。不管是製作哪一種類型的遊戲,總是離不開這三項基本要素,接下來,讓我們從頭開始製作遊戲吧。

首先要決定這款遊戲的類型,「射擊類」、「運動類」、「反應類」、「益智類」、「動作類」、「角色扮演類」、「策略模擬類」,考慮到Scratch本身無法執行太大的程式,所以我們選擇「射擊類」。這款遊戲有點類似骨灰級遊戲「小蜜蜂」,角色在畫面底下左右移動,並且發射子彈射擊從畫面上方落下的敵人,那麼就請您跟著我們一步一步來設計吧!

角色是玩家在遊戲中的代言人,角色本身的形象、言語、行為能否與遊戲一致,通常會是玩家認同這款遊戲的重點,所以選擇適合的角色也很重要。

 

Step1:匯入角色。

我們先從從網路上下載一張飛機的圖片,並匯入至Scratch角色區內。在新增角色/上傳角色檔案,選擇剛才下載的圖片,確定後載入。

開啟角色檔案

選擇下載的圖片

 

Step2:控制角色。

角色匯入後,我們要讓角色能夠移動,藉由鍵盤上的左、右鍵,控制飛機左右移動,並同時設定角色的大小與初始位置,程式如下。

控制角色左右移動並設定大小與初始位置

Step3:設定子彈。

現在我們已經可以使用鍵盤控制飛機左右移動,接下來我們希望當按下空白鍵時,子彈能夠從飛機射出。首先在新增角色/畫新角色中,繪製子彈的圖案,並且在「控制區」的積木內,找到「建立自己的分身」。一開始讓子彈隱藏起來,等到按下空白鍵時,讓子彈建立自己的分身,產生分身的同時顯示圖案,並且將圖案的y座標重複增加10直到大於170後刪除分身。

按下空白鍵,建立分身

產生分身時,將y座標重複增加10

若要同時射出二顆子彈,則只需在另一顆子彈設定,當分身產生時,將x座標改變30

Step4:設定敵機npc

接著我們要在畫面上方,設定敵機能夠隨機出現,並且當敵機被子彈碰到時,會自動消失並爆炸。程式相當容易,一開始先隱藏,初始化大小與位置後,重複執行建立自己的分身,當分身產生時,顯示並讓分身的x座標在-210~210之間隨機選一個數,這時候敵機要能夠從畫面上方往下移動,直到碰到最底部或者碰到子彈(角色2、角色3),為了製造爆炸的效果,加上條件如果碰到子彈就切換成爆炸的造型(boom2),等待0.2秒後隱藏。

初始化大小與位置並建立分身。

設定當分身產生時,如果碰到子彈或是y座標小於-180則跳出重複執行;加上條件如果碰到子彈時,將造型切換成爆炸的圖片。

Step5:設定血量、音效。

我們將敵機與主角機設定完畢後,接下來要制定出主角機的血量以及發射子彈與爆炸的音效。首先在新增角色/從範例庫中選擇角色,找到愛心的圖案,複製出3個後,設定初始位置與大小。主角機的血量應該要在碰到敵機時減少,所以我們要先回到背景裡新增一個變數名為「血量」,並初始化為3。這裡設定條件如果血量變數=2,則廣播heart3消失,血量每減少1,則愛心消失一個,以此類推;同時在npc1中設定當碰到角色1時,血量變數-1;最後分別在三個愛心圖案中設定當接收到廣播時隱藏起來。音樂與音效是製作遊戲時,不可或缺的重要部份,我們從網路上下載射擊和爆炸的音效後,點擊子彈(角色2),選擇音效/新增音效/上傳音效檔案,將下載的射擊音效匯入,接著在「當分身產生」底下加入程式「播放音效」;同理,我們在npc1的音效中匯入爆炸音效,並在程式「切換造型到boom2」底下加入播放音效。

新增角色

從角色範例庫中找到愛心圖案

在愛心圖案中設定初始大小與位置

在背景中新增並初始化變數「血量」,設定條件如果變數分別等於2、1、0時,廣播heart3、heart2、heart消失。

在npc1中增加條件如果碰到角色1,則切換造型爆炸並將血量變數減少1。

分別在三個愛心裡,設定當接收到廣播時,隱藏圖案。

 

在子彈(角色2)和npc1中分別加入射擊、爆炸音效

在角色2中加入播放音效

在npc1中加入爆炸音效

Step6:設定背景圖片、音樂與開始畫面。

最後我們要在背景中匯入適合的圖片,您可以上網找尋自己喜愛的圖片,我們使用新增角色/畫新角色,將背景倒入淡藍色當作天空,並新增三朵白雲。為了讓白雲有移動的感覺,建立分身,並設定讓分身產生在x座標隨機產生,並重複改變y座標。新增背景當作開始畫面,加入「Press “a” to start」字樣,按下a鍵開始遊戲,並加入程式,當按下a鍵,切換到背景2並廣播「遊戲開始」播放背景音樂。

在背景中倒入淡藍色並新增三朵白雲。

分別設定三朵白雲的移動與產生方式

新增開始介面的背景,您可以選擇從範例圖庫匯入、畫新背景、從網路下載並匯入。

設定背景程式,當按下a鍵,則廣播遊戲開始並播放背景音樂。

最後要特別注意的是,我們在背景中設定了條件「廣播遊戲開始」,也就是說,所有的

角色都要接收到廣播「遊戲開始」時,才能開始運作,所以,別忘記替換所有角色的「當綠

旗被點一下」成為廣播「當我接收到遊戲開始」。

 

角色一的「當綠旗被點一下」

角色一的「當綠旗被點一下」替換成「當我接收到遊戲開始」

遊戲製作的基本要素:角色、背景、音樂,您可以利用這三元素不斷延伸、製作屬於自己的小遊戲,熟練以後,您還可以挑戰更複雜的角色扮演與策略模擬遊戲,當然,本作的射擊遊戲中,還可以加入分數、時間、敵機攻擊等豐富的內容,讓小遊戲更完整,Scratch是一款非常好上手的程式設計軟體,對於想快速設計簡單的遊戲獲得成就感的玩家,是不錯的選擇喔!!

 

相關文章:

[3D繪圖] 復活節玩彩蛋_復活節彩蛋架繪製for DesignSpark Mechanical 2.0

$
0
0
作者/攝影   陳煜倫
時間   1小時
成本  約120元(列印時間20分)
難度   * * *
材料表
  • 3D列印機乙台
  • 列印耗材乙捲

復活節各位會想到甚麼呢?大家都怎麼慶祝呢?我猜大家大多想到的都是畫彩蛋吧!(沒關係!至少我是這樣想的),一般展示彩蛋的外型需要個架子,我們今天就來畫擺彩蛋的架子吧!

但在開始畫以前我們先來了解一下復活節怎麼來的。復活節顧名思義是指耶穌復活的日子,但是日子的計算有過些爭議,之後計算方式以每年3月21日當日或之後,出現月圓後的第一個星期日,就是復活節。今年(2017)復活節是4月16日。

那又為何要有彩蛋呢?傳說復活節彩蛋是復活節兔子發送的,蛋象徵初春一切恢復生機,兔子象徵多產和生命力。這節日後來加入很多民族的紀念法,現在主要就是做彩蛋了。

了解了就開始來畫圖吧!

Step1.繪製準備

本次使用的軟體是DesignSpark Mechanical 2.0

軟體優勢:

繪製方便、計算精準、與高階繪圖軟體方式相近、免費軟體。

到DesignSpark官網下載軟體

下載後安裝第一次使用時會有註冊的動作,依提示寫入依些資料就可以了。

 

Step2.蛋架繪製流程(環狀剖面建構法)

畫出一個『ㄑ』的形狀,代表蛋架單邊剖切面。

旋轉完成實體繪製。

製作想要切出的花紋

將不要的部分去除。

 

Step3.繪製切面圓型

當我們開啟程式後會看到這樣的頁面,但這裡不是我們製圖的地方。

 

在螢幕左上角有檔案按鈕,按下後可看見上圖。

依序按下【檔案】→【新增】→【設計】。(或直接用快速鍵Ctrl+N)

 

開啟後可以發現出現網格狀,網格上方有兩個有顏色的線,比對XYZ軸標示,就能發現與XY軸顏色一致。也就是指現在所處的平面為XY平面。

 

因我們要作圖的平面希望能是垂直於底面,所以我們要重新選擇作圖平面,因此點選3D模式後,點回草圖模式。

 

 

這時就可以再次選擇作圖平面,我們要選擇XZ平面,依照顏色知道是紅色及藍色。

 

 

點選後注意顏色,或是用左下角的軸向指示判別。

 

 

接著我們先畫出一個四方型以輔助作圖。

 

 

四方形其實他同時也是正多邊形,正好我們有個多邊形的指令可以運用。

 

 

【多邊形】的按鈕如上圖,在草圖功能鍵區第三排。按下後會反黃,代表已經選取。

 

 

點選原點後向外拉出,就會出現一六邊形,同時可看見有面數、直徑【Φ】、角度,三個對話框,可以利用【TAB】鍵切換輸入目標,將面數改為4,直徑輸入30,角度90,就會完成上圖。

 

 

做完動作要有習慣回選取模式,才不會不小心動到已經畫好的圖。

回到選取模式用滑鼠左鍵點選四方形會發現四方形會變綠色,並且在鼠標右上方出現對話方塊。此時將鼠標移動至對話框,可發現對話框右側按鈕叫【建構】。

 

 

按下後四方形即變為虛線。

 

 

再來使用【線條】功能畫出ㄑ的形狀,利用四邊形及原點即可完成。

 

 

畫出兩條直線後產生如上圖形。

 

 

使用【建立圓角】指令,將接近原點的角修成圓角。

 

點下尖端後會出現有個R字樣對話框,代表圓角半徑,輸入10就完成上圖。

 

 

回【選取】模式將ㄑ的形狀及圓角用Ctrl配合左鍵全都選取起來,被成功選取的部分會變成綠色。

 

 

選取後使用【平移複製】指令幫助作圖。

 

 

因為已經將ㄑ選取完成,按下【平移複製】指令後移動滑鼠即可看到一個被複製出來的ㄑ。將滑鼠移到圖形的外側然後在對話方塊中輸入1。

 

 

完成後上下兩側會有開口,用線條指令將其封閉。

 

利用方形上下邊的中點及建構線指令畫出一垂直且通過『原點』的直線。

Step4. 從圖形建立出本體

 

按下【拉出】指令,會發現左方有多出些功能按鈕,再如圖點選【旋轉】。

 

 

按下後可發現有文字提示出現在左上方。依提示選擇剛剛畫出的軸(建構線)。

 

 

依提示選取剛畫好的封閉圖形。

 

 

選好後用滑鼠中鍵按住往上推,就可發現原點附近有個黃色環形箭頭。

 

 

用左鍵拉動環狀箭頭出現部分實體圖形,並有角度數值對話框出現可供更改,輸入360。

 

 

完成後就出現架子的基本型態了。

 

Step5.切銷出造型

切銷形狀依然需要作圖平面,可是適合作圖的XY平面被擋住了,因此為了方便繪製,我們需要另外製造平面。

有些人可能知道些平面的條件,其中最基本的就是三點成一面。但是我們今天不這樣使用。我們使用圓定義平面。

 

按下平面指令,在中間偏右的區域有一區叫插入,有個像平行四邊形的就是【平面】指令按鈕。

 

 

直接點選上方圓形邊緣,就能直接產生平面。點下左鍵後有看到藍色方框不因為滑鼠移動而消失,就是已經完成平面了。

 

 

完成平面後,用草圖模式選擇剛剛畫出的平面進入作圖。

 

 

按下下方功能鍵【正面視圖】,將圖面轉正。

 

 

畫出想要的圖形,這裡用橢圓形來示範。等會作圖後會向下切銷本體,所以我們要在這裡劃出要切掉的圖形。

在草圖區域有【橢圓】的指令功能鍵,在圓點點一下代表圓心位置就可拉出圖形,拉出想要的長度後點一次左鍵,會換成寬,決定後點下左鍵就完成橢圓。

 

 

橢圓長寬可以自己決定,但是長不可超過25。寬也不宜過寬,約在2以下。長超過會使架子不堅固,或是直接切斷。寬超過會使等會複製的圖形減少,或直接讓中間斷掉,這些情況都可以再等一下複製圖形時可以看出來。

 

 

這裡要請各位注意一下,這裡的步驟比較多。

請先選取橢圓成為綠色,這時依序按下【移動】→【選項-移動】→【建立陣列】。

選取完畢就可以轉動藍色箭頭。

 

 

轉動到約72度角時會產生約5個橢圓,當然若不同角度也有不同數量,不過注意,兩相鄰橢圓重疊部分不可太高,若到達綠色本體的高度就代表切下去會斷成兩半。因此剛剛才會要將寬度限制在2以下,這裡複製的數量也只有5個。

 

 

完成圖形複製(陣列)後,中間有很多圖形重疊的部分,那會讓我們拉出切銷時產生不便,因此我們需要做些修剪(剪裁)動作。在草圖指令區,第二排最右功能鍵就是【修剪】,在這裡我們使用窗選技法完成。

 

 

注意上圖箭頭處有個不明顯的小框框,那是用滑鼠按住左鍵拖曳產生的。這時框框框住的地方有效範圍會變成綠色。這時放開左鍵確定就能將綠色的線段減掉。

 

 

完成圖形修剪後就可以很方便的選取好整個切銷圖形,選取後用【拉動】指令準備切銷。

 

 

選擇好圖形後會發現鼠標右上角出現對話框,點選【-】符號,指定等一下的動作是切銷。

 

 

向下拉動超過本體的長度就會發現整個蛋架圖形已經切削完成。

 

完成後利用滑鼠中鍵稍微轉動,觀察所完成的圖形,這樣就可以存檔了。

Step6. 存檔

按下【檔案】→【儲存】就可完成存檔。存檔後可保留繪圖軟體自用的檔案。方便日後參考或修改。但是要拿來列印的檔案不相同,因此需要另存。

 

依序按下【檔案】→【另存新檔】。

 

在存檔類型對話框後方有個向下箭頭,按下後會出現下拉式選單,選擇STL檔。

按下後再按【存檔】就完成了。

這樣大家就可以將完成的STL檔案交給3D列印機輸出了。希望大家喜歡今天的課題。

 

相關文章:

Viewing all 678 articles
Browse latest View live