电子说
步骤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条评论
快来发表一下你的评论吧 !