宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

使用kittenblock擴展功能[文字轉語音]、[翻譯]和[語音識別]的擴充積木來控制腳色動作或硬體。

硬體:Arduino、Micro:bit、..........

軟體:kittenblock 1.84i (win)

*[語音識別]要判斷是否講完一個詞,所以執行時會感覺有點遲頓。

*[語音識別]可以將您說的話轉成文字。

*[文字轉語音]可以將文字轉成聲音播出。

---------------------------

引起動機:

我們也可以做到喔!

出門不用帶鑰匙,也不用背密碼、按指紋了。
說話就可以開門囉!

--------------------------------------

1.下載kittenblock 1.84i (win)版,解壓縮,執行。(註1)

2.在網頁左下角點[添加擴展]

3.添加[文字轉語音]、[翻譯]和[語音識別],這三個擴展功能積木。

PS:目前只有支援簡體中文的語音積木,所以先用[翻譯]積木將繁體中文,翻譯成簡體中文,再用簡體中文的語音積木說出來。

4.開始使用擴充積木寫程式。

PS:如果要控制硬體請參考:

http://blog.ilc.edu.tw/blog/blog/868/post/116505/778655

http://blog.ilc.edu.tw/blog/blog/868/post/116505/778654

完成硬體連接。

注意:

[語音識別]需要透過網路傳輸資料進行辨識,執行時請連線上網。

-------------------------------------------

一、讓主角在螢幕上移動

使用語音控制主角在螢幕上移動 

1.當綠旗被點一下,設定迴轉方式為[左-右]

2.[重複j無限次],判斷輸入的語音指令要做要做什麼動作。

3.使用[收聽並等待]積木,等待語音輸入,畫面會出現紅色麥克風

4.使用[語音文本]積木,讓說出來的話,由程式轉換為文字。

5.使用[字串(......)包含(......)?]積木,只要說出來的控制語含有關鍵字就可以執行。

注意:

積木區的[語音文本]積木前口,請打勾,

舞台區就會出現語音識別後的文字,可以確認語音轉換是否正確。

程式下載:語音移動6.sb3

延伸:

1.說話讓角色改變大小

2.說話讓角色改變顏色

----------------------------------

以下範例摘自使用WFduino程式語音控制:

http://blog.ilc.edu.tw/blog/blog/868/post/97509/644624

請直接參考仿作

二、聲控走迷宮

使用語音控制主角在螢幕上走迷宮。

聲控指令:往上走,往下走,往右走,往左走

只要說出指令就可以控制螢幕上的小貓走迷宮。

主畫面

程式說明:

1.當綠旗被點一下,使用[監聽語音]啟動語音轉換。

2.設定小貓起始位置。

3.[重複執行],判斷輸入的語音指令要做要做什麼動作。

使用[語音文字]積木,讓說出來的話,由程式轉換為文字。

4.如果碰到黑線,就退回原位。

5.當走到終點遇到蛋糕就停止程式。

延伸:

使用[語音文字]積木,讓說出來的話,由程式轉換為文字後,會重複執行同一個指令,無法停止。要如何讓下一個能夠指令執行?

三、應聲蟲

會學你說話的應聲蟲

1.當綠旗被點一下,[清空語音文字],將之前存的語音資料清除。

2.使用[監聽語音]啟動語音轉換。

3.[重複執行],使用[語音文字]積木,讓說出來的話,由程式轉換為文字。

4.再用[說....] 積木將剛剛轉換的文字說出來。

四、聲控霹靂燈

聲控讓Arduino 板子上的LED依序閃亮又熄滅

接線圖

將18顆LED的短腳(負極)接麵包板同一邊,再串接串接220歐姆電阻後接地(GND)。

18顆LED的長腳(正極)分別接D2~D13和A0~A5,由這18個腳位來控制輸出電位,讓LED亮或滅。

將原來是類比輸入的A0~A5也當成數位輸出的D14~D19

1.當綠旗被點一下,使用[監聽語音]啟動語音轉換

2.設定變數[亮燈]來決定該輪到哪一顆LED燈要亮。

3.重複18次[腳位(...)模式為OUTPUT],將D2到D19設定為數位輸出

4.使用[語音文字]積木來讓程式判斷要做什麼動作

5.如果說[霹靂燈]就讓LED輪流閃,直到說[停止]才不閃。

6.LED輪流閃的程式說明:

6.1重複18次[腳位(...) 數位輸出1]、[腳位(...)數位輸出0]、[將變數亮燈改變(1)],讓D2到D19輪流亮、滅

6.2[重複執行],讓上面LED亮、滅的動作重複進行。

請學生思考有18顆LED,為什麼重複執行只有17次?

試試看改變重複執行為18次,觀察有什麼不一樣?

五、聲控開、關燈

利用語音控制來啟動繼電器,控制電燈開或關。

Arduino端接線圖

 

使用[語音識別]積木來控制繼電器動作。

由數位腳7來控制繼電器的開和關。

先將[腳位7模式設為OUTPUT]。

使用[監聽語音]啟動語音轉換。

重複執行監聽語音,使用[語音文字]積木來讓程式判斷要做什麼動作,要開,還是要關。

使用[語音文字]積木來讓程式判斷要做什麼動作

如果說[開燈]就讓腳位7輸出為1(高電位),讓繼電器連接的電器打開(檯燈亮)。

如果說[關燈]就讓腳位7輸出為0(低電位),讓繼電器連接的電器關閉(檯燈暗)。

如果插座改插其他電器,一樣可以做控制。

家電控制插座製作,請看WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

----------------------

註1:

kittenblock 1.84i (win)版下載

https://drive.google.com/file/d/1PjcspFbIKCdCG6fWWbROEFHJf3w0andu/view?fbclid=IwAR1clRLJOzXYg-Pp45D21ERjwKsW1pqMsVH4lhrlWdGbsiSTErVaq38N_So

下載後,直接解壓縮,產一個資料匣,直接開啟(Kittenblock.exe),開始使用。

--------------------------------------------

註2:

更新韌體:(只要第一次做就好)

-----------------------------------------------

先將硬體(Micro:bit )用USB線連接到電腦。

開啟Kittenblock

1.點[沒有找到硬體],選擇要連接的硬體名稱,[Microbit  Python],[serial]

PS:

1.直接透過USB線控制Micro:bit,所以選[serial]

2.如果要透過藍芽控制Micro:bit,就要選[ble] 

2.點[沒有連接]或[驚嘆號]

3.出現裝置連接的畫面,點[開始連線]

4.完成連線,點[回到編輯器]

積木區自動載入[Micro:bit ]擴充積木

5.點[升級韌體]

將韌體燒錄到Micro:bit 

完成後就可以開始拉積木寫程式,執行。

注意:

1.確定下面截圖3個藍色框是否正確。

2.如果沒有做其他燒錄,只要第一次做就好。

之後要寫程式,只要接好Micro:bit ,不需要再做燒錄韌體動作

----------------------------------

相關連結:

kittenblock(microbit)課程目錄(scratch3)
http://blog.ilc.edu.tw/blog/blog/868/post/10898/778778

Scratch3控制外部感應器概論 
http://blog.ilc.edu.tw/blog/blog/868/post/113115/778543

micro:bit與robotbit擴展板
http://blog.ilc.edu.tw/blog/blog/868/post/112597/741365

kittenblock(Arduino)第一課
http://blog.ilc.edu.tw/blog/blog/868/post/116505/778654

kittenblock(microbit)第0課(概論)
http://blog.ilc.edu.tw/blog/blog/868/post/116505/778655

kittenblock(microbit)多板控制
http://blog.ilc.edu.tw/blog/blog/868/post/116505/778705

設計視訊互動遊戲超簡單
http://blog.ilc.edu.tw/blog/blog/868/post/10898/621592

Arduino(WFduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino第十九課語音控制
http://blog.ilc.edu.tw/blog/blog/868/post/97509/644624

聲控走迷宮
http://blog.ilc.edu.tw/blog/blog/868/post/97509/730472

kittenblock語音控制(AIOT)
http://blog.ilc.edu.tw/blog/blog/868/post/116505/778730




 
 
 
用LINE傳送