Съдържание:
- Стъпка 1: АКТУАЛИЗИРАНЕ
- Стъпка 2: Списък на частите
- Стъпка 3: USB лазерен четец на баркодове
- Стъпка 4: UPC база данни
- Стъпка 5: Текст в реч
- Стъпка 6: Захранване на батерията
- Стъпка 7: Част I - Добавяне на аудио към Pi Zero
- Стъпка 8: Част II - Инсталиране на софтуер
- Стъпка 9: Отстраняване на неизправности
- Стъпка 10: Част III - Уеб сървър
- Стъпка 11: Отстраняване на неизправности в уеб сървъра
- Стъпка 12: Приложение
Видео: Raspberry Pi Talking Barcode Reader: 12 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Фиг.1 Скенер за баркод от DX.com
Общ преглед
Актуализация: Налична е кратка видео демонстрация
Майка ми вече не може да чете етикети върху хранителни стоки, затова отидох да търся решения. След като видях, че четците на баркод за незрящи струват много стотици долари, исках да видя какво може да се направи с помощта на Raspberry Pi и USB четец за баркод.
Друга ключова имитация беше, че това трябва да работи БЕЗ интернет връзка (например в магазин или къща на приятел). Така че базата данни и текст в реч трябваше да бъдат самостоятелни.
Опитах базирана на камера версия на четец на баркодове, но осветлението и позицията на камерата предизвикаха проблеми с надеждността за някой, който не вижда ясно. Те също изискват зрение за настройване и използване на приложението. Затова преминах към USB лазерен четец на баркодове, особено след като сега те са достъпни за под 30 долара и Raspbian Jessie ги поддържа веднага.
Изпробвах и новата Amazon Dash Wand, но тя не говори сканирания елемент и изисква работа с интернет.
Идеята беше да се сканира елемент и Raspberry да запита вътрешна база данни с UPC кодове и след това да произнесе описанието на продукта с помощта на текст в реч.
За да направя устройството възможно най -малко, исках да използвам Raspberry Pi Zero. Исках също да захранвам устройството от батерията.
За да се изпълнят тези изисквания, бяха необходими някои компромиси. Тъй като Zero няма външен аудио жак, използвах повторно аудио дизайна от моя проект „Earthquake Pi“, тъй като беше на ниска цена (около 6 долара) и много малък. Като алтернатива може да бъде възможно заместването на „Един транзисторен аудио за Pi Zero“.
За лазерния скенер за баркод намерих такъв от DX.com. Захранва се от Raspberry USB и струва около 25 долара. (вижте части по -долу)
Стъпка 1: АКТУАЛИЗИРАНЕ
С пристигането на Raspberry Pi Zero W ще премина към него. Всичко тук е същото, освен че трябва да настроите WiFi връзката към Pi. Това означава, че няма да се нуждаете от USB хъб за Zero за настройка и използване.
Можете да настроите WiFi, като използвате:
thepihut.com/blogs/raspberry-pi-tutorials/…
Знаеше ли?
Ако инсталирате Raspbian Jessie на SD карта с помощта на компютър с Windows, можете да създадете два файла на картата, за да конфигурирате WiFi и SSH достъп, преди да го стартирате на Raspberry?
За това приемете, че вашата SD карта в момента е монтирана като K: на вашия компютър:
1) Инсталирайте най -новото изображение на Raspbian Jessie на SD. За този проект Джеси Лайт трябва да работи.
www.raspberrypi.org/downloads/raspbian/
2) С бележник създайте файл, наречен просто „ssh“и използвайте Запазване като „Всички файлове“в K: / ssh
Файлът може да съдържа всичко. Името на файла е важно. НЕ трябва да бъде „ssh.txt“!!!
3) С бележник създайте файл, наречен „wpa_supplicant.conf“със следното:
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1
мрежа = {
ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}
Използвайте Запазване като „Всички файлове“на K: / wpa_supplicant.conf Отново не позволявайте на Notepad да го променя на „wpa_supplicant.conf.txt“!!
Когато стартирате малината за първи път, Джеси ще ги потърси и ще се свърже с вашия Wifi. Ще трябва да потърсите на вашия рутер IP адреса, тъй като той е автоматично присвоен.
Стъпка 2: Списък на частите
- Raspberry Pi Zero (или който и да е Raspberry Pi, ако размерът не е проблем)
-
USB лазерен скенер за баркод
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- За Raspi Zero добавете Adafruit I2S 3W усилвател клас D
- Малък високоговорител. (За Pi 2, 3 използвайте външен усилвател и високоговорител.)
- USB Micro към USB OTG адаптер
- 5V 1Amp USB батерия като
- USB към micro USB кабел за батерия.
- USB и Ethernet хъб (поне за първоначална настройка, не е необходим за Zero W или Raspi 2, 3)
- Софтуер от GITHUB:
Стъпка 3: USB лазерен четец на баркодове
Лазерните четци на баркод са по -прощаващи в способността си да сканират UPC етикет, отколкото камерите. Те също работят добре дори при лошо осветени или лошо поставени етикети.
Ще ви е необходим USB към USB микро адаптер, за да го включите в Zero.
Ръкохватката и спусъкът на скенера го правят лесен за използване.
Той също така дава обратна връзка, когато успешно сканира етикет.
Бъдещи задачи:
В окончателния дизайн бих отрязал кабела, за да го скъся и да запоя директно към USB пиновете на нулата, за да намаля размера и вероятността от повреда на конектора. Нулата и батерията ще бъдат прикрепени директно към долната част на дръжката на скенера в 3D печатна кутия.
Стъпка 4: UPC база данни
Това е най-слабо покритата част от проекта, тъй като има буквално милиони UPC кодове и много малко бази данни с отворен код, достъпни за изтегляне. За съжаление, повечето бази данни UPC са доста скъпи и изискват интернет връзка.
Успях да събера няколко бази данни с отворен код (източници в Приложението по-долу), но дори и с близо 700 000 елемента в него, огромен брой липсват.
За тази цел съм направил две неща; единият е да се съсредоточим върху артикулите за хранителни стоки, а другият е да добавим уеб сървър към Raspberry, за да позволим ръчно добавяне на нови UPC кодове, но това изисква поне свързаност с локална мрежа.
Бъдещи задачи:
Бих направил Zero W „гореща точка“, така че да можете да се свържете с него навсякъде, за да добавите нови UPC кодове.
Стъпка 5: Текст в реч
Използвах програмата за преобразуване на текст в реч, наречена „Flite“, тъй като тя имаше най -добрия компромис между качеството на гласа и скоростта на преобразуване на Zero. Други звучаха малко по -добре, но бяха твърде бавни за преобразуване.
Можете също да разгледате урока на Adafruit:
Имайте предвид, че ще отнеме малко „обучение на ушите“, за да свикнете с флексията на речта, но това не е толкова лошо.
Сканирането на същия елемент отново ще повтори звука.
Бъдеще ToDo
Може би добавете жак за слушалки, за да улесните възрастните хора да чуват гласа на шумни места.
Стъпка 6: Захранване на батерията
Системата може да работи от 5V USB батерия, например използвана за презареждане на мобилни телефони.
Уловката е, че когато изключите батерията или батерията умре, Pi ще се срине с шанс да повреди SD устройството.
За да се реши това, е необходим бутон, който изпълнява команда за изключване. Вероятно ще използвам такъв:
www.element14.com/community/docs/DOC-78055…
(Да … още едно „Бъдеще ToDo!“)
Стъпка 7: Част I - Добавяне на аудио към Pi Zero
(Пропуснете тази част, ако не използвате нула!)
На Pi Zero ще трябва да добавите външно аудио, тъй като не е вградено. Използвах евтиния „Adafruit I2S 3W усилвател MAX98357A“
Това изисква настройка с помощта на отличния урок на Adafruit на адрес:
Както е показано в частта за окабеляване на урока, свържете:
• Amp Vin към Raspi Zero Pi 5V • Amp GND към Raspi Zero Pi GND • Amp DIN към Raspi Zero Pi #21 • Amp BCLK към Raspi Zero Pi #18 • Amp LRCLK към Raspi Zero Pi #19
Свържете малък високоговорител към аудио кабелите на дъската.
Pi Zero Adafruit Audio Software Setup Също така е показано в урока за настройка на софтуера Adafruit, изпълнете командата CURL по -долу:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | баш
След рестартирането тествайте аудиото с помощта на тест на високоговорителите:
$ speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Ако имате проблеми, върнете се през урока Adafruit, започвайки от прегледа. Може да се наложи да преминете през стъпките „Подробна инсталация“в урока, за да проверите всички актуализирани файлове.
Важни задължителни стъпки за Zero & Max98357 Audio: По подразбиране звукът ALSA работи само в стерео, докато Flite текст в говор е моно. Също така, аудиото има „пукане“в него всеки път, когато започне да се възпроизвежда.
(Вижте:
Трябва да направите следното:
1) Добавете ред към /boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay = i2s-mmap
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" канали 2}} ctl.dmixer {type hw card 0}
3) Рестартирайте Pi.
Опитайте отново Speaker-test. Сега трябва да звучи по -добре. След като завършите урока по настройка, включително аудио тестове, звукът трябва да е готов.
Обърнете внимание, че може да искате да добавите жак за слушалки за аудио, ако го занесете в магазин за хранителни стоки или в шумна среда.
Стъпка 8: Част II - Инсталиране на софтуер
Това предполага, че вече имате инсталиран Raspbian Jessie и имате достъп до командния ред на Linux. Не се нуждаете от GUI версията на Raspbian, но е добре да използвате.
В момента НЕ се нуждаете от включен USB скенер, в случай че имате нужда от USB порта за Ethernet или клавиатура/мишка.
Уверете се, че вашата ОС е актуална:
$ sudo apt-get update $ sudo apt-get надстройка
От командния ред отидете в началната директория на pi и изтеглете хранилището GITHUB:
$ cd/home/pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. ш
Това ще отнеме известно време, особено ако това е първият път и уеб сървърът и PHP трябва да бъдат инсталирани или актуализирани. Ако е необходимо, можете да стартирате това повече от веднъж. Наред с други неща, това инсталира баркод файловете и UPC базата данни на:/var/www/html/upc
След това редактирайте /etc/rc.local и добавете следния ред преди „изход 0“
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh изход 0
След като инсталацията приключи, изключете Pi и включете USB четеца за баркод и рестартирайте.
$ sudo изключване сега
Включете го отново и трябва да чуете кратка реч за стартиране.
Ако е така, опитайте да сканирате баркод от хранителен продукт. Ако всичко е наред, трябва да го чуете да говори елемента (или да каже „Не е намерен“). В противен случай вижте следващото ръководство за отстраняване на неизправности.
Стъпка 9: Отстраняване на неизправности
Ако не чувате никакви звуци, ще трябва да опитате следните команди:
1) Проверете дали звукът от текст в реч работи:
$ sudo flite -voice awb -t "тестване"
Ако получите грешка, уверете се, че е инсталиран flite:
$ sudo apt install flite
Ако получите следната грешка, уверете се, че сте актуализирали /boot/config.txt и /etc/asound.conf, показани в секцията за аудио настройка по -горе на Raspi Zero's: audio_open_alsa: не успя да зададе броя на каналите на 1. Невалиден аргумент.
Ако не получите грешка и звук, уверете се, че вашият малинов звук работи.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Може да се наложи да извадите звука от аудио жака: (вижте фиг.1 по -горе)
$ sudo raspi -config -> 7 Разширени опции -> A4 Audio
2) След като сте проверили качеството на аудио и текст в реч, проверете четеца на баркод:
cd/var/www/html/upc/binsudo python./test.py
Когато сканирате баркод, трябва да видите цифров номер на баркод. (Тестовата програма НЕ включва аудио изход или връзки към база данни.)
3) Ако всичко това е добре, проверете файла „nohup.out“за съобщения за грешка:
cd/var/www/html/upc/binsudo cat nohup.out
Вероятно проблемите са липсващи пакети или лоши разрешения (или грешки в кода!). Уверете се, че вашата операционна система е актуална и стартирайте отново install.sh.
Надяваме се, че вече работите!
Стъпка 10: Част III - Уеб сървър
Тъй като има МИЛИОНИ UPC кодове и повечето публично достъпни (т.е. безплатни) бази данни са само малка подгрупа кодове, този проект се фокусира върху UPC кодове за хранителни стоки. Той включва няколкостотин хиляди артикула, но много, много няма да бъдат намерени.
Ако трябва да добавите или актуализирате UPC базата данни, има две налични програми; един от командния ред и уеб браузър. (заменете цифрите с вашия UPC номер на артикула)
$ cd/var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 „Моят нов елемент“
Това ще добави запис към базата данни. В противен случай се предлага използването на функцията за уеб браузър DB.
За GUI на уеб сървъра се нуждаете от IP адреса на вашата малинка.
За да намерите IP адреса, можете да използвате:
$ име на хост -I 192.168.1.108
От браузър на компютър отидете на: https://192.168.1.108/upc/ Трябва да видите екран, подобен на този на фиг.2 по -горе.
Ако е така, можете да добавяте/актуализирате и изтривате записи. Придвижете се до последната страница, като използвате бутона („> |“) „последен запис“, за да видите най -новите си записи, докато са добавени към края на базата данни.
СИГУРНОСТ ЗАБЕЛЕЖКА, че тази уеб услуга не е защитена, (без удостоверяване, без SSL), така че най -добре не я излагайте на публичен Интернет. (Но тъй като не е настроен като WiFi точка за достъп, е безопасно да се носи до магазина.)
Въпреки това, тъй като няма лични данни за него, най -лошото, което може да се случи, е някой да манипулира UPC данните.
Можете също така да ограничите достъпа до конкретни 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 рестартиране
Също така, ПРОМЕНЕТЕ стандартната PI парола! Всеки знае, че по подразбиране е pi/raspberry
$ passwd
Стъпка 11: Отстраняване на неизправности в уеб сървъра
Използвайки браузъра си, отидете на IP адреса на Raspberry, например:
192.168.1.108/
Трябва да видите екрана по подразбиране от /var/www/html/index.html (Фиг.1 по -горе)
Уверете се също, че уеб сървърът работи:
$ ps -ef | grep lighttpd
За да проверите дали PHP е добър, създайте php тестов файл:
$ sudo nano /var/www/html/phpinfo.php
След това отидете на
Трябва да видите екран като Фиг.2 по -горе
Ако получите грешки или празни екрани, проверете за грешки в
$ sudo cat /var/log/lighttpd/error.log
Отново повторното стартиране на install.sh може да коригира липсващите зависимости.
Стъпка 12: Приложение
ГОЛЯМО БЛАГОДАРЯ отива на следното за предоставянето на голяма UPC база данни.
Отворете UPC DB за хранителни стоки
www.grocery.com/open-grocery-database-proje…
Отворете DB Data
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Благодарение на EasyUI за простия уеб CRUD GUI
www.jeasyui.com/index.php
Препоръчано:
Shake Detecting Talking Hat с Circuit Playground Express: 12 стъпки (със снимки)
Shake Detecting Talking Hat с Circuit Playground Express: Този лесен и бърз урок ви учи как да си направите говореща шапка! Той ще отговори с внимателно обработен отговор, когато „зададете“въпрос, и може би може да ви помогне да решите дали имате притеснения или проблеми. В моя клас Носещи технологии аз
Ted the Talking Toaster: 6 стъпки (със снимки)
Ted the Talking Toaster: Разговорите с тостер винаги са били много едностранни. Досега се запознайте с Тед говорещия тостер! По -долу преглед на съдържанието: Видео проект Тостер Електроника Чат/Гласов бот Remo.tv Световно господство
Game Boy Reader Controller: 17 стъпки (със снимки)
Game Boy Reader Controller: В тази инструкция ще се опитам да обясня как направих устройството по -горе. Той функционира като четец на касети на Game Boy, който може да чете ROM и да чете/записва RAM на игра Game Game. След това играта ще автоматично зареждане, за да можете да го играете на
Pi Zero Talking Radio: 7 стъпки (със снимки)
Pi Zero Talking Radio: Това е настолно радио DeWald от края на 40 -те години, на което дадох нов живот, използвайки Raspberry Pi Zero, Blinkt! LED лента и чифт високоговорители за компютър. Той чете известия от редица услуги, свързани с интернет, използвайки текстовия говор Pyvona (TTS)
Amazon Kindle E-ink Screen Transplant от Sony Reader: 6 стъпки (със снимки)
Трансплантация на екран с електронно мастило на Amazon Kindle от Sony Reader: След като закупих Amazon Kindle за 400 долара, докато бях на посещение в семейството миналата Коледа, малката ми сестра случайно стъпи на устройството, разбивайки екрана. Той се съхраняваше в продължение на осем месеца, преди да реша да опитам невъзможното- кро