標籤:

叫賣小車

火車是國人長途旅行的首選工具,綠皮火車也是一代代中國人難忘的記憶。我上大學的時候,需要坐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 |