步驟1:更新
隨著Raspberry Pi Zero W的到來,我將切換到它。除了需要建立與Pi的WiFi連接之外,這里的所有內容都是相同的。這意味著您不需要USB集線器即可將Zero設置和使用。
您可以使用以下方式設置WiFi:
https://thepihut.com/blogs/raspberry-pi-tutorials/。..
- --------------------------------------------
您知道嗎?
如果使用Windows PC在SD卡上安裝Raspbian Jessie,則可以在引導前在卡上創建兩個文件來配置WiFi和SSH訪問
為此,假設您的SD卡當前已在PC上以 K:的方式安裝:
1)安裝最新的Raspbian Jessie映像到SD。對于該項目,Jessie Lite應該可以使用。
https://www.raspberrypi.org/downloads/raspbian/
2)使用記事本,創建一個名為“ ssh ”,然后使用“另存為”“所有文件”來 K: ssh
文件可以包含任何內容。重要的是文件名。不得為“ ssh.txt” !!!
3)使用記事本,使用以下命令創建一個名為“ wpa_supplicant.conf ”的文件:
ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev
update_config=1
network={
ssid=“mySSID”
psk=“mypassword”
key_mgmt=WPA-PSK
}
使用另存為“所有文件”到 K: wpa_supplicant.conf
再次,不要讓記事本將其更改為“ wpa_supplicant.conf.txt”!
第一次啟動Raspberry時,Jessie會查找這些并連接到您的Wifi。但是,由于路由器是自動分配的,因此您將不得不在路由器上查找IP地址。
步驟2:零件列表
樹莓派Pi零(如果大小不成問題,則可以選擇任何Raspberry Pi)
USB激光條形碼掃描儀
http://www.dx.com/p/ls-4209-激光條形碼掃描儀。..
對于Raspi Zero,添加Adafruit I2S 3W D類放大器
https://www.adafruit.com/products/3006
小揚聲器。 (對于Pi 2,3,請使用外部放大器和揚聲器。)
https://www.adafruit.com/product/1890
USB Micro轉USB OTG適配器
https ://www.adafruit.com/products/2910
5V 1Amp USB電池組,例如
https://www.adafruit.com/products/1959
用于電池組的USB轉micro USB電纜。
USB和以太網集線器(至少用于初始設置工作,對于零W或Raspi 2,3不需要)
https://www.adafruit.com/products/2992
來自GITHUB的軟件:
https://github.com/rgrokett/TalkingBarcodeReader
第3步:USB激光條形碼閱讀器
激光條形碼閱讀器在掃描UPC標簽方面的能力要比照相機更寬容。即使在光線不足或放置不良的標簽中,它們也可以正常工作。
您將需要USB到USB微型適配器,將其插入零位。
掃描儀的手柄和扳機使其易于使用。
在成功掃描標簽時也會提供反饋。
將來的任務:
在最終設計中,我將電纜剪短以縮短電纜長度,然后直接焊接到零位的USB引腳上,以減小尺寸和連接器故障的可能性。零號和電池將直接安裝在3D打印盒中的掃描儀手柄底部。
步驟4:UPC數據庫
這是項目覆蓋最差的部分,因為實際上有數百萬的UPC代碼和很少的開源數據庫可供下載。不幸的是,大多數UPC數據庫價格昂貴,并且需要Internet連接。
我能夠將幾個開放源數據庫放在一起(以下附錄中的源),但是即使其中有將近700,000個項目,仍然有大量缺失。
為此,我做了兩件事;一種是專門針對雜貨,另一種是在Raspberry中添加Web服務器以允許手動添加新的UPC代碼,但這確實至少需要本地網絡連接。
將來的任務:
我會將Zero W設為“熱點”,以便您可以在任何地方連接它以添加新的UPC代碼。
第5步:文本轉語音
我使用了名為“ Flite”的文本轉語音程序,因為它在語音質量之間具有最佳的折中轉換速度歸零。其他聲音聽起來稍好一些,但轉換速度太慢。
您還可以查看Adafruit的教程:
https://learn.adafruit.com/speech-synthesis-on-the。
。請注意,要適應語音的變化需要一定的“耳部訓練”,但還算不錯。
再次掃描同一項目將重復音頻。
將來要做的事情
也許添加耳機插孔,以便老年人在嘈雜的地方更容易聽到聲音。
步驟6:電池電量
系統可以使用5V USB電池運行,例如用于給手機充電。
問題在于,當您拔下電池或電池沒電時,Pi將會崩潰,并有可能損壞SD驅動器。
要解決此問題,需要一個運行關閉命令的按鈕。我可能會這樣使用:
https://www.element14.com/community/docs/DOC-78055 。..
(是的。另一種“未來ToDo!”)
第7步:第一部分-向Pi Zero添加音頻
(如果不使用零,則跳過此部分!)
在Pi零上,您將需要添加外部音頻,因為它不是內置的。我使用了低成本的“ Adafruit I2S 3W放大器突破MAX98357A”
這需要使用Adafruit的出色教程進行設置,網址為:
https://learn.adafruit.com/adafruit-max98357-i2s -。..
如本教程的接線部分所示,連接:
? Amp Vin to Raspi Zero Pi 5V
? Amp GND to Raspi Zero Pi GND
? Amp DIN to Raspi Zero Pi #21
? Amp BCLK to Raspi Zero Pi #18
? Amp LRCLK to Raspi Zero Pi #19
將小揚聲器連接到板上的音頻導線。
Pi Zero Adafruit音頻軟件設置
也如Adafruit軟件設置教程中所示,執行以下CURL命令:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe.。.》 | bash
重啟后,請使用揚聲器測試來測試音頻:
$ speaker-test -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav
如果遇到問題,請從概述開始的Adafruit教程進行回顧。您可能需要通過本教程中的“詳細安裝”步驟來驗證所有已更新的文件。
零和Max98357音頻的重要必需步驟:
默認情況下,而Flite文字轉語音是單聲道,則ALSA音頻只能在立體聲中使用。而且,音頻在每次開始播放時都會有“啪”的一聲。
(請參閱:https://learn.adafruit.com/adafruit-max98357-i2s -。..
您必須執行以下操作:
1 )在/boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay=i2s-mmap
2上添加一行。2)替換/etc/asound.conf
$ sudo nano /etc/asound.conf
pcm.hifiberry {
type hw card 0
}
pcm.!default {
type plug
slave.pcm “dmixer”
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm “hifiberry”
channels 2
}
}
ctl.dmixer {
type hw
card 0
}
3)重新啟動您的Pi。
再次嘗試揚聲器測試。現在聽起來應該會更好。
完成包括音頻測試的設置教程后,聲音就應該準備好了。
請注意,如果您將耳機插孔帶到雜貨店或嘈雜的環境中,則可能需要添加耳機插孔來進行音頻處理。
步驟8:第二部分-軟件安裝
這假設您已經安裝了Raspbian Jessie,并且可以訪問Linux命令行。您不需要Raspbian的GUI版本,但可以使用。
如果您需要USB端口用于以太網或鍵盤/鼠標,則此時無需插入USB掃描儀。
確保您的操作系統是最新的:
$ sudo apt-get update
$ sudo apt-get upgrade
從命令行進入pi主目錄并下載GITHUB存儲庫:
$ cd /home/pi
$ sudo apt install git
$ git clone https://github.com/rgrokett/TalkingBarcodeReader.。..》 https://github.com/rgrokett/TalkingBarcodeReader.。..》
$ cd TalkingBarcodeReader
$ 。/install.sh
這將花費一些時間,特別是如果這是第一次并且需要安裝或更新Web服務器和PHP。如有必要,您可以多次運行它。
其中,這會將條形碼文件和UPC數據庫安裝到:/var/www/html/upc
下一步,編輯/etc/rc .local,并在“退出0”之前添加下一行
$ sudo nano /etc/rc.local
fi
sudo /var/www/html/upc/bin/run.sh
exit 0
安裝完成后,關閉您的Pi并插入USB條碼讀取器,然后重新啟動。
$ sudo shutdown now
將其重新啟動,您會聽到簡短的啟動語音。
如果是,請嘗試掃描雜貨店的條形碼。如果一切順利,您應該會聽到。說出該項目(或說出“未找到”)。否則,請參閱下一步的故障排除指南。
步驟9:故障排除
如果您聽不到任何聲音,則需要嘗試以下命令:
1)驗證文本語音轉換是否正常:
$ sudo flite -voice awb -t “testing”
如果收到錯誤,請確保已安裝flite:
$ sudo apt install flite
如果收到以下錯誤,請確保已更新/boot/config.txt和/etc/asound.conf在上方的“音頻設置”部分中顯示Raspi Zero的:
audio_open_alsa:未能將聲道數設置為1。無效的參數。
如果沒有錯誤也沒有聲音,請確保您的Raspberry音頻正常運行。
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1)您可能需要將音頻從音頻插孔中拔出:(請參見上面的圖1)
$ sudo raspi-config -》 7 Advanced Options -》 A4 Audio
2)一旦您確認音頻和文本到語音轉換良好,請檢查條形碼讀取器:
cd /var/www/html/upc/bin
sudo python 。/test.py
掃描條形碼時,應該看到顯示的數字條形碼編號。 (測試程序不包括音頻輸出或數據庫連接。)
3)如果所有這些都很好,請檢查“ nohup.out”文件中是否有錯誤消息:
cd /var/www/html/upc/bin
sudo cat nohup.out
可能的問題是缺少程序包或權限錯誤(或代碼中的錯誤!)。確保您的操作系統是最新的,然后再次運行install.sh。
希望您現在正在工作!
步驟10:第III部分– Web服務器
由于有成千上萬的UPC代碼,而且大多數公開(即免費)的可用數據庫只是一小部分代碼,因此該項目側重于雜貨的UPC代碼。它包含數十萬個項目,但找不到許多。
如果需要添加或更新UPC數據庫,則有兩個程序可用;如果要添加或更新UPC數據庫,則可以使用兩個程序。命令行和網絡瀏覽器。 (將數字替換為您的UPC項目編號)
$ cd /var/www/html/upc/bin
$ sudo 。/addDB.sh 01234567890 “My new item”
這會將記錄添加到數據庫中。否則,建議使用Web瀏覽器數據庫功能。
對于Web Server GUI,您需要樹莓派的IP地址。
要查找IP地址,可以使用:
$ hostname -I
192.168.1.108
從PC瀏覽器中,轉到:http://192.168.1.108/upc/
您應該會看到類似于上面圖2中的屏幕。
如果是這樣,則可以添加/更新和刪除記錄。
使用(‘》 |’)“最新記錄”按鈕導航到“最后一頁”,以查看最新記錄,因為它們是追加到數據庫末尾的。
安全性
請注意,此Web服務不受保護(不進行身份驗證,不使用SSL),因此最好不要將其公開給公共Internet。 (但由于未將其設置為WiFi接入點,因此可以安全地攜帶到商店。)
盡管如此,因為上面沒有私人數據,所以如果有人篡改數據,可能會更糟。 UPC數據。
您還可以限制對特定IP地址的訪問,以便其他人不能進入。只需用此處的IP替換您希望允許的IP地址即可。其他所有人都將無法訪問:
$ sudo vi /etc/lighttpd/lighttpd.conf
$HTTP[“remoteip”] =~ “127.0.0.1|192.168.1.108” {
url.access-deny = ( “” )
}
$ sudo /etc/init.d/lighttpd restart
此外,更改默認的PI密碼!
每個人都知道默認值為pi/raspberry
$ passwd
步驟11:對Web服務器進行故障排除
使用瀏覽器訪問Raspberry的IP地址,如下所示:
http://192.168.1.108/
您應該從/var查看默認屏幕/www/html/index.html(上面的圖1)
還請確保網絡服務器正在運行:
$ ps -ef|grep lighttpd
要驗證PHP是否良好,請創建一個php測試文件:
$ sudo nano /var/www/html/phpinfo.php
責任編輯:wv
-
閱讀器
+關注
關注
0文章
299瀏覽量
27908 -
樹莓派
+關注
關注
116文章
1699瀏覽量
105537
發布評論請先 登錄
相關推薦
評論