Category Archives: 物聯網

[ 介紹文 ] 2018.09.25- 當車子有了智慧,對我們的行車體驗有何影響?來看看Smart Car!

作者

Josh Go成功大學資訊工程系教授
黃崇明/成功大學資訊工程系博士生林士颺

圖片

pixabay

說明

轉載、改寫自「臺灣網路科教館」生活科學補給站內文章,特此致謝!原文請見

現今,車輛多半只負責運送乘客抵達目的地。然而,不久的將來,「智慧車」將提供過往未能達成的許多新功能,例如:主動式安全系統、自動駕駛系統、即時車流導航資訊系統⋯⋯等等。目前只出現在科幻電影內的許多特殊功能,即將實現於本文主角「智慧車」上。

 

什麼是智慧車?

「智慧車」不同於傳統汽車,它結合汽車、半導體、電子、資通訊及光電等科技於一身。其上整合應用多種不同感測器、雷達、無線通訊、攝影機等裝置,以達成我們需要的功能。「智慧車」的開發,通常以車輛安全、舒適便利及環保節能等三方向為主軸,可進一步探討如下:

圖1 廠商開發的智慧車

 

一、安全防護

車輛的安全性始終為車廠與駕駛關注的重要議題。以往,車廠透過許多技術提升車輛安全性,而未來的科技將更進一步於事故可能發生前,即產生安全防護。例如,在主動式防碰撞系統中,車輛利用裝配於其上裝置,提供的資訊進行運算,在事故可能發生前,即警示駕駛或產生相對應動作,例如自動減速⋯⋯等等,降低事故發生機率。

 

二、便利駕駛

未來的「智慧車」將提供更完整、豐富的功能,減輕駕駛負擔。其中一種無人駕駛的智慧車,許多科技大廠正積極研發中。無人智慧車提供語音或觸控螢幕,讓使用者輸入目的地,再依即時車流量資訊選擇最佳路線,將乘客以自動駕駛方式,安全運載至目的地。

圖2 無人智慧車提供語音或觸控螢幕(示意圖)

 

三、即時導航

以往的車輛導航系統,依全球定位系統(GPS)將車輛位置定位後,顯示於螢幕上,並依所設定目的地,找出較佳導航路線。而未來的即時導航系統,在尋找導航路線時,將同時考量車流量與擁塞⋯⋯等資訊,避免將車輛導引至塞車路段,讓駕駛可快速抵達目的地,同時降低廢氣污染,達成環保節能的目標。

 

四、車間通訊

「智慧車」能提供以往無法達成的許多功能。為達到這些功能,彼此交換車間訊息即為必須。除了行車資訊的傳遞和交換,「智慧車」更能透過車間通訊等方式,讓駕駛在車輛上連接各種不同網路。目前,車間通訊的重要發展,以結合通訊(Telecommunications)與資訊(Informatics)的車用資通訊(Telematics)技術為主。

 

五、環保要求

近年來,地球的平均溫度,因二氧化碳大量排放而日趨升高。為保護這獨一無二的地球,「智慧車」將以零汙染、零碳排的電力能源為動力系統。智慧車於日光充足時,利用太陽能電板補給電力;當日光微弱或夜晚時,可利用家用電源補足電力。此外,為便利使用者,不需電線的「無線充電系統」也將使用於智慧車上,只需將車開回車庫內(不需直接連接電源),即可自動替車子充電。

圖3 智慧車以電力能源做動力系統

 

六、延伸應用

除本身能提供的服務和功能外,「智慧車」更能擴展應用領域。例如,結合智慧型運輸系統(Intelligent Transport Systems,ITS) ,以提升先進交通管理服務、先進旅行者資訊服務、先進公共運輸服務、先進車輛控制安全服務、商車營運服務、緊急事故支援服務、電子收付費服務、資訊管理系統、弱勢使用者保護服務等九大領域。

 

小結

為更快速抵達目的地,以及有更安全、舒適的行車體驗,「智慧車」應運而生,並提供過往車輛未能具備的功能。而在不久的將來,過去只有在科幻電影中現身,車輛的種種炫麗功能,將可能一一實現在智慧車上。就讓我們拭目以待吧!

 

相關文章

[Raspberry Pi] 電腦跨網段,也可遠端連線樹莓派喔!!

本篇為[Raspberry Pi] 如何使用遠端桌面 的延續文章,使用RealVNC與各位讀者分享,如何不需在同一網段內也可進行遠端連線。

作者/攝影

CAVEDU教育團隊 許鈺莨

文章分類教學技術文
時間一小時內
成本最低1500起
難度

*

材料表
  1. 電腦或其他行動裝置
  2. Raspberry Pi(若欲購買樹莓派,請洽機器人王國商城)

1.在Raspberry Pi上安裝VNC

一開始必須在Raspberry Pi安裝VNC Connect,建議外接螢幕、鍵盤、滑鼠,或用類似像Putty、MobaXterm的軟體SSH登入Raspberry Pi,相關教學請看
[Raspberry Pi] 完全不接螢幕鍵盤滑鼠,電腦一開始就用網路線遠端連線Pi 

 

打開終端機之後,請鍵入:

	sudo apt-get update
	sudo apt-get install realvnc-vnc-server
圖1

 

圖2

 

圖3 按Y同意安裝,即可安裝完成。

 

如何開機自動執行RealVNC

a.有接螢幕、鍵盤、滑鼠

圖4 點選左上角樹莓派圖示,選「Preferences」 ->「Raspberry Pi Configuration」。

 

圖5 選「Interfaces」,再至VNC選「Enabled」。

 

圖6 重新開機即可

 

b.使用Putty或MobaXterm等軟體SSH遠端登入

在終端機輸入:

	sudo raspi-config 

 

圖7

 

會出現選項,如下圖:

圖8 選「Interfacing Options」

 

圖9 再選VNC選項

 

圖10 選擇即可設定完成

 

2.在VNC官網註冊帳號

就和登入臉書或LINE等通訊軟體的概念一樣,要先註冊一組帳號,VNC官網: https://www.realvnc.com/en/onboarding/home/ ,註冊完畢後,便可依自己的帳號登入。

圖11 建立新帳號

 

圖12 勾選「我不是機器人」選項

 

圖13 填寫個人相關資訊

 

圖14 其它行動裝置教學

 

由於RealVNC可由帳號登入,所以不管是電腦或是可上網的行動裝置,只要安裝RealVNC Viewer,皆可遠端登入,讓我們以電腦為例子。

圖15 收到驗證信件

 

圖16 註冊成功

 

如圖15,當收到驗證信件時,請按下「VERIFY EMAIL」按鈕後,會跳轉至官方頁面,顯示如上圖16,表示註冊成功。

 

3.下載RealVNC Viewer至電腦

圖17 下載RealVNC Viewer(以Windows版本為例)

 

圖18 安裝完成畫面

 

圖19 按右上角「Sign in」輸入帳號

 

圖20 登入畫面,右邊為欲登入Raspberry Pi的區域。

 

4.遠端登入Raspberry Pi

圖21 新增連線對象,選「File」->「New connection」。

 

圖22 輸入Raspberry Pi的ip 位置及名稱後,按下OK。

 

圖23 成功新增連線對象Raspberry Pi

 

圖24 輸入驗證的使用者和密碼

 

這裡預設Username為「pi」,Password為「raspberry」。

圖25 第一次連線會出現認證警告,按「Continue」即可。

 

圖26 遠端登入成功畫面

 

相關文章

[ LinkIt 7697 ] 環保的錦囊妙計:如何用LinkIt 7697搭配聯發科技MCS,製作出魚菜共生裝置

現今,由於環保意識抬頭,社會各界紛紛意識到對環境友好的農耕方法,以及永續經營的重要性。所以,魚菜共生的高用水性,以及養魚、蝦所產生廢棄物的再生利用,是非常好永續利用環境、資源的一種耕種方式。這一篇文章,就是用手把手的方式,教大家如何自己做一個魚菜共生的裝置,一起來看看!

作者/攝影

CAVEDU教育團隊 薛皓云

文章分類教學技術文
時間2小時
成本3700+元
難度***
材料表1.LinkIt 7697開發板*1

(若欲購買,請洽機器人王國商城。)

2.RK IoT EXShield擴充板*1

(若欲購買,請洽機器人王國商城。)

3.5V1A變壓器*1

4.EIC 170孔麵包板*1

5.LED點矩陣 *1

6.土壤溼度感測器*1

7.繼電器模組*1

8.臥式有刷小水泵*1

9.Gravity:Waterproof DS18B20 Sensor Kit*1

(若欲購買,請洽機器人王國商城。)

10.Gravity:類比式酸鹼值感測器模組 *1

(若欲購買,請洽機器人王國商城。)

11.發泡煉石 60兩

12.SAMLA 11/22公升收納盒專用分隔板,透明 *1

13.SAMLA 收納盒 22公升 *1

14.跳線(母對母)10p

15.跳線(公對母)10p

16.塑膠軟管 45cm

 

需要的工具:

1.電工膠帶

2.熱熔膠槍

3.螺絲起子

硬體組裝:

1.將沉水馬達線透過杜邦線延長(紅正白負)

圖1

 

2.將沉水馬達利用熱融膠,黏至SAMLA收納盒 22公升底部角落。

圖2

 

3.將沉水馬達的線,利用熱融膠沿著箱子角落固定住。

圖3

 

4.接上塑膠軟管至沉水馬達上,並放著。

圖4

 

5.將RK IoT EXShield擴充板,利用熱融膠黏至SAMLA收納盒22公升側面(寬的那一面)。

圖5

 

圖6

 

6.在RK IoT EXShield擴充板上方,黏上繼電器。

圖7

 

7.將沉水馬達的白色電線接至繼電器上NO腳位

8.從繼電器COM腳位接一條跳線,至RK IoT EXShield的GND上。

圖8

 

9.繼電器上VCC、GND、IN,分別接上RK IoT EXShield的5V、GND、D8。

10.沉水馬達的正極,接於杜邦母頭左上角數來第4腳位。

圖9

 

11.將Waterproof感測器的水下感測器的黃、紅、黑線,分別接上Waterproof感測器轉接器的A、B、C。

圖10

 

12.將Waterproof感測器轉接器黏至外箱右上角上

圖11

 

13.將Waterproof感測器轉接器,接至RK IoT EXShield擴充版的D2。

14.將Waterproof感測器,放至SAMLA收納盒 22公升中。

圖12

 

15.裁切pH計的泡棉收納盒

圖13

 

圖14

 

16.將裁切完的泡棉,黏至SAMLA收納盒 22公升側面中間(窄的那一面)。

圖15

 

17.在SAMLA收納盒 22公升側面(窄的那一面),左下角黏上pH計轉接器。

18.接上pH計並放入泡棉收納盒中

圖16

 

19.將pH計轉接器,接至RK IoT EXShield擴充版的A1。

20.土壤感測器S、+、-,分別接至RK IoT EXShield擴充版的A0、5V、GND。

圖17

 

21.將發泡煉石,裝至SAMLA 11/22公升收納盒,專用分隔板中約5cm高。

圖18

 

22.將SAMLA 11/22公升收納盒專用分隔板,放至SAMLA 收納盒 22公升上,並將塑膠軟管從SAMLA 11/22公升收納盒專用分隔板中間穿出。

圖19

 

23.將土壤感測器置入發泡煉石中

圖20

 

24.將DHT11黏至RK IoT EXShield擴充板右下角

圖21

 

25.將DHT11的VCC、DATA、GND,分別接到RK IoT EXShield擴充版的VCC、A2(P16)、GND。

這樣硬體部分就大功告成囉!!

圖22

 

接下來是程式部分:

1.申請MCS(MediaTek Cloud Sandbox,簡稱MCS,由聯發科技所推出的雲端服務)帳號。

2.新增產品原型名稱設定如圖23

圖23

 

3.新增完畢後點選詳情

圖24

 

4.新增顯示通道酸鹼值——ID:ph;資料型態:浮點數;單位:N/A。

圖25

 

5.新增顯示通道水下溫度——ID:temp_wa;資料型態:浮點數;單位:攝氏。

圖26

 

6.新增顯示通道土壤溼度——ID:Mo;資料型態:分類Key1名稱:乾;Key1值:D;Key2名稱:濕;Key2值:W。

圖27

 

7.新增顯示通道室內溫度——ID:T;資料型態:整數;單位:攝氏。

圖28

 

8.新增顯示通道室內溼度——ID:H;資料型態:整數;單位:百分比。

圖29

 

9.新增測試裝置

圖30

 

10.完成後前往詳情

圖31

 

11.記下自己的 DeviceID 及 DeviceKey

圖32

 

12.開啟程式ino

13.將第7、8行的WiFi帳號密碼,更改成為自己的WiFi帳號密碼。

圖33

 

14.第10行中的MCS DeviceID及DeviceKey改成自己的ID及Key

圖34

 

15.將程式燒入至LinkIt 7697中,並將7697裝至RK IoT EXShield擴充板上。

16.接上5V1A電源等待7697連上網

 

這樣,我們自己的魚菜共生裝置就完成了!趕快動手嘗試一下喔!

 

相關文章

[新品開箱]micro:car來囉~~可結合 Grove Zero 套件的機器小車套件

作者/攝影

CAVEDU教育團隊 曾弘吉

文章分類

教學 (介紹性)

時間

1hr

成本

難度

** (1~10)

材料表

市面上搭配 micro:bit 的擴充板和機器人套件相當多,今天要介紹的是 SeeedStudio 的 micro:car。它有很方便的磁鐵接頭(絕對不會接錯!),還可以連接 Grove Zero 套件,感覺是相當好玩的套件。先來看看盒裝吧。

圖1

 

開盒之後,看到車體與循線用的光感測器,以及用來連接 micro:bit 的 Car shield。針對循跡車,也提供了三張場地紙及紅藍色筆,方便我們自行設計場地。

圖2

 

圖3

 

大家可以比較一下這些元件與micro:bit的大小,迷你、可愛應該是這款套件的亮點之一。

圖4

 

讓我們先把車體與循線感測器裝起來

圖5

 

再裝上 Car shield 和 micro:bit,馬上就成為一台循跡車囉!請讀者們注意上傳程式需將 micro usb 線接到 micro:bit,而 car shield 上的 micro usb 頭只用來供電。

圖6

 

另外,就是可以搭配 Grove Zero 套件,包含光、溫度、聲音及IMU感測器,還有LED陣列、按鈕及蜂鳴器⋯⋯等常用元件。這與 DFROBOT 的 BOSON 套件一樣,都是免寫程式,就可以讓小朋友體會輸入與輸出關係變化的簡易電子教學套件。有很多不同的變化,非常好玩!

圖7

 

不過,因為是磁力接頭的關係,所以無法同時接太多 zero 元件上去(會垂下來),可改成上下堆疊的方式來使用,在機構設計上更方便。例如,以下四種方式,皆可以讓聲音感測器的音量變化,反應於LED陣列的點亮顆數,相當直觀的應用。

 

以下四張做成 2 x 2 table:

圖8

 

圖9

 

圖10

 

圖11

 

相關文章

[ 翻譯 ] micro:bit 攻略(一):透過電線連接micro:bit

原文作者

Cigdem Sengul 與 Anthony Kirby

圖片

Cigdem Sengul 與 Anthony Kirby

翻譯宗諭審閱吉弘
說明

感謝作者Cigdem Sengul 與 Anthony Kirby授權,原文書的連結:https://microbit.nominetresearch.uk/networking-book/,特此致謝!

材料表
  • Micro:bit*2(若您想要購買micro:bit,歡迎洽詢機器人王國。)

  • 鱷魚夾線*4

  • 電池座*1

  • 3A電池*2

本文將示範如何透過電線(搭配鱷魚夾頭)連接兩個micro:bit,進而建立起您自己的網路。為讓兩個micro:bit可以彼此傳輸訊息,它們需要連結在一起,不論是有線或無線,而我們稱此為通訊媒介。

 

在兩個micro:bit間傳輸的訊息,可以是字串(String),如「Hello」;或是數字,如「9」;或是一個小圖案。micro:bit會把要傳輸的訊息轉變成為訊號,再透過通訊媒介傳送出去。

 

例如,當我們透過家中的有線電話說:「哈囉」,電話的手持聽筒將聲音轉變為電壓訊號。然後,這個訊號透過線路被傳輸至接收端的電話,而接收端的電話再把電壓訊號轉變回聲音。

 

電腦及您手上的micro:bit,在處理訊號時一定會將它們轉換為二進位資料,也就是0和1。此外,經由電腦處理的二進位資料,必須在透過通訊媒介傳送前被轉變成為訊號。而透過不同的通訊媒介所連接的電腦或任何裝置就是網路。在這篇文章中,您將透過鱷魚夾頭電線來建立一個包含兩個micro:bit的小小網路。

 

小知識:網路

一個電腦網路包含了數台電腦或裝置,它們連結在一起可以互相通訊。在一個電腦網路中,至少包含了兩台電腦,而兩個或更多的網路足以形成更大的網路。而我們常提到的網際網路(Internet),是一個包含非常多網路的巨型網路。

 

動動手寫程式:傳遞愛心圖案

在這個段落,讀者們將透過電線連接兩個micro:bit。您將從一個micro:bit傳送一個心型圖案至另一個。接下來,您將藉由四個任務,撰寫出傳送心型圖案的micro:bit程式。

圖1 愛心圖案

 

任務一:觀看心型圖案如何傳送

請看這段影片,說明如何連接兩個micro:bit以及程式運作方式,請看:

 

任務二:將兩個micro:bit連接起來,並測試連線是否成功。

Step1:使用鱷魚夾線,連接兩個micro:bit的3V腳位。然後,用另一條線連接兩個micro:bit的GND腳位。

 

Step2:使用鱷魚夾線,(1)連接第一個micro:bit的2號 腳位,另一頭接到第二個micro:bit的1號腳位;(2)連接第二個micro:bit的2號 腳位,另一頭接到第一個micro:bit的1號腳位。請注意線一定要接對:3V接3V;GND接GND;Pin 1接 Pin 2;Pin 2接 Pin 1。

圖2 要特別注意的是,鱷魚夾線需要正確連接。

 

Step3:測試傳輸線是否接通。請用瀏覽起開啟MakeCode程式環境(https://makecode.microbit.org/),用程式指令積木拉出圖3的程式。這個程式的邏輯是,當我們按下其中一個micro:bit上面的按鈕A,檢查另一個micro:bit的LED是否亮起。您將可在「進階/引腳」程式積木指令區中找到本程式所需的指令積木。

圖3

 

任務三:測試傳送心型圖案的Hex檔案

Step1:將傳送心型圖案的程式下載至您的micro:bit。這裡有兩個不同的Hex檔案,需要下載至micro:bit 1和micro:bit 2。載點分別在:Hex1 Hex2 。請注意這兩個Hex檔案要直接裝到您手邊的的micro:bit上執行,無法再MakeCode程式環境來編輯了。

 

Step2:現在,請搖晃一下micro:bit來看看是否有顯示心型圖案。

 

任務四:撰寫傳送心型圖案的程式

在這個任務中,您要寫一個micro:bit的程式來達到類似於在任務二、三中的傳送訊息效果。在撰寫程式前,您必須思考三個問題:

  1. 在您的程式中,micro:bit會對於哪一項輸入產生反應?

  2. 兩塊micro:bit該如何傳送資料給對方?

  3. 你覺得兩塊micro:bit是真的把心型圖案傳送給對方嗎?

 

關於問題1,請讀者們看一下MakeCode程式環境中的「輸入」程式積木指令區下面的選項;關於問題2,請讀者們使用前面任務二步驟三的電報程式。

 

關於問題3,我們假設micro:bit 2知道,它將會從micro:bit 1那裡接收到一個心型圖案,讓我們撰寫micro:bit 1的程式,使它:

(1)先顯示一個心型圖案,直到它向micro:bit 2傾斜;

(2)當它向micro:bit 2傾斜時,它會從正確的腳位向micro:bit 2傳送一個脈衝;

(3)當micro:bit 1在正確的腳位上接收到這個脈衝時,它會顯示出一個心型圖案。

 

接著撰寫micro:bit 2程式,使它:

(1)當它在正確的腳位上接收到一個脈衝,micro:bit 2會顯示一個心型圖案。

(2)當它向micro:bit 1傾斜,它會從正確的腳位傳送一個脈衝給micro:bit 1。

 

這樣大家都明白程式是如何運作的了嗎?趕快動動手玩玩看吧!

 

相關文章

[ 翻譯 ] 2018.08.03-根據TensorFlow團隊,TensorFlow 1.9正式支援樹莓派

原文作者

Pete Warden

圖片

CAVEDU教育團隊

翻譯宗諭審閱吉弘
說明

感謝作者Pete Warden的授權翻譯,特此致謝!

When TensorFlow was first launched in 2015, we wanted it to be an “open source machine learning framework for everyone”. To do that, we need to run on as many of the platforms that people are using as possible. We’ve long supported Linux, MacOS, Windows, iOS, and Android, but despite the heroic efforts of many contributors, running TensorFlow on a Raspberry Pi has involved a lot of work. Thanks to a collaboration with the Raspberry Pi Foundation, we’re now happy to say that the latest 1.9 release of TensorFlow can be installed from pre-built binaries using Python’s pip package system! If you’re running Raspbian 9 (stretch), you can install it by running these two commands from a terminal:

當TensorFlow於2015年首次發佈時,我們希望它是一個「給所有人的開源機器學習框架」。爲要達成這一點,我們需要盡可能讓它在更多人們使用的平台上運作,所以,我們長期以來支援了Linux、MacOS、Windows、iOS及Android等作業系統。然而,儘管許多貢獻者已經貢獻卓越,在Raspberry Pi上運行TensorFlow仍有許多工作需要完成。感謝與Raspberry Pi基金會的合作,我們現在很高興能宣佈:最新的TensorFlow 1.9版,可透過Python的pip套件系統來安裝建置好的二元檔了!若您正使用Raspbian 9(Raspbian stretch),只要從終端機輸入下面這兩道指令來安裝它:

 

sudo apt install libatlas-base-dev
pip3 install tensorflow

 

You can then run python3 in a terminal, and use TensorFlow just as you would on any other platform. Here’s a simple hello world example:

接下來,您可在終端機上運作python3,並如同在任何其它平台上一樣使用TensorFlow。下面是一個簡單的hello world範例:

 

# Python
import tensorflow as tf
tf.enable_eager_execution()
hello = tf.constant(‘Hello, TensorFlow!’)
print(hello)

 

If the system outputs the following, then you are ready to begin writing TensorFlow programs:

Hello, TensorFlow!

如果看到以下內容:Hello, TensorFlow!, 那您便可開始編寫TensorFlow的程式。

 

There are more details on installing and troubleshooting TensorFlow on the Raspberry Pi on the TensorFlow website.

更多細節,請參考TensorFlow官網上的內容

 

We’re excited about this because the Raspberry Pi is used by many innovative developers, and is also widely used in education to introduce people to programming, so making TensorFlow easier to install will help open up machine learning to new audiences. We’ve already seen platforms like DonkeyCar use TensorFlow and the Raspberry Pi to create self-driving toy cars, and we can’t wait to discover what new projects will be built now that we’ve reduced the difficulty.

我們對這件事感到很興奮,因為Raspberry Pi早已被許多創新開發者使用著,也被廣泛應用於教育領域來推廣程式教育。所以,讓TensorFlow更容易安裝於Raspberry Pi上,將有助於新朋友認識何謂機器學習。我們已經看到像 DonkeyCar 這樣的平台使用TensorFlow與Raspberry Pi來做出能夠自動駕駛的玩具小車。我們也迫不及待想知道,在使用難度降低之後,會有哪些新專案誕生。

 

Eben Upton, founder of the Raspberry Pi project, says, “It is vital that a modern computing education covers both fundamentals and forward-looking topics. With this in mind, we’re very excited to be working with Google to bring TensorFlow machine learning to the Raspberry Pi platform. We’re looking forward to seeing what fun applications kids (of all ages) create with it,” and we agree!

Raspberry Pi創辦人Eben Upton表示:「現今的電腦程式教育必須涵蓋基礎知識與前瞻性的主題。考慮到這一點,我們非常興奮能與Google合作,將TensorFlow機器學習引入Raspberry Pi平台。我們期待看見所有年齡層的孩子們能運用它來打造各種有趣的應用。」這,我們完全同意!

 

We’re hoping to see a lot more educational material and tutorials emerge that will help more and more people explore the possibilities of machine learning on such a cost-effective and flexible device.

我們深切盼望看見更多教材和教學資源問世,幫助更多人在Raspberry Pi這款高CP值又具備擴充彈性的裝置上探索機器學習的各種可能性。

 

備註:若您想要購買樹莓派,可以前往機器人王國商城,謝謝。

 

相關文章

[ 新品開箱 ] 2018.08.29 – 透過ReSpeaker 6-Mic環形陣列模組 讓您運用Raspberry Pi打造個人專屬的智慧語音產品(可整合Amazon Alexa、Google語音助理喔!)

翻譯

宗諭

審閱

吉弘

說明

文、圖轉載、改寫自Seeed產品介紹網站,特此致謝!若您欲購買ReSpeaker 6-Mic環形陣列模組,請洽機器人王國商城

ReSpeaker 6-Mic環形陣列模組是Seeed最新出品的一款擴充板,也就是專門為樹莓派設計的HAT擴充板。它是一個形的麥克風陣列模組,配備有6顆麥克風,專門為人工智慧和語音應用而設計。這代表可以使用樹莓派做出一台功能更強大、更靈活的語音產品,同時可整合Amazon Alexa語音服務、Google語音助理⋯⋯等等。

 

樹莓派專用的ReSpeaker 6-Mic環形陣列模組,由兩個板所構成,一個是語音配件HAT板,另外一個是6個麥克風所組成的環形陣列。

 

ReSpeaker 6-Mic環形陣列模組在Raspbian作業系統中支持8個輸入和8個輸出通道。前6個輸入通道用於麥克風錄製,其餘2個輸入通道則用於回放。前2個輸出通道用於播放音效,其餘6個輸出通道則為虛擬。

圖1 硬體概覽圖

 

產品特色

  • 2個ADC晶片和1個DAC晶片

  • 8個輸入和8個輸出通道

  • 六個麥克風陣列

  • 支援Grove接頭

  • 相容於樹莓派40針連接埠

  • 耳機和揚聲器語音輸出

 

規格說明

  • 2 x X-Power AC108 ADC晶片

  • 6 x高性能麥克風

  • 1 x X-Power AC101 DAC晶片

  • 輸出連接埠:

    • 5mm 耳機接頭
    • 揚聲器連接埠
  • 相容於樹莓派40pin連接埠

  • 麥克風:Knowles SPU0414HR5HSB

  • 靈敏度:-22 dBFS (各方向)

  • SNR:59 dB

圖2 組裝圖

 

圖3 動態組裝圖

 

Applications應用

  • Smart speaker 智慧音箱

  • Intelligent voice assistant systems 智慧語音助理系統

  • Voice recorders 錄音應用

  • Voice conferencing system 語音會議系統

  • Meeting communicating equipment 會議通訊設備

  • Voice interacting robot 語音互動機器人

  • Car voice assistant 車用語音助理

  • Other scenarios need voice command 其他需要語音指令的場景

 

那麼,ReSpeaker 6-Mic環形陣列模組可有哪些方面的應用呢?例如智慧揚聲器、智慧語音助理系統、聲音錄音機、語音會議系統、會議通訊設備、語音互動機器人、汽車語音助理⋯⋯等等,或是在其他場景中需要語音命令,都可運用它。若是讀者們想要更多的創意應用,就有賴大家的研究、開發。

(若欲購買ReSpeaker 6-Mic環形陣列模組,請洽機器人王國商城

 

相關文章

[ STEAM好好玩 ] 樂高小屋大改造!!結合BOSON電子積木、micro:bit,立馬升級成智慧小屋!(有片請入)

市面上有多種樂高小屋套組,不知道讀者們有沒有想過,在小屋內再多加上樂高積木以外的東西呢?這次我們要讓樂高小屋與BOSON電子積木結合,激盪出更多變化。

作者/攝影

陳怡璇

文章分類教學技術文
時間

1小時內

成本

難度

*

材料表
    • LinkIt 7697*

    • Micro:bit*1

    • Boson inventor kit*1

    • (若欲購買,請洽機器人王國商城。)

首先,我們要先有一間樂高小屋。(各種樂高小屋皆可,只要空間足夠放入BOSON電子積木即可。)

圖1 樂高小屋

 

這次製做的樂高小屋分成兩部分,第一部分是單純的BOSON電子積木,第二部分是micro:bit加上BOSON。而單純BOSON的部分,我們會用到以下幾種積木:

  • Mainboard-3IO(3組輸入輸出的控制板)

  • 藍色無段開關*2(紅色無段開關是一樣的)

  • 運算邏輯模組NOT

  • 計時模組

  • 錄音機模組

  • 喇叭

  • 發光二極體(LED)

 

micro:bit加上BOSON的部分,則需要開關、光敏感測器及馬達。

 

第一部分:

Step1:

接下來就是分別接上。這邊又可分成兩個小部分,一是按下按鈕,錄音模組會發出聲音;另外是按下按鈕LED會亮起一段時間。不過在動手前,我們要先介紹主控版。主控版有輸入、輸出的區別,接的時候需要注意。請讀者們依照圖2電源接孔朝下擺正後,左邊接輸入,右邊接輸出(特別注意箭頭的方向,箭頭指出去的地方就是接輸出)。

圖2

 

一旦知道主控版如何使用後,我們就可開始接上其他積木了!讓我們先接上LED的部分。接上順序為 :無段開關→計時模組→運算邏輯模組NOT→主控版→發光二極體(請讀者們參考圖3)。接上計時模組時,跟主控版一樣,需注意箭頭的方向。

圖3

 

接下來,讓我們接上錄音機模組的部分。

 

接上的順序為:無段開關→主控版→錄音機模組→喇叭。錄音機模組沒有箭頭,不過接喇叭那邊的孔,只接兩條線所以比較小。

圖4

 

 

Step2:

最後就是micro:bit的部分了,這裡便不需要主控版和邏輯的積木了。請將馬達接至P0,光敏感測器接至P1,開關接至P3。

圖5

 

接完後,再來便是編寫程式。我們盼望達到的功能是:當有陽光會熱時,按下按鈕電風便開啟;當沒有陽光時,就算按下按鈕也不能開啟電風扇,這樣才能省電。所以,以下便是這次我們所需要的程式指令積木:

  • 【基本】重複無限次

  • 【邏輯】如果-那麼-否則、且0=0

  • 【引腳】數位信號讀取數位信號寫入

 

請讀者們依照圖6接上。在這裡,的程式指令積木,便能代替BOSON電子積木內的運算邏輯模組AND。

備註:運算邏輯模組AND的功能——當輸入的兩個條件皆達成,就能有輸出。

圖6

 

Step3 :

各方面都接好後,就可以裝在樂高小屋上面囉!

圖7

 

 

讀者們在組裝時,可依照自己的喜好進行改變,也可自己設定其它情境,增加更多的BOSON電子積木。

 

相關文章

 

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

 

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

 

相關文章

[教學文] 當Scratch 3.0連接上micro:bit 驚人的創意產生了⋯⋯

作者/攝影

撰寫:宗諭

圖片:freepik

文章分類教學技術文
時間1hr
成本

材料表
  • micro:bit*1(如欲購買,請洽機器人王國

  • USB2.0 A公 to Mini-B/公傳輸線*1

之前阿吉老師曾拍攝過一段影片,也同步發表了一篇文章,向大家解說如何運用Scratch 3.0介面連接LEGO EV3機器人,獲得許多讀者的迴響。因此,CAVEDU教育團隊再接再厲,將透過本文跟大家分享,如何運用Scratch 3.0介面連接時下最夯的micro:bit。一起來操作吧!

 

Step1:點選程式左下角的「擴充功能」

圖1

 

Step2:在擴充功能頁面中,點選「micro:bit」。

圖2

 

Step3:若您首次嘗試用Scratch 3.0連接micro:bit,將跳出一個視窗,詢問:(1)確定已經安裝並執行Scratch Link;(2)檢查藍牙是否開啟。直接點選「?幫助」即可。

圖3

 

Step4:根據您電腦的作業系統是Windows或macOS,下載並安裝適合的「Scratch Link」。筆者的電腦是Macbook air,但在Windows作業系統上的操作步驟也是大同小異的。

圖4 點擊藍色按鈕,下載並安裝「Scratch Link」。

 

Step5:安裝好「Scratch Link」後,在您的電腦的程式集中點擊Scratch Link的圖標,啟動Scratch Link。

圖5 啟動Scratch Link

 

如果Scratch Link有成功被啟動的話,應該會有小圖標顯示在工具列上,如圖6。

圖6

 

Step6:將micro:bit連接至電腦

圖7

 

Step7:接下來,要下載Scratch micro:bit HEX檔案。請點擊圖中箭頭指示處。

圖8

 

小知識:HEX檔案是什麼?

HEX文件檔案是嵌入式軟體開發中,經常可見的數據格式,常被用來保存單晶片或其它處理器的目標程序代碼。而HEX文件包含了地址資訊,所以在燒入或下載HEX檔案時,一般都不需要使用者指定地址資訊。

 

Step8:然後,我們要把剛剛下載的HEX檔案,拖曳至micro:bit中,如圖9。

圖9

 

Step9:讓我們回到Scratch 3.0編輯器,選擇「擴充功能」,點選「micro:bit」。

圖10

 

Step10:會看到圖11的畫面,按下「開始連線」。

圖11

 

這樣就連線成功了,請參考圖12。接下來,讓我們回到Scratch 3.0編輯器進行一點小測試。

圖12 連線成功!請點選「回到編輯器」。

 

回編輯器後,可看見指令積木區當中,多了一個micro:bit指令區,見圖13。

圖13

 

然後我們拉出兩個指令積木:「when A button pressed」及「display Hello!」,然後組合起來,如圖14。

圖14

 

現在,按一下micro:bit上的A按鈕,是不是看到LED矩陣閃爍出「Hello!」呢?接下來,就是讀者們發揮創意的時間囉!

 

相關文章

[Micro:bit] 一次學Micro:bit就有概念!?是的,請看這一篇(三)

作者/攝影

陳怡璇

文章分類教學技術文
時間20mins
成本
難度**(1~10)
材料表
  • Micro:bit

  • (如欲購買,請洽機器人王國商城

  • Micro:bit BOSON擴充板

  • BOSON g 聲音感測器(Sound Senser)

  • BOSON 運動感測器(Motion Senser)

  • BOSON 彩色LED燈條(Multicolor LED String Light)

  • (如欲購買,請洽機器人王國商城

本篇中,我們要向讀者們介紹的是音樂盒及彩色LED燈條。

 

第一題:智慧音樂盒

Step1

圖1

 

Step2

圖2

 

第二題:色彩繽紛的LED燈條

任務一:

Step1

圖3

 

 

圖4

 

Step2

圖5

 

Step3

圖6

 

圖7

 

任務二:

Step1

圖8

 

Step2、3:這裡要注意的是,顏色的表示是色像環,所以若範圍輸入0至360,會全部顯示紅色;0至0、360至360也是全紅色。但如果是0至340,就會是有紫紅色的彩虹。

圖9

 

 

完成以後,音樂盒可以試試看自己編曲,LED則可以依照色環進行顏色調整,或是加入前一篇使用過的感測器進行改變。

 

相關文章

[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!

 

相關文章

[Micro:bit] 一次學Micro:bit就有概念!?是的,請看這一篇(二)

本文沿續上一篇「一次學Micro:bit就有概念!?是的,請看這一篇(一)」,主要講述以下三個專題:電子蠟燭、電子風扇及自動門。第一個專題著重在麥克風感測器的使用;後兩個專題則是馬達的應用。

作者/攝影

陳怡璇

文章分類教學技術文
時間10mins
成本
難度*(1~10)
材料表

第一題:電子蠟燭

任務一

Step1:

圖1

 

Step2:

圖2

 

Step3:

圖3

 

 

任務二

Step1:

圖4

 

Step2:

圖5

 

 

第二題:電子風扇

任務一

Step1:

圖6

 

Step2:

圖7

 

Step3:

圖8

 

 

任務二

Step1:

圖9

 

Step2:

圖10

 

 

第三題:自動門

Step1:

圖11

 

Step2:

圖12

 

Step3:

同電子蠟燭第一步(圖1)

 

Step4:

圖13

 

 

完成以後,可以試著加上分配模組(split),讓二個輸出配合在一起,也就是以一個輸入同時控制兩個輸出。例如,可以用LED和馬達組合在一起,並搭配上旋鈕。

 

相關文章

 

[翻譯] 2018.08.02-根據MakeCode Team,新版micro:bit編輯器將有6大新功能! !

原文作者

MakeCode team

紀錄攝影

MakeCode team

翻譯宗諭訪問地點
訪問時間

原文刊登日期:2018年7月23日

前言

MakeCode團隊近來持續不斷努力,爲要完成micro:bit編輯器的更新。讀者們可在這裡https://makecode.microbit.org/beta ,進行事先預覽。

 

micro:bit編輯器的更新,目前仍在Beta版階段,並且只包括增加在現有程式上的改變及調整,目的是不影響或破壞任何使用者的既有程式。所以,當發佈更新時,我們仍會為還沒有準備好使用新版本的使用者,繼續支援先前的版本。

 

我們希望讀者們試試看Beta版,並讓我們知道您的想法!若您發現任何問題,請將問題記入GitHub:https://github.com/Microsoft/pxt-microbit/issues

 

此外,若讀者們有任何評論、建議及回饋,請參與團隊溝通平台Slack上的micro:bit社群: https://tech.microbit.org/get-involved/where-to-find/

 

新功能

現在,就讓我們介紹一些新功能:

1.首頁(Home Page):我們一直想藉由創造一套手把手、步驟接步驟的教學文件,以及在網路上更容易搜尋到的範例,讓開始使用micro:bit編輯器的經驗更加直覺化。所以,我們移除了先前在「project」選單中的所有內容,並把這些內容放在新的首頁中,以網頁照片藝廊的方式呈現。

圖1 micro:bit編輯器新的首頁

 

若您想要略過首頁,您可直接進入編輯器,網址:https://makecode.microbit.org/beta#editor (小提醒:只要在首頁的網址後面,加上#editor即可)。

 

2.更新指令積木的使用者介面:也許您已經注意到,我們的指令積木看起有點不一樣了!沒錯,為了與我們團隊所維運的其它編輯器一致,我們把使用者介面,從Blockly的介面更新成新的Scratch積木使用者介面(實際上,新的Scratch積木使用者介面是Blockly和Scratch的組合)。新的使用者介面有一些很讚的更新,特別是:

 

  • 指令積木變大了!讓觸控式螢幕裝置的使用者,更容易以手指拖拉積木。同時,他們運用積木的空間也更有效率。
圖2 新版
圖3 舊版

 

 

 

 

 

 

 

 

 

 

 

 

  • 不同的資料類型以不同的積木形狀呈現:特別是布林值的資料類型,以六角型呈現,而數字和字串則以圓形呈現。
圖4 不同資料型態以不同形狀的積木呈現

 

  • 對於在哪個位置,指令積木可組合在一起,有更清楚的指示。另外,增加了一個明顯的「卡入到位」動作。
圖5 對於積木的組合,有更清楚指示。

 

3.小齒輪,安息吧!:您可能隨著If Then Else積木使用小齒輪,以增加額外的條件。但小齒輪卻是個尷尬的介面,因為大多數人都不知道該如何使用。所以,當使用者想要增加或移除條件時,我們採用更直覺、在指令積木上的「+」、「-」圖標,取代了原本的小齒輪。

圖6 原本用來增加額外條件的小齒輪

 

圖7 現在以積木上「+」、「-」圖標代替。

 

4.創造變數:根據使用者的回饋,我們試著讓創造變數的過程更加清楚。現在,您將明確地點擊「變數指令區」中的「Make a Variable……」按鈕,以創造一個新的變數,並爲這個變數命名。然後,這個變數會與變數指令區中的其它積木建立關聯。

圖8 創造變數的過程更清楚

 

5.廣播積木(Radio blocks):我們針對一些廣播API做了小小的改變,好讓它們使用起來更簡單。大部分人不會注意到這些改變,但若您是位進階的廣播功能使用者,您也許會注意到,我們已重新安排廣播封包被接收的方式。功能都還在,但透過一次性使用的積木,讓廣播功能更加明確。

 

6.浮點:這大概是本次更新最大的改變。所有的數學老師們,準備揚聲歡呼吧!新版的編輯器支援浮點數運算,這可是使用者們的大力要求呢!因為之前的版本只支援整數,但現在3/2真的等於1.5,而不是產生出整數1。

圖9 新版的micro:bit編輯器支援浮點數運算

 

小提醒:關於搬遷專案

在此,我們提醒每位使用者,您在新的Beta版編輯器創作的程式,在舊版編輯器中將無法使用。然而,當您首次造訪新的Beta版編輯器,您在舊版編輯器中創作的專案,將被自動拷貝至新的Beta版編輯器,讓您可繼續工作。然而,經過這次搬遷後,若您回到舊版編輯器,您之前的專案仍存在。但若您在舊版編輯器中修改這些專案,它們將不會被自動拷貝至新的Beta版編輯器。換句話說,自動搬遷是個一次性的過程,只發生在您首次造訪新的Beta版編輯器。之後,您的舊專案和新專案將各自獨立。

圖10

 

聽起來好像有點饒口,總之,祝大家使用愉快!

 

備註:中文翻譯圖文經MakeCode團隊授權,特此致謝!原文請見:https://makecode.com/blog/microbit/v1-beta

 

相關文章

[介紹文]以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);
}

 

相關文章