Author Archives: 徐 豐智

[Arduino專題好用] 自己製作Arduino擴充板,使用Multism Blue

 

設計/撰寫者

皓云/鈺莨

時間

三小時

難度

***

材料表

今日要跟大家分享的作品是Arduino馬達擴充板,我們在作馬達控制的專題,尤其要接兩顆馬達的時候(例如:自走車),如果直接接Arduino,可能會因為Arduino的電流太小而推不動馬達,或是馬達電流太大把Arduino燒壞的風險,所以必須要外接馬達驅動晶片L298N。

當我們在做專題時,都會先用杜邦線接,但是馬達驅動晶片的腳位很多,接好之後如果要帶去展示時,在運送過程中難免會有杜邦線脫落的現象,造成要查線路的問題,畫擴充板便可以解決這個問題。

那麼作成擴充板的形式還有何麼好處呢?

  • 馬達驅動晶片接線複雜,可以減少電路斷路的風險
  • 將常用的元件焊在一起,具有獨特功能性
  • 利用擴充板形式可以節省空間,好收納
  • 可以小型量產

在繪製之前必須要先下載Arduino的所需檔案

本文是用Multism Blue的電路軟體來繪製,下載軟體及安裝步驟請參閱:

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

我們的目標就是要畫出下列的接線示意圖:

圖2

Arduino接腳對應馬達驅動晶片

ArduinoL293D
D3P15
D5P10
D6P7
D9P2
5VP1、9、16
GNDP4、5、12、13

 

 

繪製Arduino擴充板電路圖

1.先開啟舊檔,先匯入 『arduino_uno.ms14』的檔案

圖3

 

2.開啟之後會是Arduino 的電路圖,和l293d馬達驅動晶片底座,為什麼說是馬達驅動晶片底座呢?

因為實際上是鑽16個孔再把馬達驅動晶片底座焊在擴充板上,另外再把l293d嵌入在底座上面,如果l293d燒壞,還可以鑷子更換l293d。

 

圖4

 

3.新增電路的電壓Vcc元件,也就是Arduino所提供的5V

「Source 」→「POWER_SOURCES」→「VCC」 → 點選「OK」

圖5

 

  1. 新增兩個Vcc 元件連接在l293d的1、9、16號腳位

圖6

 

5.再新增接地線共地,以保持電位為零。

「Source」 →「GROUND」 → 點選「OK」

 

圖7

 

6.一樣也是新增兩個接地線接到L293D的4、5、12、13號腳位

圖8

 

 

7.新增當頁接頭,這功能是Multism Blue特點之一

  • 可以取代了從l293d的腳位直接拉線到Arduino腳位的線路複雜度
  • 畫面較為簡潔,能快速了解線路

 

在選項欄位的「Place」→「Connect」→「On-page  connector」

圖9

 

圖10

 

8.選擇IO3,即是代表Arduino的腳位

圖11

 

圖12

 

 

  1. 重複7、8的步驟,另外在新增接頭IO5、 IO6、 IO9

圖13

 

 

10.將IO3、IO5、 IO6、 IO9分別接到l293d的15、10、7、2腳位

11.繪製輸出三個端子台來外接電池和2顆馬達,這種端子台上方有螺絲孔,可用一字起子轉鬆,將馬達或電池的單芯線插入孔內,再利用一字起子轉緊即可完成線路連接。

 

到「Mouser Database」→「Connectors」 →

「CONN_SCREW_TERM_Phoenix_Contact」→「1715721」

圖15

 

  1. 查詢元件相關資料
    有些電路符號都長得很類似,如果想知道實體元件長得如何,可以在上圖第5個步驟有元件的網路連結提供查閱相關資訊

圖16

 

  1. 一個接l293d的3號和5號腳位;一個接l293d的14號和11號腳位;另一個則是接l293d的8號腳位及接地。

圖17

 


將電路圖轉成PCB

 

14.在MultisimBlue電路圖繪製完成之後,再來就是將電路圖轉換成PCB繪圖軟體檔案

欄位上的「Transfer」→「Transfer to Ultiboard」→「Transfer to Ultiboard 14.0」

 

圖18

 

15.轉換完畢之後,MultisimBlue會開啟另一個PCB繪圖軟體,在電路圖中電子元件的接線,會在PCB軟體轉換成預拉線。

圖19
16. 刪除長方形黃色外板框

在左邊PCB欄位,點選兩下Board Outline,Board Outline即是外板框的意思,就是板子的外型,可以任意改變形狀。

[ 電路設計軟體Multisim Blue ] 花朵、小雞、金魚造型LED燈設計 外板框就是設計成圓形。

 

圖20

 

點選黃色外板框之後會變成虛線,之後按下鍵盤的「Delete」,即可刪除。

圖21

 

 

17.匯入Arduino 外板框

「File」→ 「Import」→「DXF」

圖22

 

然後選取『arduino_un.DXF』檔案

圖23

 

在「Ultiboad layer 」裡,有下拉式選單選擇「Board Outline」,再將把所有的單位改成mm(重要)。

圖24

 

18.匯入後需將Arduino外板框回歸到原點(就是白色的十字),要把所有的外框線設為群組,這樣所有的外框線就會一起移動。

 

首先將全選外框線

圖25

 

在外框線上按滑鼠右鍵選擇「Group selection」,再按「Properties」

圖26

 

 

 

會進到 「Group Properties」 裡 ,在分頁的「Position」的X、Y欄位分別都填上0,單位記得也要改成mm。

圖27

 

19.解除群組,一樣也是先框住所有的外框線,按右鍵選擇「Ungroup selection」,這樣的作法是為了要把元件放進外板框裡,如果沒有解除群組,元件就會把外板框擠掉而放不進去。

圖28

 

 

20.將Arduino的腳位和其他電子元件排列,先排列Arduino腳位,之後再放其他元件。

 

網路上有網友繪製出Arduino的尺寸圖,原點一樣也是在左下角,但是圖中所有尺寸皆是mil,必須換成mm(1mil = 0.0254mm ),也就是所有尺寸皆乘上0.0254。

 

圖29

 

(圖片來源: https://blog.arduino.cc/2011/01/05/nice-drawings-of-the-arduino-uno-and-mega-2560/)

 

 

將上述的尺寸轉換成座標,便可以定義出Arduino 腳位配置圖,這邊單位一律為mm。

圖30

 

現在座標已經定義出來了,這邊在畫上圖中J1、J2、J4、IOL時,我要怎麼知道位置是對的呢?以J4為例,在其中一個腳位(就是藍色圈圈)中按下滑鼠右鍵,點選「Properties」,會跑出「Through Hole Pin Properties」的視窗,分頁選「General」,欄位上有「Net」,就知道這個腳位是Arduino的8號腳位了,其他以此類推。

圖31

圖32

 

知道了大概的位置之後接下來要輸入座標,繼續以J4座標(30.22,50.8)為例,點選整個J4元件(注意圖33中虛線),在按一下滑鼠右鍵,點選「Properties」,會跑出「 Group Properties」的視窗,分頁選「Position」,在X欄位輸入30.22,Y欄位輸入50.8,單位選mm,其他腳位以此類推。

圖33

圖34

 

排列好Arduino腳位後,再依序把其他元件排至適當位置

圖35

 

21.點選 ,可以快速佈線。

圖36

22.調整線徑的寬度

[ 電路設計軟體Multisim Blue ] 花朵、小雞、金魚造型LED燈設計的內文有提到: 『設計電路板時,線徑的大小與電磁干擾成反比,線的長度與電磁干擾成正比為了降低不必要的電磁干擾,將線徑加寬。』,在此我們設定0.5mm。

 

我們如果只要選線路,單單對線路做改變的話,只需要打開,再把其他選項關閉,便可以只選線,而不會選到其他元件。

圖37

 

選取所有線路之後按右鍵,一樣點選「Properties」,會出現「Trace  Properties」 視窗 ,「General」分頁欄位有「Width」,填入0.5。

圖38

 

之後會出現會有紅色圈圈的出現,左下角的「DRC」也開始變紅色為警示效果,是因為線和線之間太靠近,還需要做一些調整。

圖39

 

將線路整理

 

圖40

 

23.調整好之後可以按下,做3D預覽查看元件排列位置,焊錫走線是否一致。

 

圖41

 

[Raspberry Pi] 如何使用遠端桌面

作者

袁佑緣

時間

三小時

難度

***

材料表

  1. 電腦
  2. Raspberry Pi  (2018 Pi3+測試中)
  3. 網路線
  4. USB轉RJ45接頭(如果電腦需要額外的網路孔的話))

[Raspberry Pi] 完全不接螢幕鍵盤滑鼠,電腦一開始就用網路線遠端連線Pi 中, 我們有介紹過如何指透過網路線就可以連進去Raspberry Pi中, 但是有時候我們還是需要一個圖形化的界面來操作, 或者是要顯示圖像或影片, 所以本篇文章要來介紹一下如何使用遠端桌面來解決類似的問題。

以下是兩種常用的方法,VNC以及Xrdp。

使用VNC遠端桌面

首先請先將電腦與Raspberry Pi做連線, 並用SSH登入到Raspberry Pi中, 關於這部份有問題的話, 可以直接參考這篇文章的教學 [Raspberry Pi] 完全不接螢幕鍵盤滑鼠,電腦一開始就用網路線遠端連線Pi

登入之後, 請打上以下的指令來安裝tight vnc server, 好用來在Raspberry Pi上跑一個VNC遠端桌面的服務。

sudo apt-get install tightvncserver -y

安裝完成後, 可以在終端機中輸入以下的指令來開啟這個server,

vncserver

第一次啟動的話, 程式會提示使用者設定一組密碼, 長度為八個英文字母或數字, 另外, 讀者也可以設定一組只能觀看螢幕畫面的密碼, 在本範例是略過這一步, 所以輸入n,跳過這個選項, 設定完成後, 就會在家目錄底下的.vnc資料夾生成一些設定檔,如下圖。

在Raspbian中, 管理圖形話界面的xserver會有一個DISPLAY的環境參數可以去設定, 也就是說可以透過這個參數, 來設定你要輸出的畫面到那一個顯示上, 好比說我們現在開啟的vnc server是開在:1號上,

你可以輸入以下的指令來確認現在的vnc server是開在那一個DISPLAY上。

ps a | grep vnc

所以說vnc server可能會有好幾個DISPLAY正在活動, 例如:1, :2, :3, …​好幾個桌面這樣, 每一個桌面都可以讓各別的使用者進行不同的操作, 但如果說我想要關掉特定的DISPLAY的話, 可以透過以下的指令來關掉特定的桌面, 如以下範例中的:1 號DISPLAY。

vncserver -kill :1

順帶一提, 如果我想要開一個Full HD的桌面, 而且指定為DISPLAY :2號的話, 可以透過下面的指令來完成。

vncserver -geometry 1920x1080 :2

到這邊我們已經把server端的部份搞定了, 接下來就剩下我們的電腦要安裝vnc viewer, 來遠端連線到Raspberry Pi上的桌面系統了。

讀者可以下載Chrome瀏覽器, 並安裝 VNC Viewer for Google Chrome 這個插件。

安裝完成後可以在網址列那邊輸入 chrome://apps 就可以切換到Google Chrome瀏覽器裡的App清單中, 請點擊清單中的VNC Viewer,如下圖中的左上角。

打開VNC Viewer後, 我們就可以透過連到<Raspberry Pi的ip>:<vncserver的port>, 來開啟指定port下的遠端桌面。

理論上我們要透過ssh連線到Raspberry Pi時, 就會需要用到Raspberry Pi的IP位址, 但是如果我們忘記了想要再重新查詢一遍的話, 可以在終端機中打上以下的指令查詢, 如下圖中的10.42.0.135

ip a

至於在連線時, 我們會有指定一個<vncserver的port>, 意思是5900加上DISPLAY的編號, 好比說我要連到DISPLAY :1這個桌面, 就打上5901, :2 就5902, 依此類推。

如以下的範例, 連到10.42.0.135下的:1號桌面。

連線時, 同意非加密的連線。

並打上前面設定過的vncserver的密碼。

成功登入後如下圖。

使用瀏覽器的插件來連到vnc viewer的好處是跨平台, 但是如果讀者想使用其他方法, 例如下載自己作業系統上的vnc viewer程式的話, 以下推薦一個比較常用的 RealVNC Viewer 請根據您電腦的作業系統來下載安裝。

指定SSH中的圖形畫面要在哪一個桌面上輸出

如果說讀者是從ssh登入之後, 直接在終端機上呼叫一個需要跑圖形界面的程式, 例如呼叫xterm

xterm

那麼讀者應該會看到系統回傳一個錯誤, 表示無法開啟顯示, 因為在SSH中, 預設是沒有DISPLAY的設定的。

但是如果我們把DISPLAY設定成:1, 也就是指定到我們vnc server上的:1號桌面, 並再重新跑一次xterm

export DISPLAY=:1
xterm

如此一來就可以在vnc viewer的port 5901上的這個桌面, 看到xterm成功被啟動了,如下圖。

另外, 如果說你想要查一下這個vnc viewer連到的桌面, 現在DISPLAY是設定多少的話, 可以點擊桌面上方的終端機圖示,

打開終端機後,

輸入以下的指令來顯示DISPLAY這個環境變數,

echo $DISPLAY

可以看到, 在這個桌面下,確實是DISPLAY :1呢!

 

設定新的密碼
vncpasswd
刪除舊的密碼
rm -rf passwd

使用Xrdp遠端桌面

另外一個常用的方法是使用Xrdp, 這是一套由windows發展出來的protocal, 因為它一套專門用來做遠端桌面溝通的協定, 所以在功能上會比vnc來的多,而且處理效能會較好一些。

在Raspberry Pi上要使用Xrdp的話, 只要輸入以下指令下載安裝, 系統就會自動執行了。

sudo apt-get install xrdp -y

至於連到Xrdp的工具可以從以下的網址來下載

安裝完成後, 基本上跟vnc viewer的操作上是很類似的, 不過在這邊是指定Raspberry Pi的IP後, 把使用者的帳密打上去, 如下圖所示。

成功登入後就會看到熟悉的桌面系統囉!

[AI人工智慧] 在Raspberry Pi上安裝NCSDK

作者

袁佑緣

時間

三小時

難度

***

材料表

前言

本篇文章將帶領讀者在Raspberry Pi上安裝Intel Movidius SDK, 並測試Movidius NCS是否能成功跑NCSDK的範例檔, 請讀者準備好Raspberry Pi以及要燒錄映像檔的SD Card, 另外為了要能夠從電腦直接連到Raspberry Pi上進行操作, 所以我們還需要額外一條乙太網路線來做連接。

燒錄Raspberry Pi映像檔

首先我們必須到 Raspbian的官方網站 下載Raspberry Pi的映像檔, Raspbian目前有提供兩個版本可以用, Lite版是輕量版本, Desktop版則是會連同桌面系統都內建在裡面, 但相對的檔案會比較大。

接下來為了要燒錄Raspberry Pi的映像檔, 我們需要一些工具來做燒錄, 在這邊我們推薦一款來不錯的跨平台燒錄工具 Etcher, 請根據您的作業系統來選擇安裝檔。

下載完成後, 請打開Etcher, 如下圖所示,

接著點選Select image, 並選擇剛剛下載的Raspbian映像檔的壓縮檔 (這個zip檔不需要解壓縮,Etcher會自動解壓縮成映像檔)

接下來將SD Card插入電腦上, 並在Etcher上選擇系統上顯示的裝置, 例如下圖中的/dev/mmcblk0 (Windows作業系統的話則常見是F,G槽等等)

最後就可以按下Flash開始燒錄囉! 燒錄完成後後如下圖。

將Raspberry Pi預設為啟用SSH

通常為了安全的考量, 剛燒錄完全新的Raspberry Pi系統預設都會關閉SSH Server, 因為Raspbian預設的使用者帳密都是一樣的, 所以預設開啟的話, 有可能被其他有心人士利用。

但因為在這個範例中, 我們希望可以不需要連接螢幕跟鍵盤就可以操作Raspberry Pi, 所以我們會需要改成預設開啟SSH。

以下以Windows作業系統為例, 其他作業系統也是同樣概念。

首先我們先將燒錄完系統的SD Card插到電腦上, 此時電腦會讀到一個新的裝置, 如下圖中的boot(F:)。

點進去boot之後, 按下右鍵新增一個Text Document,

將此新增的空白文件命名為ssh, 而Raspbian再開機時, 會讀取boot中有沒有名為ssh的檔案, 如果有,就會預設為啟動SSH Server, 這樣我們就可以透過ssh連進去了。

至於怎麼透過電腦做SSH連線到Raspberry Pi, 有興趣的讀者可以連到以下的文章查看詳細的教學 “[Raspberry Pi] 如何透過網路線連接Raspberry Pi的SSH連線到Raspberry Pi小節

安裝NCSDK

在安裝之前, 我們先更新一下Raspberry Pi的系統套件。

請輸入以下的指令, 來更新系統套件。

[ sourcecode language=”cpp”] sudo apt-get update
[ /sourcecode]

接著請輸入以下的指令來升級系統的套件。

sudo apt-get upgrade -y

接著輸入以下指令將NCSDK的原始碼下載下來

git clone https://github.com/Movidius/ncsdk

使用cd指令將工作目錄移到nscdk這個資料夾中。

cd ncsdk

緊接著輸入以下的指令, 將NCSDK透過Makefile的設定安裝起來。

make install

安裝的過程中, 會需需要超級使用者的權限, 請打上Raspberry Pi的超級使用者的帳密, 預設帳密是pi/raspberry

另外, 除了安裝NCSDK的套件之外, 做影像辨識還需要額外的函式庫OpenCV, 請輸入y來同意安裝。

值得注意的是, 由於Raspbian系統上並沒有編好的OpenCV3函式庫, 所以必須讓Raspberry Pi從頭編譯, 這個步驟會花掉不少時間, 例如下圖是筆者的實測編譯總計時間是171分鐘, 幾乎快要三個小時呢! (筆者使用的是Raspberry Pi最新的第三代,不同代處理效能會不一樣,所花的時間也會不一樣)

最後為了要測試Raspberry Pi是否能正確使用NCS, 請先插入NCS到USB孔上, 再輸入以下的指令來執行範例程式hello_ncs_py

cd examples/apps/hello_ncs_py/
make run

如果顯示NCS device working就代表成功囉!

備份安裝完NCSDK的Raspbian系統

走筆至此, 我們好不容易裝好了NCSDK, 並且把OpenCV函式庫也編譯完成了, 最後也確認Raspberry Pi可以讀取到NCS裝置了, 如果說我想要再新的一塊Raspberry Pi上也完成這樣的設定, 能不能不要在重新來過, 而是就直接使用已經完成的備份檔呢? 答案是可以的喔!

關於在Raspberry Pi進行系統備份以及重新燒錄檔案的教學請參考這邊教學文章, [Raspberry Pi] 如何備份Raspberry Pi的系統

另外,如果是想要直接使用Cave團隊提供的系統備份檔的話, 可以從以下的連結來下載, 總大小約4GB左右, 裡面已經有完成所有的設定, 只要按照 [Raspberry Pi] 如何備份Raspberry Pi的系統 的 燒錄映像檔到新的SD Card上 (麻煩做一下文章連結) 小節的教學燒錄即可。

[Raspberry Pi] 不再備份整張SD卡,縮小RaspberryPi備份容量

作者

袁佑緣

時間

三小時

難度

***

材料表

  1. Raspberry Pi  (2018 Pi3+測試中)
  2. PC
  3. SD Card

在使用Raspberry Pi時, 我們常希望如果能夠將辛辛苦苦安裝完的系統備份起來, 以後只要將這個備份出來的映像檔燒錄到新的SD Card上, 就可以還原之前的系統了。

好比說在這篇文章中 [AI人工智慧應用] 在Raspberry Pi上安裝NCSDK , 光是安裝NCSDK以及編譯OpenCV函式庫就要花上快半天的的時間, 要是能夠直接備份系統的話, 以後就不用再花時間一直重新安裝了。

所以本篇將介紹如何備份Raspberry Pi的系統, 並把它做成映像檔存起來, 另外,一般來說備份出來的映像檔都會相當大, 好比說原本的記憶卡是16GB大小的, 備份出來的映像檔就會有16GB這麼大, 保存或傳輸檔案都非常不方便, 所以文章的後半段會探討怎麼縮減備份映像檔, 希望盡量壓縮到方便傳輸的大小, 例如本範中將原本16GB的映像檔縮減並壓縮到3.8GB大小的壓縮檔。

 

Windows系統下備份映像檔

在Windows作業系統下備份映像檔我們需要額外下載額外的工具, 請到以下的網址下載win32diskimager。

下載完成後, 請打開win32diskimager程式, 如下圖, 並點擊Device旁邊的資料夾圖示, 選擇映像檔要存檔的位置。

如下圖,選好存檔位置後,打上要存檔的檔名。

完成後,請將要備份的Raspberry Pi SD Card插到電腦上, 並在Device那邊選擇磁區, 如下圖的F槽, 選完按下下方的Read按鈕就會開始備份囉!

Linux系統下備份映像檔

在Linux系統下進行備份的話, 除了可以使用指令直接進行備份外, 還可以對備份出來的映像檔進行縮減大小的加工。

如果讀者的電腦不是Linux的作業系統的話, 建議可以參考此篇的教學[AI 人工智慧應用] MovidiusNCS在PC中設定Ubuntu虛擬機並執行NCSDK(上),使用虛擬機安裝一個Ubuntu linux的作業系統。

接下來我們進到正題, 首先請打開終端機, 輸入以下的指令

sudo dd bs=4M if=/dev/mmcblok0 | zip NCS-raspbian.zip -

讓我們一步步拆解這行指令的內容, /dev/mmcblok0是Raspberry Pi的SD Card插到電腦上後, 電腦辨識出的磁區位置(不同的電腦可能會辨識出不同的位置), 接著我們用dd指令將整個SD Card上的資料以4M的block size進行備份, 備份的過程中我們把這個備份出來的映像檔, 經過pipe(|)傳到zip指令中, 即時的使用zip指令將這個映像檔做壓縮, 最後存成一個壓縮檔叫做NCS-raspbian.zip, 至於前面加了sudo是因為要取用/dev/mmcblk0的話, 會需要用到超級使用者的權限。

順代一提, 使用dd這個備份工具的話, 預設是沒有明顯的備份過程顯示, 所以常常不知道現在的進度到那裡了, 所以筆者建議可以在dd指令中多加一個參數, 將dd的狀態(status)用progress這隻小程式顯示出來。

sudo dd bs=4M if=/dev/mmcblok0 status=progress | zip NCS-raspbian.zip -

備份過程如下圖。

另外如果說讀者的電腦上沒有progress這隻小程式的話, 可以透過系統的套件管理員來安裝, 如下圖(以Ubuntu系統為例)。

sudo apt-get install progress

縮減備份映像檔的大小

實際上, 備份出來的映像檔雖然經過zip壓縮後, 看起來會比較小, 但是在燒錄到新的SD Card時, 還是會解壓縮成原始的大小, 也就是原本的SD Card大小如果是16GB(即便是Raspberry Pi的系統實際上只用了6GB左右), 所以在這一小節, 我們要來探討一下怎麼縮減掉映像檔中不必要的部份。

首先我們把剛剛備份出來的壓縮映像檔解壓縮。 請輸入以下指令來解壓縮, 並存成映像檔NCS-raspbian.img。

unzip NCS-raspbian.zip NCS-raspbian.img

接著我們使用fdisk看一下這個映檔的內容以及大小, 如下圖, 應該會看到兩個部份, 一個其實就是Raspbian的boot的部份, 另外一個則是存放root系統的磁區。

我們記下第二個部份的Start位置, 如上圖的94208, 接下來將這個sector數值乘上512, 轉成標記第二個磁區的offset(單位是bytes) 並用losetup掛載到Linux系統上的loop device(/dev/loop0)

sudo losetup /dev/loop0 NCS-raspbian.img -o $((512*94208))

完成後, 先確認所使用的系統中有沒有gparted這隻程式, 如果沒有的話, 請使用套件管理員將它安裝完成, 以Ubuntu為例,

sudo apt-get install gparted

接著輸入以下的指令來對/dev/loop0這個裝置進行進一步的操作,

sudo gparted /dev/loop0

成功執行的話, 應該可以看到如下的視窗跳出。

請點選/dev/loop0這個裝置, 並按下右鍵選擇Resize, 最後拉動上方的磁區大小滑桿, 拉到想要縮減到的大小(建議在Minimum size外再留一些空間會比較好喔), 如下圖。

Resize設定完成後, 回到主畫面, 並按下上方的Apply按鈕, 開始進行重新劃分大小。

劃分過如下圖。

Resize完成後, 先別急著關掉, 請在Details那邊找到shrink file system底下的resize2fs -p ‘/dev/loop0’ 8388608K (詳細的數字可能有所不同), 這個數字是待會要進行縮減映像檔大小時會用到的數字。

 

怕忘記的話, 建議讀者可以按下Save Details把資料存起來。

最後我們不需要這個loop裝置了, 請輸入以下指令將它消掉。

sudo losetup --detach-all

最後我在重新使用losetup將整個映像檔掛到loop裝置上, 並使用fdisk工具來對它做重新切割磁區。

sudo losetup /dev/loop0 NCS-raspbian.img
sudo fdisk /dev/loop0

接下來, 在fdisk中輸入 d(刪除磁區), 2(指定刪除磁區2), n(新增一個磁區), p(選擇主要磁區), 2(選擇為磁區2), 94208(使用前面記下的起始sector), +8388608K(使用剛剛gpated中記下的縮減後的大小)

實際操作如下圖。

最後輸入w(寫入新的磁區分割), 過程中如果出現以下的提示, 請輸入N, 以保留ext4的檔案格式。

重新切割完磁區後可以輸入

sudo losetup --detach-all

來退出loop裝置。

改完磁區大小後, 我們要把映像檔中的多餘的部份去掉, 請先輸入

fdisk -l NCS-raspbian.img

並記下End Sector的位置, 如圖中的16871423。

最後使用truncate指令來去掉End Sector以後不要的部份。

truncate -s $((512*(16871423+1))) NCS-raspbian.img

讀者可以輸入以下的指令來查看裁剪過的映像檔明顯變小了(14.7GB → 8.1GB)

ls -lh NCS-raspbian.img

(補充) 使用pishrink來縮減映像檔大小

這邊補充網路上有人分享的專門用來縮減Raspberry Pi映像檔的工具, 叫做pishrink, 詳細的介紹可以去參考這個

請輸入以下的指令下載pishrink腳本。

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

將pishrink檔案屬性改為執行檔, 並用超級使用者的權限去執行縮減映像檔大小, 如以下的範例中, 用pishrink來縮減backup.img這份備份的映像檔。

chmod +x pishrink.sh
sudo ./pishrink.sh backup.img

燒錄映像檔到新的SD Card上

以上的映像檔縮減操作完成後, 建議可以重新做個壓縮檔, 讓檔案在更小一點方便傳輸。

zip NCS-raspbian.zip NCS-raspbian.img

現在如果說我們要將這個備份的映像檔壓縮檔燒錄到新的SD Card上時, 我們可以透過https://etcher.io/[Etcher]燒錄軟體,

指定映像檔的壓縮檔位置

插入SD Card後選擇裝置的位置,按下Flash燒錄即可。

 相關文章:

[AI 人工智慧應用] MovidiusNCS在PC中設定Ubuntu虛擬機並執行NCSDK(下)

 

作者

袁佑緣

時間

三小時

難度

***

材料表

  1. 電腦/筆記型電腦
  2. Movidius Neural Computer Stick

本篇是接續MovidiusNCS在PC中設定Ubuntu虛擬機並執行NCSDK(上), 在(下)篇中,我們將完成剩下的NCSDK安裝設定,分享如何讓虛擬機也可以跟Raspberry Pi遠端連線、在虛擬機中的Ubuntu作業系統可以使用Movidius NCS來做運算、壓縮並備份虛擬機的作業系統。

在Ubuntu虛擬機中安裝NCSDK

首先請將Ubuntu虛擬機開機,並登入您的使用者帳號,如下圖。

接下來請點選左上角的圖示, 叫出搜尋應用程式的選單, 接下來打上”terminal”來搜尋終端機, 最後點選terminal應用程式打開終端機。

另外補充一下,如果要是使用快捷鍵的方式來打開終端機, 可以按下<Ctrl>+<Alt>+T來開啟。

接下來請在終端機中輸入以下的指令, 來更新系統套件。

sudo apt-get update

接著請輸入以下的指令來升級系統的套件。

sudo apt-get upgrade -y

因為我們需要使用git來下載NCSDK的github原始碼, 所以請輸入以下指令來使用apt套件管理員來安裝git

sudo apt-get install git -y

 

接下來我們將NCSDK的github下載下來

git clone https://github.com/movidius/ncsdk

 

下載完成後, 我們使用cd指令將工作目錄移到nscdk這個資料夾中。

cd ncsdk

緊接著輸入以下的指令, 將NCSDK透過Makefile的設定安裝起來。

make install

 

安裝過程會花上不少時間, 請讀者耐心等候。

等安裝完成後, 程式會自動提示使用者要重新開一個新的終端機才會生效, 如下圖。

請讀者再重新開一個新的終端機, 並輸入以下的指令, 將工作目錄指定到一個hello_ncs_py的範例資料夾。

cd examples/apps/hello_ncs_py/

 

接著請將Movidius NCS 接到電腦的USB孔, 我們將要跑跑看這隻範例程式是否能正確的辨識到NCS, 並且能夠成功使用NCSDK的功能。

make run

如果說回傳的結果是上圖, 顯示NCS device working就代表成功囉!

測試NCSDK的examples

如果前面的NCSDK安裝與NCS裝置都可以正常運作的話, 我們可以來試試看跑其他的範例程式。

請打開終端機, 並切換工作目錄到ncsdk資料夾中, 並執行ncsdk中的examples。

cd ncsdk
make examples

 


執行程式的過程中, NCS會去下載並執行範例中的網路模型, 並實際評測跑出來的結果。

安裝SSH Server

有時候我們可能需要能透過SSH來連線到VirtualBox中的虛擬機, 那們這個時候就需要在Ubuntu作業系統中安裝SSH的server,

請輸入以下的指令來安裝openssh-server

sudo apt-get install openssh-server -y

安裝完成後, 我們必須將SSH的Service設置為啟用

sudo systemctl enable ssh

接下來下次虛擬機重開機的時候就會自動執行SSH Server了。

另外我們也可以透過指令的方式直接啟用SSH Server,

sudo systemctl start ssh

或者是查看SSH Server的狀態。

sudo systemctl status ssh

順帶一提, 如果是想要在Ubuntu作業系統中關機的話, 可以點選右上角的開關鍵, 並選擇Shutdown選項即可。

接下來我們看一下怎麼透過電腦來連到虛擬機中的Ubuntu系統中, 首先我們先下載Google Chrome瀏覽器, 並在瀏覽器中安裝一個 Chrome瀏覽器的插件Secure Shell

安裝完成後, 讀者可以直接在瀏覽器的網址列直接打上”ssh”, 接下來再按下Tab鍵就會自動進入ssh插件模式, 然後就可以打上”Ubuntu使用者名稱@localhost:2222″ 來連線到虛擬機中, 至於為什麼要連線到port 2222呢, 我們在之前的文章”完全不接螢幕鍵盤滑鼠,電腦一開始就用網路線遠端連線Pi” 有提到,在網路設定中有設定了Port Forwarding的緣故。

初次登入的話,一開始會先建立金鑰的認證, 請輸入”yes”來同意認證。

以下是成功登錄的畫面

另外這邊在分享一個進階的技巧, 其實有時候我們並不需要真的進到Ubuntu系統中的桌面環境, 大部分的時候我們只需要能夠登入系統中的shell即可對系統下指令, 讀者可以試著在啟動虛擬機時, 按下右鍵選擇Start→Headless Start, 這樣就可以省去開啟畫面的動作, 對電腦的計算負擔也會比較小喔。

虛擬機的Import/Export

最後,我們辛辛苦苦安裝完虛擬機並安裝了NCSDK函式庫後, 當然會希望可以把這個虛擬機直接存起來成一個VirtualBox的壓縮檔, 如此一來,在新的電腦上也可以使用VirtualBox來讀取這個輸出的壓縮檔, 直接引入安裝就可以使用。

首先點選左上角的File → Export Appliance

選擇要輸出的虛擬機,

接下來選擇檔名及儲存位置,

設定完成後就會開始輸出囉!

輸出完成後, 我們來看看如何引入這個OVA檔, 首先請點選File → Import Appliance

最後確認一下設定有沒有需要調整的, 比如說記憶體大小,USB Controller等, 預設的話會跟原始Export的虛擬機設定一樣。

另外,如果是想要直接使用CAVEDU團隊提供打包好的ova檔的話, 可以從以下的連結來下載,總大小約7GB左右, 裡面已經有完成本文上下兩篇的所有設定, 只要按照這一小節的教學引入即可喔。

 

相關文章:

[AI 人工智慧應用] MovidiusNCS在PC中設定Ubuntu虛擬機並執行NCSDK(上)

作者

袁佑緣

時間

三小時

難度

***

材料表

前言

為了要能夠在電腦上使用Movidius Neural Computation Stick(NCS), 我們必須在個人電腦上準備一些必要的工具, 例如:Ubuntu 16.04作業系統(目前NCS正式支持的系統版號)以及安裝必要的函式庫NCSDK。

由於一般人的電腦的作業系統都不是Ubuntu16.04, 所以我們必須要在電腦上安裝虛擬機來跑一個虛擬的系統。

以下我們將一步一步的帶各位讀者在自己的電腦上完成詳細的虛擬機設定, 如果是想要直接使用我們已經幫您做完的版本, 請直接跳到 “[Movidius NCS] 如何在PC中設定Ubuntu虛擬機並執行NCSDK(下) 的虛擬機的Import/Export 小節“。

懶人包教學影片可以看這裡,想一步一步自己設定請往下繼續看:

懶人包影片軟體連結,想一步一步自己設定請往下繼續看

1、更多Movidius AI運算連結,請下載2、3、4的檔案

2、VirtualBox軟體安裝檔連結

3、VirtualBox 作業系統懶人包安裝檔, Ubuntu for intel Movidius 神經運算棒 作業系統連結

4、VirtualBox USB2.0、USB3.0 Extension Pack.下載連結

安裝VirtualBox與下載Ubuntu作業系統

首先請先到以下的網址下載VirtualBox虛擬機, 並且根據您的作業系統來選擇要下載的安裝檔, 例如:假設讀者的電腦作業系統是Windows的話, 就在VirtualBox 52.6 platform packages, 就點選”Windos hosts”來下載。

接下來我們還必須要去下載VritulBox Extension Pack, 才能讓虛擬機使用USB3.0的功能。

再來請到以下的網站去下載Ubuntu 16.04系統,

新增虛擬機

下載完成後,請打開Virtualbox,並按下New新增一個虛擬機器。

接下來在Name上打上虛擬機的名稱, 並選擇Type為Linux, 選擇Version為Ubuntu (64-bit),如下圖。

接下來指定記憶體的大小,基本上至少要有2GB會比較夠。

接下來選擇建立一個虛擬的硬碟。

選擇硬碟檔案格式為VDI(VritualBox Disk Image)

指定硬碟維dynamically allocated。

最後指定虛擬硬碟的大小,建議10~15GB,或15GB以上。

設定安裝光碟

完成後在VirtualBox左邊的選單應該可以看到剛剛新增的虛擬機, 如下圖中的ubunutu-NCS, 接下來請按下右鍵,並點選Settings。

先選擇擇Storage, 然後在Optical Device點選光碟小圖示, 並選擇剛剛下載的Ubunutu 16.04安裝光碟。

設定USB Controller

接下來我們要來設定USB界面, 為了要讓虛擬機可以辨識到Movidius的NCS, 請先選擇Enable USB Controller, 並勾選USB 3.0 (xHCI) Controller。 如果不能勾選USB3.0的話,有可能是您沒有安裝前面提過的VirtualBox Extension Pack。

接下來在下面的USB Filter新增USB2跟USB3的設定,如下圖。

網路設定

最後,為了要讓使用者可以使用SSH遠端登入虛擬機中, 我們必須設定一個Port Forwarding的設定。

如下圖,將Host的port 2222轉送到Guset的port 22, 也就是說在讀者的電腦上如果用SSH連線到自己localhost的port 2222, 就會連線到虛擬機中的Ubuntu系統中(一般SSH Server預設是port 22)。

安裝Ubuntu系統

以上的設定都完成後, 請點選向右的箭頭(Start), 將虛擬機開機。

進入Ubuntu安裝光碟後, 請選擇右邊的Install Ubuntu。

接下來選擇Erase disk and install Ubuntu。

按下Continue繼續安裝。

選擇時區設定,如下範例中的台北。

在台灣的話,選擇預設的Keyboard Layout即可。

最後設定一下使用者名稱及密碼。

以上設定完成後, 虛擬機會需要花上一點時間安裝全新的Ubuntu作業系統。

當出現以下的圖示時, 就代表已經安裝完成了, 接下來只要按下Restart Now重新開機即可。

一般來說, 安裝完新的系統後,就會需要退出當初使用的安裝光碟, 不過不用擔心,VirtualBox會自動幫你做完, 所以讀者只要直接按下Enter繼續即可。

虛擬機重開之後, 應該就能夠進到新安裝的Ubuntu作業系統, 請輸入您設定的使用者密碼。

成功登入後, 讀者應該就可以看到如下圖的桌面, 代表已經安裝成功囉!

接下來,請讀者繼續到 [Movidius NCS] 如何在PC中設定Ubuntu虛擬機並執行NCSDK(下)完成剩下的NCSDK安裝設定。

 

相關文章:

[Raspberry Pi] 完全不接螢幕鍵盤滑鼠,電腦一開始就用網路線遠端連線Pi

 

作者

袁佑緣

時間

三小時

難度

***

材料表

  1. 電腦
  2. Raspberry Pi  (2018 Pi3+測試中)
  3. 網路線
  4. USB轉RJ45接頭(如果電腦需要額外的網路孔的話))

我們在使用Raspberry Pi時,常會需要額外的設備例如準備螢幕、鍵盤、滑鼠才可以操作, 使用上非常的不方便,而本文就是我們將介紹如何只透過一條網路線就能操作Raspberry Pi, 並且還可以透過筆電或桌電分享網路給Raspberry Pi,不用再辛苦地去接無線網路。

在PC中設定網路分享

以下的內容將會以Windows的作業系統為主(本範例用的是Win10), 使用macOS的朋友請直接參考另外一篇教學文 Raspberry Pi 教學-使用網路線讓電腦與樹莓派進行連線(For Mac OS X)

首先請先打開控制台(control panel),並打開網路設定。

接下來進到網路共用中心(Network and Sharing Center)。

應該會看到電腦上可以用的網路裝置,以筆者的電腦為例, 筆者有兩個乙太網路裝置,一個是讓電腦可以連到外網的裝置(“乙太網路”), 另外一個則是USB轉乙太網路卡(“乙太網路 2”),我們希望可以將這個連到外網的網路, 透過這個USB轉乙太網路卡分享網路給Raspberry Pi。

如果讀者現在打開左邊的網路介面卡設定(Change adapter settings)的話, 應該可以看另外一個網路裝置是打叉的, 因為我們在這上面還沒有設定網路, 如果直接接到Raspberry Pi上是不會有任何反應的。

所以為了要讓這個要分享給Raspberry Pi能有網路, 我們必須要從另外一個有接到外網的裝置, 分享網路給另外一個裝置。

點選功能(properties), 接下來選擇分享(Sharing)的選項, 並將分享的功能勾選如下圖, 並指定裝置為欲分享網路的裝置, 例如本範例中的”乙太網路 2″。

完成後可以點選欲分享網路的裝置中的詳細資料(Details), 如下圖,讀者可以看到右邊的IPv4 Address是192.168.137.1, 這是所分享的網路中的電腦IP位址, 但實際上Raspberry Pi的IP位址還不知道。

掃描Raspberry Pi的IP

所以我們還需要額外的工具來掃描Raspberry Pi的IP位址, 例如本篇範例中用到的Advaned IP Scanner, 這是一款免費的IP掃描工具, 讀者可以從以下的網址來下載。

接下來請安裝IP Scaner。

安裝完成後,執行IP Scanner, 如下圖,按下Scan之後就可以掃描電腦網域附近的可能裝置, 另外為了要節省少描的時間, 建議讀者可以把欲掃描的IP範圍給定, 例如本範例中的192.168.137.1-254。

最後我們記下掃到的Raspberry Pi IP位址, 例如本範例的(192.168.137.173)。

接下來我們只剩下最後一步, 就是要如何透過網路連線到Raspberry Pi, 一般來說我們會用SSH來去連這個IP, 進而登入Raspberry Pi的系統當中。

SSH連線到Raspberry Pi

為此我們必須準備好SSH的工具, 筆者建議可以透過 Chrome瀏覽器的插件Secure Shell 來進行SSH連線,因為瀏覽器是跨平台的,所以就算在macOS的系統上也可以適用。

安裝完成後,讀者可以直接在瀏覽器的網址列直接打上”ssh”, 接下來再按下Tab鍵就會自動進入ssh插件模式, 然後就可以打上”Raspberry Pi使用者@Raspberry Pi IP位址”, 例如本範例的”pi@192.168.137.173″。

初次登入的話,一開始會先建立金鑰的認證, 請輸入”yes”來同意認證。

成功登入後就會如下圖, 會進到一個Raspberry Pi中的shell中。

補充

如果讀者是在Raspberry Pi上安裝官方推薦的Raspbian系統的話, 一般來說,為了安全考量,預設都是會關閉SSH的功能, 所以說如果Raspberry Pi可以拿到電腦分享網路的IP, 但是卻SSH卻登不進去的話,可以按照下面的步驟來強制開啟SSH的功能,

首先請先將Raspberry Pi的燒錄過系統的SD卡插到電腦上面, 並打開裡面的”boot”磁區,如本範例中的F槽。

接著再右鍵新增一個空白文件,命名為ssh。

 

當Raspbian開機時,如果說boot磁區中有一個檔案檔名叫做ssh的話, 就會強制開啟ssh的功能,如下圖。

相關文章:

 

[Raspberry Pi 3+] 為您介紹新版樹莓派七大特點:Raspberry Pi 3 Model B Plus

 

作者/攝影宗諭 / 英國樹莓派基金會

Raspberry Pi 3 Mode B +購買傳送門

只有信用卡一般大小的Linux系統單板電腦Raspberry Pi(樹莓派),可說是英國電腦工業史上最偉大的成功之一!因為,自從2012年Raspberry Pi開始進行商業生產後,它已經銷售超過1900萬片,並且這個數字仍在快速攀升中。

從Raspberry Pi zero、Raspberry Pi 1、Raspberry Pi 2至Raspberry Pi 3,這塊單板電腦仍在持續進化,其應用也非常廣泛,比方說,試算表、文字編輯、遊戲⋯⋯等等,還能播放高畫質視訊影片,以及控制其他硬體,例如感測器和馬達,甚至可搭配Arduino與樂高機器人進行整合式應用。可以說,只要接上鍵盤、螢幕及滑鼠,Raspberry Pi就是一台小型個人電腦。而就在今天下午(2018年3月14日),其開發者英國樹莓派基金會透過官網對外宣佈,Raspberry Pi 3 Plus正式發行囉!相信大家對此一定非常好奇,現在,就讓小編帶大家一起來看看,究竟Raspberry Pi 3 Model B Plus(以下簡稱Raspberry Pi 3 B+)與Raspberry Pi 3 Model B相較,有何更新:

圖1 最新一代的樹莓派機身

1.CPU 從BC2837升級為 BC2837B0,1.2GHz四核心升級為1.4GHz四核心

 BC2837B0Raspberry Pi 3 Broadcom應用處理器的升級版本,優化了供電迴路,並且加裝了一個金屬蓋,這使Raspberry Pi 3 B+可以降低電壓運作以減少耗電量,同時可更加準確監控晶片的溫度。

Hint:CPU的位置和原本的不一樣,如果有機構/電路和CPU位置有關的話需要做修改

 

2.Wi-Fi升級為雙頻網路 2.4Ghz + 5Ghz

 與Raspberry Pi 3相較,Raspberry Pi 3 B+的Wi-Fi功能在2.4GHz頻寬下,有較佳表現。然而,在5GHz頻寬下,表現更是沒有話說,請參考以下表格:

Tx bandwidth (Mb/s)Rx bandwidth (Mb/s)
Raspberry Pi 3B35.735.6
Raspberry Pi 3B+ (2.4GHz)46.746.3
Raspberry Pi 3B+ (5GHz)102102

(表格資料由LibreELEC developer Milhouse提供)

值得一提的是,Wi-Fi的電路封裝在一片金屬片的屏蔽之下,上面還雕有小小的英國樹莓派基金會的Logo喔!

圖2樹莓派3 B+的CPU(中)與Wi-Fi裝置(左上)

 

3.藍芽升級為4.2版本有線網路升級

Raspberry Pi 3B+的有線網路連線速率,約略是Raspberry Pi 3B的三倍,請參考以下表格:

Tx bandwidth (Mb/s)Rx bandwidth (Mb/s)
Raspberry Pi 3B94.195.5
Raspberry Pi 3B+315315

(表格資料由LibreELEC developer Milhouse提供)

4.增添PoE功能(Power over Ethernet,網路線供電)

使用了有PoE支援的magjack,把PoE所需要的電源/訊號接到4pin header方便PoE Hat使用。

Hint:4pin header在原本的reset pin位置,如果有機構/電路和reset pin位置有關的話
需要做修改

圖3樹莓派3B+新增了PoE的功能,圖中也看見4 pin接頭。

 

5.CPU效能更加優化

這次Raspberry Pi 3 B+ 改善了 BCM2837B0 的供電封裝,而且新的MaxLinear MxL7704 電源管理 IC能夠調整電壓,過去不能調整電壓,只能透過降頻的方式降低電流,現在電壓也可以調整了。

而因為比較不會碰到過熱降頻,在較長時間下的性能也能提升。CPU頻率原本是1.4GHz,在高於70度為降低發熱量以避免過熱觸發降頻保護頻率會降低至1.2GHz。請參考以下這張圖表:

圖4(以上圖表由Gareth Halfacree提供)

6.GPU沒有變化,基於原本VideoCore的東西都不用改

 根據樹莓派基金會於官網上的說明,3D繪圖在Raspberry Pi 3 B+上依舊是可行的,這一點請大家放心。

 

7.價格

 最後一個點,當然就是大家相當關心的價格問題。在這點上,這款新的樹莓派可以說是沒有任何進展,仍然跟Raspberry 3 Model B一樣,維持在35英鎊,相信大家會樂於掏出口袋中的摳摳的。

 

結語

 一直以來,CAVEDU教育團隊製作了非常多運用樹莓派的專題與專案,也開設了許多關於樹莓派的課程及工作坊,可以說,CAVEDU是樹莓派的愛用者也是積極推廣者。透過這篇文章,盼望大家對於新版樹莓派有一個初步的了解,也請大家期待即將推出的Raspberry Pi 3 Model B+開箱文喔!

(本文多數資料與圖片引用自英國樹莓派基金會官網https://www.raspberrypi.org/

Raspberry Pi 3 Mode B +購買傳送門

相關文章:

[App Inventor] APP有聲書,使用工研院文字轉語音服務

這是一個使用 App Inventor 搭配工研院的文字轉語音服務有聲電子書,為CAVEDU今年度的實習生歐新暘設計

功能說明: 電子書整合聲音、動畫、圖片的特性呈現了多媒體的便利性,已成為時代的潮流,尤其在兒童讀物市場上不可或缺,本教學示範如何以Canvas和Player元件來達成有聲書的功能。

程式碼下載請點我

元件說明:

元件說明元件

元件類別 名稱 用途
Label title     顯示頁數
Label     content 顯示故事內文
Canvas Canvas1 顯示圖片
ImageSprite ImageSprite1 用來做動畫,提示使用者翻頁以閱讀
CheckBox    Boysound換成男聲音檔
CheckBox Girlsound 換成女聲音檔
CheckBox Tsound換成台語音檔
PlayerPlayer1播放聲音檔
ClockClock1計時功能

 

素材名稱:

1.png、2.png、3.png、4.png

boy1.wav、boy2.wav、boy3.wav、boy4.wav

girl1.wav、girl2.wav、girl3.wav、girl4.wav

Taiwanese1.wav、Taiwanese2.wav、Taiwanese3.wav、Taiwanese4.wav

 

程式碼:

1.宣告變數

程式碼1

       宣告time,控制手指的動畫。

       宣告voice_type,儲存現在聲音種類。

       宣告page,儲存現在頁數。

       宣告text,儲存故事內文。
2.初始化頁面

2

Screen1.Initialize方塊 :

進到Screen1螢幕初始化時,便執行do區塊內的動作,

可運用在一些前置性的操作上。

 (1)call tellstory 是本範例建的副程式,之後會說明。

 (2)設定ImageSprite1的圖片為hitfinger.png這個檔案。

 (3)設定ImageSprite1的X座標。

 (4)設定ImageSprite1的Y座標。

 

【參考】ImageSprite圖片精靈  、 Canvas畫布副程式

3

Clock1.Timer方塊:

當計時器停止作動時呼叫本事件。

本範例設定TimerInterval為100(毫秒),也就是0.1秒觸發一次Timer事件。

 (1)運用變數time來設定動畫,當此事件被呼叫一次,變數time值+1。

 (2)ImageSprite1.Heading 設定ImageSprite1的運動方向,

      向右為0°,向上為90°,向左為180°,向下為270°。

      ImageSprite1.Picture 設定ImageSprite1的圖片。

      ImageSprite1.Speed 設定ImageSprite1的運動速度。

 (3)當變數time = 26時,設定圖片為hitfinger.png,最後再設定變數time為0。

      會發現time變數值永遠處於0~26的狀態,運用這些狀態設置動畫。

 

【說明】finger.png:finger        hitfinger.png:hitfinger

想一下為什麼finger.png的手指圖案是上下顛倒的呢?

提示這跟heading有關。

因為heading是直接旋轉物件,而不是翻轉,所以換一張垂直翻轉的圖方向剛好。

8

3.講故事功能

4_N

tellstory方塊:

tellstory 是本範例建的副程式,功用包含顯示頁數、故事內文,與設定聲音、圖片。

 (1)設定當頁面是第一頁時,才會顯示聲音按鈕與ImageSprite1(手指)。

 (2)顯示所在頁數,length of list 會抓取 list的清單數目,這邊沒把程式寫死。

 (3)根據頁數設定圖片影像。

      圖片素材名稱要照順序命名才能這樣寫。

 (4)根據頁數,在先前建的text清單抓取內文。

 (5)根據按鈕勾選狀態與所在頁數,設定Player播放的聲音檔。

 

4.翻頁功能

6

Canvas1.Flung方塊:

當使用者手指滑過畫布時執行此事件。

 (1)當使用者手指往右滑(xvel > 0),代表往左翻頁,當page = 1時,無法往左翻頁。

    【註】xvel代表水平速度分量。

 (2)相反的就是往右翻頁,這邊用length of list沒把程式寫死,不用因不同頁數的故事

      而修改程式碼。

 (3)當使用者有碰觸畫布時,呼叫tellstory。

 

5.按鈕功能

7

Boysound.Changed方塊:

當Boysound按鈕的值變時,換句話說就是按鈕被按時就觸發此事件。

 (1)只有當Boysound按鈕是勾選的狀態,才執行下面的程式。

 (2)有三組按鈕 Boysound、Girlsound、Tsound,由於App inventor 2並沒有

    radio button的功能,所以要自己寫,這邊是讓當其中一個按鈕被按時,讓其他按

     鈕變成沒按的狀態,並控制Enabled的狀態,其他兩個按鈕也是照這個邏輯。

 

素材說明:

音檔部分使用工研院文字轉語音服務

圖檔使用Pixabay CC0圖片。

[Raspberry Pi 3]樹莓派3到台灣了,按照慣例來個開箱文

大家好,今天終於拿到等待已久的樹莓派3[RaspberryPi 3],事不宜遲,趕快來看一下跟樹莓派2比起來有什麼不同,這次樹莓派3由紅色的外盒改為紫色的外盒,說明書的感覺也和過去不同,由一本的手冊改成像之前小編組裝的鋼彈模型說明書,嗯、嗯,盒子的差異還好,最重要的還是Pi3這塊板子有沒有什麼改變

2018出品 Raspberry Pi 3 Mode B +購買傳送門

 

Raspberry Pi 3 與周邊套件規格請點我

2018出品 Raspberry Pi 3 Mode B +購買傳送門

 

20160308_163828-1024x576

20150209_151333

新版的盒子正面與背面

20160308_163751  20160308_164155

再來看看關鍵的板子了,關鍵字果然還是印在板子上的RaspberryPi 3 model B,一般我們拿到這種大小的板子都被稱作為model B,用的是時脈1.2Ghz的博通(Boardcom)晶片,最大的亮點正面左上角的毫不起眼的區塊,這就是pi3最新附加的功能,具有Wifi連線與藍芽4.0的功能。而背面microSD卡的插槽也有貼心的變化,再也不是彈跳式的插槽,使用者不會因為使用pi3到一半,SD卡忽然彈出的窘境。

03 04

這是這次整張的說明書

20160308_163930 20160308_163909

根據說明書,關鍵還是在電源,請選用電壓5V電流2A的變壓器才能驅動 Pi3,這跟Pi2有很大的不同

20160315_093258 20160315_093316

現在馬上把裝在觸控螢幕的樹莓派2換成樹莓派3,這次使用NOOB來安裝Raspbian作業系統

20160307_213548

這是安裝的畫面

20160307_213800

這次的Raspbian系統已經預先裝好了 LibreOffice 讓大家可以使用

20160307_220418

這次甚至有提供JAVA IDE,這是之前沒有提供,使用者要安裝得自己去尋找的好服務呢

20160307_220501

這次的WIFI使用者介面做的像Windows和MAC一樣,只要點擊訊號的圖片就可以立即顯示有哪一些WIFI可以使用,算是相當方便

20160307_220953

試著開一下網路攝影機跑影像串流,嗯,CPU的使用率大概是8%

20160307_225027

十月活動紀錄-花蓮高商Appinventor

20151017_131749

十月的兩個周末,受到資處科主任的邀請,小編坐火車來到花蓮市的花蓮高商,跟大家分享如何使用APPinventor,一到教室就有歡迎海報,讓小編受寵若驚阿,這次是10/17、10/24日的12小時,小班制密集訓練,讓我們來看看~

20151017_101725

這次總共有十位同學參加研習營,整天全神貫注,讓小編覺得花商的同學小小年紀,集中力就很不錯。

20151017_101735

進度跟得很快的同學,正在撥時間時間美化他的APP畫面

20151017_134921

現場除了同學之外,也有好幾位老師撥時間來學習如何使用APPinventor軟體,讓我覺得花商整體的學習欲望,不輸給北北基的學生們。

001 002

這次透過BMI計算機、小畫家、點餐系統、滾球遊戲,跟花商的同學與老師們分享APPinventor的換頁功能、運算功能、判斷式功能、繪圖功能、呼叫手機相簿功能、遊戲角色移動功能、利用手機傾斜讓人物移動的方向感測器功能,以及TQC測驗的點餐功能APP。希望讓分享的同學有所收穫。

003 004

  

[雙A計劃]自己的拳擊機器人自己改裝_使用Arduino;AppInventor by TKUEE-CILAB

robot13

今天小編要跟各位分享一個機器人改裝教學,它源自淡江大學電機系-CILAB實驗室的專題作品,

這項改裝作品在Tokyo Maker Fairer發表後,販賣這個機器人的公司也將這個發想概念運用在他們新的機器人產品上,

讓人覺得Maker與商品製造其實能很好的相輔相成。話不多說,我們來看看這個機器人影片吧。

看了這個影片,也想要自己動手改裝的話,請繼續往下看喔

  • 本項作品使用日本TOMY公司生產的“BATTROBORG 4G”拳擊機器人玩具,
  • 將原本的體感操控,改造成能利用Android裝置,透過藍芽來控制機器人的動作(體感下一篇敬請期待)。

一組機器人需要準備

  • Arduino開發版*1
  • 藍芽模組*1
  • 3號*4電池盒*1
  • 光耦合器元件PC817*2

電路測試

  • 請先按照附圖之電路圖在麵包板上佈置電路

在此我們利用LED來測試我們在光電耦合器的使用上是否正確

。若是配置正確,在我們用手機向藍芽裝置傳送資訊時,對應的LED就會閃碩。

robot01

Arduino程式編輯

在此我們監聽接上藍芽模組後的TxRx,當藍芽接收到傳送的字元‘0’或‘1’時,分別啟動連接於Pin 10&11的光電耦合器,藉此讓連接於耦合器另一端的LED的正負極導通。

int input = 0,left=10,right=11;

void setup(){

  pinMode(left,OUTPUT);  
  pinMode(right,OUTPUT);  

  Serial.begin(9600);

}

void loop(){

  while (Serial.available()>0){

    input= Serial.read();
    Serial.println(input);

    if(input=='0'){

      digitalWrite(left,HIGH);
      delay(100);
      digitalWrite(left,LOW);

    }else if(input=='1'){

      digitalWrite(right,HIGH);
      delay(100);
      digitalWrite(right,LOW);

    }

  }

}

AppInventor撰寫App

  • 1 介面初始化
    • 我們在APP介面(圖1a)上配屬了三個按鈕(上方的左拳&右拳與右下方的藍芽裝置斷線),與一個用來列出並選取可連線的藍芽裝置的ListPicker(左下藍芽裝置連線)。因為本APP需要與藍牙裝至連線,所以要將BluetoothClient元件加入至介面中。在程式初始化後,因為還沒連上任何藍芽裝置的關係,這時除了BTConnect外的其他按鈕將呈現灰色無法選取的狀態(圖1b)。

robot02

圖1a

robot03

圖1b

2 藍芽裝置連線

  • 在我們開啟藍芽裝置選單前,要先將可供連線的裝置清單輸入至選單中(圖2a)。選取裝置並確定連線成功後,將原本設為不可選取的左拳、右拳以及裝置斷線按鈕開啟(圖2b)。

robot04

圖2a

robot05

圖2b

3 藍芽功能實作

  • 當我們與裝置連線後,點擊左拳或右拳按鈕時,會透過藍芽對連線裝置送出字元的1與0資料(圖3a)。按下裝置斷線的按鈕時,則會與裝置斷開連結,並重新將需使用到藍芽功能的按鈕關閉(圖3b)。

robot06

圖3a

robot07

圖3b

實際測試

  • 將撰寫完成的APP燒錄至手機,當我們與Arduino上的藍芽模組連結,並按下左拳與右拳按鈕時,與之對應的LED就會閃碩,代表我們光電耦合器的使用與設置是正確的。

機器人手把

  • 手把與基板拆解
    • 本作品使用的拳擊機器人玩具為日本TOMY公司生產的“BATTROBORG 4G”,同樣方法適用於同公司前代產品“BATTROBORG 20“。

將手把拆開後,可以看到控制器是利用搖晃時,撞針撞擊簧片,簧片互相接觸後導致線路導通,觸發一個揮拳的訊號,因此我們才在此作品上使用光耦合器來當作觸發開關(圖4)。

robot08

圖4,橘線標記處為撞針與簧片

 

將基板拆下,如下圖(圖5),可以看到三個部分分別為基板供電、右拳揮拳以及左拳揮拳,這些就是等下要跳線到麵包板上使用的接點。(在這裡可以選擇將原廠焊好的線留著繼續使用,或者自行換上單芯線)

robot09

圖5,橘線標記處分別為 a.基板供電 b.右拳揮拳 c.左拳揮拳

成品測試

  • 按照下圖(圖6)指示將基板的左右揮拳腳位跳線至對應的光耦合器(因訊號觸發機制為腳位導通,故接線無正負之分),並將基板電源供電腳位分別接上+5V和接地,Arduino接電,及可讓基板與機器人連線,並讓手機透過藍芽操控拳擊機器人。

robot10

圖6

Maker Faire Tokyo展示的照片

robot11 robot12

9月19日CAVEDU Day有什麼?@(十)86duino六足機器人

20150914_15261920150914_152716

 

展覽資訊  報名請按我

作品說明:

86duino是台灣設計有麵包板的arduino。六足機器人的動作:前進、後退、左轉、右轉,每一個動作,伺服馬達會以五個步驟進行動作拆解,我們使用86me動作編輯器進行編輯,透過藍芽遙控86機器人移動。

使用硬體

86duinoONE、伺服機馬達 、藍芽模組。

程式語言

C語言、86duinoIDE、86動作編輯器

 

作品製作:CAVEDU 徐豐智

相關文章:使用86duino製作六足機器人_種子教師培訓