Obsah:

Čítačka čiarových kódov Raspberry Pi Talking: 12 krokov
Čítačka čiarových kódov Raspberry Pi Talking: 12 krokov

Video: Čítačka čiarových kódov Raspberry Pi Talking: 12 krokov

Video: Čítačka čiarových kódov Raspberry Pi Talking: 12 krokov
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, November
Anonim
Hovoriaca čítačka čiarových kódov Raspberry Pi
Hovoriaca čítačka čiarových kódov Raspberry Pi

Obr.1 Skener čiarových kódov z DX.com

Prehľad

Aktualizácia: Krátke video demo je k dispozícii

Moja mama už nevie čítať štítky na potravinách, a tak som išiel hľadať riešenia. Keď som videl, že čítačky čiarových kódov pre nevidomých bežia v stovkách dolárov, chcel som vidieť, čo sa dá urobiť pomocou čítačky malín Pi a čítačky čiarových kódov USB.

Ďalšou kľúčovou napodobeninou bolo, že by to malo fungovať BEZ internetového pripojenia (napríklad v obchode alebo v dome priateľa). Databáza a prevod textu na reč teda museli byť samostatné.

Vyskúšal som verziu čítačky čiarových kódov založenú na fotoaparáte, ale osvetlenie a poloha kamery spôsobili problémy so spoľahlivosťou niekoho, kto nevidel dobre. Na nastavenie a používanie aplikácie bol potrebný aj zrak. Preto som prešiel na čítačku čiarových kódov USB Laser, najmä preto, že sú teraz k dispozícii za menej ako 30 dolárov a Raspbian Jessie ich podporuje ihneď po vybalení z krabice.

Tiež som vyskúšal novú Amazon Dash Wand, ale nehovorí o naskenovanej položke a na jej fungovanie je potrebné internetové pripojenie.

Cieľom bolo naskenovať položku a nechať Raspberry dotazovať sa na internú databázu kódov UPC a potom vysloviť popis produktu pomocou prevodu textu na reč.

Aby bola jednotka čo najmenšia, chcel som použiť Raspberry Pi Zero. Tiež som chcel jednotku vybiť z batérie.

Na splnenie týchto požiadaviek boli potrebné určité kompromisy. Pretože Zero nemá externý zvukový konektor, znova som použil zvukový dizajn z môjho projektu „Earthquake Pi“, pretože bol lacný (asi 6 dolárov) a veľmi malý. Alternatívne môže byť možná náhrada „jedného tranzistorového zvuku za Pi Zero“.

K skeneru čiarových kódov Laser som našiel jeden z webu DX.com. Je napájaný z Raspberry USB a stojí asi 25 dolárov. (pozri časti nižšie)

Krok 1: AKTUALIZÁCIA

S príchodom Raspberry Pi Zero W sa chystám naň prejsť. Všetko je tu rovnaké, okrem toho, že musíte nastaviť Wi -Fi pripojenie na Pi. To znamená, že na nastavenie a používanie nebudete potrebovať rozbočovač USB pre Zero.

WiFi môžete nastaviť pomocou:

thepihut.com/blogs/raspberry-pi-tutorials/…

Vedel si?

Ak nainštalujete Raspbian Jessie na kartu SD pomocou počítača so systémom Windows, môžete na karte vytvoriť dva súbory na konfiguráciu prístupu WiFi a SSH pred spustením systému Raspberry?

Za týmto účelom predpokladajte, že vaša karta SD je v počítači aktuálne nainštalovaná ako K:

1) Nainštalujte najnovší obrázok Raspbian Jessie na SD. Pre tento projekt by mala fungovať Jessie Lite.

www.raspberrypi.org/downloads/raspbian/

2) V programe Poznámkový blok vytvorte súbor s názvom „ssh“a pomocou príkazu Uložiť ako „Všetky súbory“ho uložte do K: / ssh

Súbor môže obsahovať čokoľvek. Dôležitý je názov súboru. Nesmie byť „ssh.txt“!!!

3) V programe Poznámkový blok vytvorte súbor s názvom „wpa_supplicant.conf“takto:

ctrl_interface = DIR =/var/run/wpa_supplicant SKUPINA = netdevupdate_config = 1

sieť = {

ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

Použite Uložiť ako „Všetky súbory“na K: / wpa_supplicant.conf Opäť nenechajte program Poznámkový blok zmeniť ho na „wpa_supplicant.conf.txt“!!

Keď prvýkrát spustíte Raspberry, Jessie ich vyhľadá a pripojí sa k vášmu Wifi. IP adresu však budete musieť vyhľadať na smerovači, pretože je priradený automaticky.

Krok 2: Zoznam dielov

  • Raspberry Pi Zero (alebo akýkoľvek Raspberry Pi, ak nie je problém veľkosť)
  • USB laserový snímač čiarových kódov

    www.dx.com/p/ls-4209-laser-bar-code-scanner…

  • Pre Raspi Zero pridajte zosilňovač Adafruit I2S 3W triedy D
  • Malý reproduktor. (Pre Pi 2, 3 použite externý zosilňovač a reproduktor.)
  • Adaptér USB OTG z mikro na USB
  • Batéria USB 5V 1Amp, napríklad Ashttps://www.adafruit.com/products/1959
  • Kábel USB na micro USB pre batériu.
  • Rozbočovač USB a Ethernet (aspoň na počiatočné nastavenia, nie je potrebný pre nulové W alebo Raspi 2, 3)
  • Softvér od spoločnosti GITHUB:

Krok 3: USB laserová čítačka čiarových kódov

USB čítačka čiarových kódov
USB čítačka čiarových kódov

Laserové čítačky čiarových kódov sú k schopnostiam skenovať štítok UPC zhovievavejšie ako fotoaparáty. Fungujú dobre aj pri slabo osvetlených alebo zle umiestnených štítkoch.

Na zapojenie do nuly budete potrebovať mikroadaptér USB na USB.

Rukoväť a spúšť skenera uľahčujú používanie.

Poskytuje tiež spätnú väzbu, keď úspešne naskenuje štítok.

Budúca úloha:

V konečnom návrhu by som kábel skrátil, aby som ho skrátil, a spájkoval by som priamo na piny USB na nule, aby som znížil veľkosť a pravdepodobnosť poruchy konektora. Nula a batéria by boli pripevnené priamo k spodnej časti držadla skenera v puzdre s 3D tlačou.

Krok 4: Databáza UPC

Toto je najhoršie pokrytá časť projektu, pretože na stiahnutie sú k dispozícii doslova milióny kódov UPC a veľmi málo databáz s otvoreným zdrojovým kódom. Väčšina databáz UPC je bohužiaľ dosť drahá a vyžaduje internetové pripojenie.

Podarilo sa mi dať dohromady niekoľko databáz s otvoreným zdrojovým kódom (zdroje v dodatku nižšie), ale aj napriek tomu, že obsahuje takmer 700 000 položiek, obrovské množstvo chýba.

Za týmto účelom som urobil dve veci; jedným je zamerať sa konkrétne na potraviny a druhým je pridať k Raspberry webový server, aby bolo možné manuálne pridávanie nových kódov UPC, vyžaduje si to však aspoň lokálne sieťové pripojenie.

Budúca úloha:

Zero W by som urobil „hotspot“, aby ste sa k nemu mohli pripojiť kdekoľvek a pridávať nové kódy UPC.

Krok 5: Prevod textu na reč

Použil som program prevodu textu na reč s názvom „Flite“, pretože mal najlepší kompromis medzi kvalitou hlasu a rýchlosťou prevodu na nule. Ostatné zneli o niečo lepšie, ale boli príliš pomalé na konverziu.

Môžete si tiež pozrieť návod spoločnosti Adafruit:

Všimnite si toho, že bude trvať trochu „školenia uší“, aby ste si zvykli na skloňovanie reči, ale nie je to také zlé.

Ak znova skenujete rovnakú položku, zvuk sa zopakuje.

Budúce ToDo

Možno pridajte konektor pre slúchadlá, aby bolo pre seniorov jednoduchšie počuť hlas na hlučných miestach.

Krok 6: Napájanie z batérie

Systém je možné spustiť z 5 V batérie USB, ktorá sa používa na nabíjanie mobilných telefónov.

Háčik je v tom, že keď batériu odpojíte alebo batéria vybije, Pi sa zrúti s možnosťou, že poškodí jednotku SD.

Na vyriešenie tohto problému je potrebné tlačidlo, ktoré spustí príkaz na vypnutie. Pravdepodobne použijem takýto:

www.element14.com/community/docs/DOC-78055…

(Áno … ďalšie „Budúce úlohy!“)

Krok 7: Časť I - Pridanie zvuku do Pi Zero

Časť I - Pridanie zvuku do Pi Zero
Časť I - Pridanie zvuku do Pi Zero
Časť I - Pridanie zvuku do Pi Zero
Časť I - Pridanie zvuku do Pi Zero
Časť I - Pridanie zvuku do Pi Zero
Časť I - Pridanie zvuku do Pi Zero

(Ak nepoužívate nulu, preskočte túto časť!)

Na Pi Zero budete musieť pridať externý zvuk, pretože nie je vstavaný. Použil som nízkonákladový „Adafruit I2S 3W zosilňovač Breakout MAX98357A“

Vyžaduje si to nastavenie pomocou vynikajúceho tutoriálu spoločnosti Adafruit na adrese:

Ako je znázornené v časti zapojenia tutoriálu, pripojte:

• Zosilňovač Vin na Raspi Zero Pi 5V • Zosilňovač GND na Raspi Zero Pi GND • Zosilňovač DIN na Raspi Zero Pi #21 • Zosilňovač BCLK na Raspi Zero Pi #18 • Zosilňovač LRCLK na Raspi Zero Pi #19

Pripojte malý reproduktor k zvukovým káblom na doske.

Pi Zero Adafruit Audio Software Setup Tiež je to uvedené v návode na inštaláciu softvéru Adafruit, spustite príkaz CURL nižšie:

$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash

Po reštarte vyskúšajte zvuk pomocou testu reproduktorov:

$ reproduktor -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav

Ak máte problémy, vráťte sa pomocou tutoriálu Adafruit a začnite od prehľadu. Na aktualizáciu všetkých aktualizovaných súborov budete možno musieť prejsť krokmi „Podrobná inštalácia“v tomto návode.

Dôležité požadované kroky pre zvuk Zero & Max98357: Zvuk ALSA v predvolenom nastavení funguje iba v režime Stereo, kým je prevod textu na reč Flite mono. Zvuk má tiež „prasknutie“pri každom spustení prehrávania.

(Pozri:

Musíte urobiť nasledovné:

1) Pripojte riadok k súboru /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Nahraďte súbor /etc/asound.conf

$ sudo nano /etc/asound.conf

pcm.hifiberry {napíšte hw kartu 0} pcm.! default {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" kanály 2}} ctl.dmixer {typ hw karta 0}

3) Reštartujte počítač Pi.

Skúste test reproduktorov znova. Teraz by to malo znieť lepšie. Keď dokončíte návod na nastavenie vrátane zvukových testov, zvuk by mal byť pripravený.

Upozorňujeme, že budete chcieť pridať konektor pre slúchadlá pre zvuk, ak ho vezmete do obchodu s potravinami alebo do hlučného prostredia.

Krok 8: Časť II - Inštalácia softvéru

To predpokladá, že už máte nainštalovaný Raspbian Jessie a máte prístup k príkazovému riadku Linuxu. Nepotrebujete GUI verziu Raspbian, ale môžete ju používať.

USB skener v súčasnej dobe nepotrebujete, v prípade, že potrebujete port USB pre ethernet alebo klávesnicu/myš.

Zaistite, aby bol váš operačný systém aktuálny:

$ sudo apt-get update $ sudo apt-get upgrade

Z príkazového riadka prejdite do domovského adresára pi a stiahnite si úložisko GITHUB:

$ cd/home/pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. sh

Bude to nejaký čas trvať, najmä ak je to prvýkrát a webový server a PHP je potrebné nainštalovať alebo aktualizovať. V prípade potreby ho môžete spustiť viac ako raz. Okrem iného sa tým nainštalujú súbory s čiarovými kódmi a databáza UPC na:/var/www/html/upc

Ďalej upravte /etc/rc.local a pripojte nasledujúci riadok pred „výjazd 0“

$ sudo nano /etc/rc.local

fi sudo /var/www/html/upc/bin/run.sh exit 0

Po dokončení inštalácie vypnite počítač Pi, zapojte čítačku čiarových kódov USB a reštartujte počítač.

$ sudo teraz vypnuté

Zapnite ho a mali by ste počuť krátky úvodný prejav.

Ak je to tak, skúste naskenovať čiarový kód z potraviny. Ak všetko prebehlo dobre, mali by ste počuť, ako hovorí danú položku (alebo povedzte „Nenašlo sa“). V opačnom prípade si pozrite ďalej sprievodcu riešením problémov.

Krok 9: Riešenie problémov

Riešenie problémov
Riešenie problémov

Ak nepočujete žiadne zvuky, budete musieť vyskúšať nasledujúce príkazy:

1) Overte, či funguje zvuk prevodu textu na reč:

$ sudo flite -voice awb -t "testovanie"

Ak sa zobrazí chyba, uistite sa, že bol nainštalovaný flite:

$ sudo apt install flite

Ak sa zobrazí nasledujúca chyba, uistite sa, že ste aktualizovali súbory /boot/config.txt a /etc/asound.conf zobrazené v sekcii Nastavenie zvuku vyššie na serveri Raspi Zero: audio_open_alsa: nepodarilo sa nastaviť počet kanálov na 1. Neplatný argument.

Ak sa vám nezobrazuje žiadna chyba ani zvuk, uistite sa, že váš zvuk Raspberry funguje.

sudo aplay /usr/share/sounds/alsa/Front_Center.wav

1) Možno budete musieť vypnúť zvuk zo zvukového konektora: (pozri obrázok 1 vyššie)

$ sudo raspi -config -> 7 Rozšírené možnosti -> Zvuk A4

2) Keď máte overenú kvalitu zvuku a prevodu textu na reč, skontrolujte čítačku čiarových kódov:

cd/var/www/html/upc/binsudo python./test.py

Pri skenovaní čiarového kódu by ste mali vidieť číselné číslo čiarového kódu. (Testovací program NEOBSAHUJE zvukový výstup ani databázové pripojenia.)

3) Ak je to všetko v poriadku, skontrolujte v súbore „nohup.out“chybové hlásenia:

cd/var/www/html/upc/binsudo cat nohup.out

Pravdepodobnými problémami sú chýbajúce balíky alebo nesprávne povolenia (alebo CHYBY v kóde!). Uistite sa, že je váš operačný systém aktuálny, a znova spustite súbor install.sh.

Našťastie už pracujete!

Krok 10: Časť III - Webový server

Časť III - Webový server
Časť III - Webový server

Pretože existujú MILIÓNY UPC kódov a väčšina verejne (t.j. bezplatne) dostupných databáz je len malou podmnožinou kódov, zameral sa tento projekt na UPC kódy pre potraviny. Obsahuje niekoľko stotisíc položiek, ale veľa a mnoho sa nenájde.

Ak potrebujete pridať alebo aktualizovať databázu UPC, sú k dispozícii dva programy; jeden z príkazového riadka a jeden z webového prehliadača. (nahraďte číslice číslom položky UPC)

$ cd/var/www/html/upc/bin

$ sudo./addDB.sh 01234567890 „Moja nová položka“

Tým sa pridá záznam do databázy. V opačnom prípade sa odporúča použiť funkciu DB webového prehliadača.

Pre GUI webového servera potrebujete IP adresu vašej maliny.

Na zistenie IP adresy môžete použiť:

$ hostname -I 192.168.1.108

V prehliadači PC choďte na: https://192.168.1.108/upc/ Mali by ste vidieť obrazovku podobnú tej na obrázku 2 vyššie.

Ak je to tak, môžete záznamy pridávať/aktualizovať a odstraňovať. Prejdite na poslednú stránku pomocou tlačidla („> |‘) „posledný záznam“, aby ste videli svoje najnovšie záznamy pri ich pripojení na koniec databázy.

ZABEZPEČENIE UPOZORNENIE, že táto webová služba nie je zabezpečená (žiadna autentifikácia, žiadne SSL), preto je najlepšie nevystavovať ju verejnému internetu. (Pretože však nie je nastavený ako prístupový bod WiFi, je bezpečné ho nosiť do obchodu.)

Aj keď neexistujú žiadne súkromné údaje, najhoršie by sa to mohlo stať, ak niekto spravuje údaje UPC.

Môžete tiež obmedziť prístup na konkrétne adresy IP, aby sa do nich nedostali iní. Stačí nahradiť IP adresy tu, ktoré chcete povoliť. Všetkým ostatným bude zablokovaný prístup:

$ sudo vi /etc/lighttpd/lighttpd.conf

$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd reštart

ZMENTE tiež predvolené heslo PI! Každý vie, že predvolená hodnota je pi/malina

$ passwd

Krok 11: Riešenie problémov s webovým serverom

Riešenie problémov s webovým serverom
Riešenie problémov s webovým serverom
Riešenie problémov s webovým serverom
Riešenie problémov s webovým serverom

V prehliadači prejdite na adresu IP svojho Raspberry takto:

192.168.1.108/

Mali by ste vidieť predvolenú obrazovku z /var/www/html/index.html (obr. 1 vyššie)

Tiež sa uistite, že je webový server spustený:

$ ps -ef | grep lighttpd

Ak chcete overiť, či je PHP dobré, vytvorte testovací súbor php:

$ sudo nano /var/www/html/phpinfo.php

Potom prejdite na stránku

Mali by ste vidieť obrazovku ako na obrázku 2 vyššie

Ak sa vám zobrazia chyby alebo prázdne obrazovky, vyhľadajte chyby v priečinku

$ sudo cat /var/log/lighttpd/error.log

Opätovné spustenie súboru install.sh môže opraviť chýbajúce závislosti.

Krok 12: Príloha

Za sprístupnenie veľkej databázy UPC patrí VEĽKÉ ĎAKUJEM.

Otvorte obchod s potravinami UPC DB

www.grocery.com/open-grocery-database-proje…

Otvorte databázu údajov

www.grocery.com/open-grocery-database-proje…

www.upc-search.org/perl/upc-search.pl?q=84…

Vďaka EasyUI za jednoduché webové CRUD GUI

www.jeasyui.com/index.php

Odporúča: