叫賣小車
火車是國人長途旅行的首選工具,綠皮火車也是一代代中國人難忘的記憶。我上大學的時候,需要坐28小時50分鐘的火車,轉車後再繼續乘坐20多小時的火車才能到家。火車上充斥著的各種味道記憶猶新。印象更深刻的是寒假裡,恰逢春節,火車早已人滿為患,座位上都會躺著人。偏偏總有列車售貨員推著小車兜售食物飲料。彷彿拉鎖一般,人潮在小車前面打開,又在小車後面閉合。通常還會有人跟在小車後面趁著小車拉開人流去上一趟廁所之類的。售貨員的操著帶有地方特色的吆喝聲,會將每一個人從昏昏沉沉中拉回現實。
上次試驗成功了語音模塊,這次就把它裝在小車上,讓小車一邊行進一遍吆喝。
硬體連接很簡單,VCC/GND/外加D12當成串口輸出即可。
簡單起見,依然沿用尋線小車的代碼,添加上我們的功能即可。
1. 語音模塊使用的是串口,我們在頭部加入軟串口的聲明:#include
<SoftwareSerial.h>2. 加入我們要他發出來的語音,已經包括了幀頭控制命令和校驗碼這是「香煙啤酒礦泉水,花生瓜子雞大腿,腳讓一下」的 GBK 編碼
const char propagate[]=
{0xFD,0x00,0x2A,0x01,0x01,0xCF,0xE3,0xD1,0xCC,0xC6,0xA1,0xBE,0xC6,0xBF,0xF3,0xC8,0xAA,0xCB,0xAE,0x2C,0xBB,0xA8,0xC9,0xFA,0xB9,0xCF,0xD7,0xD3,0xBC,0xA6,0xB4,0xF3,0xCD,0xC8,0xA3,0xAC,0xBD,0xC5,0xC8,0xC3,0xD2,0xBB,0xCF,0xC2,0x8C};
3. 我們使用一個時間變數做判斷,每隔10s發送上述語音一次
if
(millis()-starttime>10000UL) {starttime=millis();
for (byte
index=0;index<sizeof(propagate);index++){
softSerial.write(propagate[index]);
}
}
最終效果如下(圖中位置有轉彎,小車會瘋狂抖動):
工作視頻:
https://www.zhihu.com/video/938455736557309952推薦閱讀:
※Python 與嵌入式系統系列 - Arduino選型
※【圖形化學習 Arduino】(三)串口通信
※用Arduino連接感測器收集數據,以無線方式發送到RaspberryPi,由樹莓派處理數據並保存,行不行?怎麼做?
※【圖形化學習 Arduino】(五)串口調試四神器
※那麼,什麼是Arduino?
TAG:Arduino |