|

【Tutorial】自動語音導覽系統實作介紹

   
作者:Ryan Hu

先來分享為什麼會做這個自動語音導覽的小專案好了。這個故事是這樣,之前在做 NTP 時鐘的時候有陣子真的滿挫敗的 (一直鬼打牆解決不了問題),當時想說要尋找同溫層或許可以能有幫助,也想知道自己現在到底 capable of what,我就決定出去參加一些 maker 的活動(eg. MakerPRO)。

在過程中,我意外看到 十年前他帶學生親手打造太陽能車,如今門生遍佈Tesla、Gogoro 這篇文章,看完覺得很興奮,覺得台灣已經沒有幾個教授願意帶著學生實作,我就毅然決然寄信給文中主角台大機械系鄭榮和教授,詢問教授我是否能加入他的團隊?一起把手弄髒,完成一些腦中的想法。

原本抱持著教授怎麼可能會理我這個菜鳥,可能信也就石沈大海了,沒想到隔天一早起床就看教授回信,教授不僅很歡迎我加入團隊,還特地約了個時間要我去找他聊聊,當然我興喜若狂答應赴約,也就這樣進了團隊。

而自動語音導覽系統就是在這裡做的第一個小專案。這個東西是為了台大最近那台電動自駕巴士,初步要規劃用在校園導覽時的語音導覽功能,而語音導覽就是到了某個位置開始播放介紹那個位置的語音檔案,所以我就想說我要用我可能會的東西解決這個問題。

解決方式 (組件介紹)

  1. Adafruit Ultimate GPS x1
  2. Arduino nano (一開始測試我使用 Arduino UNO)x1
  3. JQ8900 (mp3 解碼播放) x1
  4. speaker x1

Adafruit Ultimate GPS

一開始我拿到這顆 GPS module 的時候,用了 4 個 pin 腳位 (VIN, GND, TX, RX),(各個腳位的應用與解釋可以參考以上連結),連接 USB 轉 TTL 的元件,用 coolterm (下圖就是 coolterm 視窗) 去看 GPS 抓到的東西到底是什麼?

這個東西很有趣 (一開始不知道是什麼的時候只覺得很酷),詢問 Bird 之後才發現原來這個是一種叫做 NMEA 的通訊傳輸資料的 protocol,裡面的每個 data 都有它所代表的意義,我這裡不細項介紹 GGA 或 RMC 所代表的東西,而是直接分享我可以從 GGA 或 RMC 裡面獲得什麼資訊。(參考資料:The NMEA 0183 Protocol

其實我要的東西不外乎經緯度,畢竟我一開始的規劃是要做,假設到了 「某個位置」就要 trigger 「某件事情」(但發現沒有這麼容易),而這兩個 longitude and latitude 都可以從 GGA 或是 RMC 裡面找到 (上面 GPS 沒有定位當然還看不到,真正定位到的樣子我留到底下,用 Arduino UNO 當 MCU 的時候說明)。

而現在 coolterm 裡面從 RMC 可以得知訊息像是有「接近原子鐘精度級別的時間信息」,「移動速度」,「日月年 (dd/mm/yy)(從這裡可以看到其實我是剛剛才截圖的,因為當時做的時候忘記拍下來)」。

Arduino console 裡面的資訊 & 撈出我需要的資料

知道這些 data 所代表的意義後,我就將 USB 轉 TTL 收起來,改用 Arduino UNO 來作為主要發號司令者,之所以要 Arduino UNO 作為發號司令者是為了達成我的目的:定位到 「某個位置」 ,我要 trigger 「某個事件」。第一步得把 GPS module 身上的資料不僅僅是顯示在 console 而已,我要用 console 裡面的資料做到我要 trigger 某件事件的動作。

那這個撈資料的動作怎麼完成?Bird 以前常說要站在巨人的肩膀上,因此我 google 了一下,果不其然真的有有人寫好的 library 可以供 user 使用,library 下載連結:library

看完這個 library 大致上了解他的運作方式後,比如說跟 GPS 說我想要獲得什麼資料 (eg. RMC GGA),多久 update 一次 (頻率幾赫茲),以及發現原來也是用 interrupt 的方式去抓資料下來 (所以 for loop 裡面就可以做 trigger 某件事件的動作),在寫好我需要的 funciton 後,真正 GPS module 定位到是長這個樣子 (如圖):

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Author: Ryan Hu

對於 IOT 軟硬整合相關有極大興趣,鍾愛無人機,目前獨自完成的專案像是瓦力號、GPS 自動語音導覽系統、NTP 網路自動校時時鐘,喜歡流浪。

Share This Post On

2 Comments

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *