Obsah:

Čtečka čárových kódů Raspberry Pi Talking: 12 kroků
Čtečka čárových kódů Raspberry Pi Talking: 12 kroků

Video: Čtečka čárových kódů Raspberry Pi Talking: 12 kroků

Video: Čtečka čárových kódů Raspberry Pi Talking: 12 kroků
Video: Konfigurace čtečky čárových kódů 2024, Listopad
Anonim
Čtečka čárových kódů Raspberry Pi Talking
Čtečka čárových kódů Raspberry Pi Talking

Obr.1 Skener čárových kódů z DX.com

Přehled

Aktualizace: K dispozici je krátké video demo

Moje máma už neumí číst etikety na potravinách, a tak jsem šel hledat řešení. Poté, co jsem viděl, že čtečky čárových kódů pro nevidomé běhají mnoho stovek dolarů, chtěl jsem zjistit, co lze udělat pomocí Raspberry Pi a čtečky čárových kódů USB.

Další klíčovou napodobeninou bylo, že by to mělo fungovat BEZ internetového připojení (například v obchodě nebo u přítele). Databáze a převod textu na řeč tedy musely být samostatné.

Zkoušel jsem kamerovou verzi čtečky čárových kódů, ale osvětlení a poloha kamery způsobily problémy se spolehlivostí pro někoho, kdo neviděl jasně. To také vyžadovalo zrak k nastavení a používání aplikace. Přešel jsem na čtečku čárových kódů USB Laser, zejména proto, že jsou nyní k dispozici za méně než 30 dolarů a Raspbian Jessie je podporuje hned po vybalení.

Také jsem vyzkoušel novou Amazon Dash Wand, ale nemluví o naskenované položce a ke svému fungování vyžaduje připojení k internetu.

Cílem bylo naskenovat položku a nechat Raspberry dotazovat se na interní databázi kódů UPC a poté vyslovit popis produktu pomocí převodu textu na řeč.

Aby byla jednotka co nejmenší, chtěl jsem použít Raspberry Pi Zero. Také jsem chtěl spustit jednotku z baterie.

Ke splnění těchto požadavků byly nutné určité kompromisy. Protože Zero nemá externí zvukový konektor, znovu jsem použil zvukový design z mého projektu „Earthquake Pi“, protože byl levný (asi 6 $) a velmi malý. Alternativně je možná náhrada „Jeden tranzistorový zvuk za Pi Zero“.

Pro skener laserových čárových kódů jsem našel jeden z DX.com. Je napájen z Raspberry USB a stojí asi 25 dolarů. (viz Díly níže)

Krok 1: AKTUALIZACE

S příchodem Raspberry Pi Zero W se na něj chystám přepnout. Všechno je zde stejné, kromě toho, že musíte nastavit připojení WiFi k Pi. To znamená, že pro nastavení a použití nebudete potřebovat USB hub pro Zero.

WiFi můžete nastavit pomocí:

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

Věděl jsi?

Pokud nainstalujete Raspbian Jessie na kartu SD pomocí počítače se systémem Windows, můžete na kartě vytvořit dva soubory pro konfiguraci přístupu WiFi a SSH před spuštěním na Raspberry?

Předpokládejme proto, že je vaše karta SD aktuálně připojena jako K: na vašem PC:

1) Nainstalujte nejnovější obrázek Raspbian Jessie na SD. Pro tento projekt by měla fungovat Jessie Lite.

www.raspberrypi.org/downloads/raspbian/

2) Pomocí poznámkového bloku vytvořte soubor s názvem „ssh“a pomocí příkazu Uložit jako „Všechny soubory“do K: / ssh

Soubor může obsahovat cokoli. Důležitý je název souboru. Nesmí být „ssh.txt“!!!

3) Pomocí poznámkového bloku vytvořte soubor s názvem „wpa_supplicant.conf“s následujícím:

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

síť = {

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

Použijte Uložit jako „Všechny soubory“do K: / wpa_supplicant.conf Znovu nedovolte programu Poznámkový blok změnit jej na „wpa_supplicant.conf.txt“!!

Když spouštíte Raspberry poprvé, Jessie je vyhledá a připojí se k vašemu Wifi. IP adresu však budete muset vyhledat na svém routeru, protože je přiřazena automaticky.

Krok 2: Seznam dílů

  • Raspberry Pi Zero (nebo jakýkoli Raspberry Pi, pokud velikost není problém)
  • USB laserový snímač čárových kódů

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

  • Pro Raspi Zero přidejte zesilovač Adafruit I2S 3W třídy D
  • Malý reproduktor. (Pro Pi 2, 3 použijte externí zesilovač a reproduktor.)
  • Adaptér USB OTG z mikro na USB
  • 5V 1Amp USB baterie, například Ashttps://www.adafruit.com/products/1959
  • Kabel USB na micro USB pro baterii.
  • Rozbočovač USB a Ethernet (alespoň pro počáteční nastavení, není nutný pro Zero W nebo Raspi 2, 3)
  • Software od GITHUB:

Krok 3: USB laserová čtečka čárových kódů

USB laserová čtečka čárových kódů
USB laserová čtečka čárových kódů

Laserové čtečky čárových kódů jsou ve schopnosti skenovat štítek UPC shovívavější než fotoaparáty. Fungují také dobře i ve špatně osvětlených nebo špatně umístěných štítcích.

K zapojení do nuly budete potřebovat mikro adaptér USB na USB.

Rukojeť a spoušť skeneru usnadňují použití.

Poskytuje také zpětnou vazbu, když úspěšně naskenuje štítek.

Budoucí úkol:

V konečném návrhu bych kabel zkrátil a zkrátil a připájel přímo k pinům USB na Zero, aby se zmenšila velikost a pravděpodobnost selhání konektoru. Nula a baterie by byly připevněny přímo ke spodní části rukojeti skeneru v 3D tištěném pouzdře.

Krok 4: Databáze UPC

Toto je nejhůře pokrytá část projektu, protože existují doslova miliony UPC kódů a velmi málo open-source databází, které jsou k dispozici ke stažení. Většina databází UPC je bohužel poměrně drahá a vyžaduje připojení k internetu.

Byl jsem schopen dát dohromady několik open-source databází (zdroje v příloze níže), ale i když v něm je téměř 700 000 položek, velké množství chybí.

Za tímto účelem jsem udělal dvě věci; jedním je zaměřit se konkrétně na potraviny a druhým je přidat k Raspberry webový server, aby bylo možné ručně přidávat nové kódy UPC, což však vyžaduje alespoň připojení k místní síti.

Budoucí úkol:

Udělal bych ze Zero W „hotspot“, abyste se k němu mohli připojit kdekoli a přidávat nové kódy UPC.

Krok 5: Převod textu na řeč

Použil jsem program převodu textu na řeč s názvem „Flite“, protože měl nejlepší kompromis mezi kvalitou hlasu a rychlostí převodu na nule. Ostatní zněli o něco lépe, ale byli příliš pomalí na to, aby se mohli obrátit.

Můžete se také podívat na výukový program Adafruit:

Všimněte si, že to bude trvat trochu „tréninku uší“, než si zvyknete na skloňování řeči, ale není to tak špatné.

Opětovné naskenování stejné položky zopakuje zvuk.

Budoucí ToDo

Možná přidejte konektor pro sluchátka, aby senioři snáze slyšeli hlas na hlučných místech.

Krok 6: Napájení z baterie

Systém lze spustit z 5V baterie USB, která se používá například k nabíjení mobilních telefonů.

Háček je v tom, že když odpojíte baterii nebo baterie vybije, Pi se zhroutí s šancí, že poškodí jednotku SD.

K vyřešení tohoto problému je zapotřebí tlačítko, které spouští příkaz k vypnutí. Pravděpodobně použiji tento:

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

(Ano … další „Budoucí úkol!“)

Krok 7: Část I - Přidání zvuku do Pi Zero

Část I - Přidání zvuku do Pi Zero
Část I - Přidání zvuku do Pi Zero
Část I - Přidání zvuku do Pi Zero
Část I - Přidání zvuku do Pi Zero
Část I - Přidání zvuku do Pi Zero
Část I - Přidání zvuku do Pi Zero

(Tuto část přeskočte, pokud nepoužíváte nulu!)

Na Pi Zero budete muset přidat externí zvuk, protože není vestavěný. Použil jsem levný „Adafruit I2S 3W zesilovač Breakout MAX98357A“

To vyžaduje nastavení pomocí skvělého tutoriálu Adafruit na:

Jak ukazuje část zapojení v tomto tutoriálu, připojte:

• 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

Připojte malý reproduktor ke zvukovým kabelům na desce.

Pi Zero Adafruit Audio Software Setup Také je ukázáno v tutoriálu k instalaci softwaru Adafruit, proveďte příkaz CURL níže:

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

Po restartu vyzkoušejte zvuk pomocí testu reproduktorů:

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

Pokud máte problémy, vraťte se zpět pomocí tutoriálu Adafruit a začněte znovu od přehledu. Pravděpodobně budete muset projít kroky „Podrobná instalace“v tutoriálu a ověřit všechny aktualizované soubory.

Důležité požadované kroky pro zvuk Zero & Max98357: Ve výchozím nastavení funguje zvuk ALSA pouze ve stereu, zatímco převod textu na řeč Flite je mono. Zvuk má také „prasknutí“při každém spuštění přehrávání.

(Viz:

Musíte provést následující:

1) Připojte řádek k souboru /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Nahraďte /etc/asound.conf

$ sudo nano /etc/asound.conf

pcm.hifiberry {zadejte hw kartu 0} pcm.! výchozí {typ plug slave.pcm "dmixer"} pcm.dmixer {zadejte dmix ipc_key 1024 slave {pcm "hifiberry" kanály 2}} ctl.dmixer {zadejte hw kartu 0}

3) Restartujte Pi.

Zkuste znovu test reproduktorů. Nyní by to mělo znít lépe. Jakmile dokončíte tutoriál nastavení včetně testů zvuku, zvuk by měl být připraven.

Pokud si to vezmete do obchodu s potravinami nebo do hlučného prostředí, možná budete chtít přidat konektor pro sluchátka.

Krok 8: Část II - Instalace softwaru

To předpokládá, že již máte nainstalovanou Raspbian Jessie a můžete přistupovat k příkazovému řádku Linuxu. Nepotřebujete verzi Raspbian s GUI, ale můžete ji použít.

USB skener v tuto chvíli NEPOTŘEBUJETE, pokud potřebujete USB port pro ethernet nebo klávesnici/myš.

Zkontrolujte, zda je váš operační systém aktuální:

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

Z příkazového řádku přejděte do domovského adresáře pi a stáhněte si úložiště GITHUB:

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

To bude nějakou dobu trvat, zvláště pokud je to poprvé a webový server a PHP je třeba nainstalovat nebo aktualizovat. Pokud je to nutné, můžete to spustit více než jednou. Kromě jiného se tím nainstalují soubory čárových kódů a databáze UPC na:/var/www/html/upc

Dále upravte /etc/rc.local a připojte následující řádek před „exit 0“

$ sudo nano /etc/rc.local

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

Po dokončení instalace vypněte Pi, připojte čtečku čárových kódů USB a restartujte.

$ sudo nyní vypnuto

Zapněte jej a měli byste slyšet krátký úvodní projev.

Pokud ano, zkuste naskenovat čárový kód z potraviny. Pokud vše proběhlo dobře, měli byste to slyšet vyslovit danou položku (nebo říci „Nenalezeno“). V opačném případě se podívejte na průvodce řešením potíží dále.

Krok 9: Odstraňování problémů

Odstraňování problémů
Odstraňování problémů

Pokud neslyšíte žádné zvuky, budete muset vyzkoušet následující příkazy:

1) Ověřte, zda funguje zvuk převodu textu na řeč:

$ sudo flite -voice awb -t "testování"

Pokud se zobrazí chyba, ujistěte se, že byl nainstalován flite:

$ sudo apt install flite

Pokud se zobrazí následující chyba, ujistěte se, že jste aktualizovali soubory /boot/config.txt a /etc/asound.conf zobrazené v části Nastavení zvuku výše na Raspi Zero’s: audio_open_alsa: nepodařilo se nastavit počet kanálů na 1. Neplatný argument.

Pokud se vám nezobrazí žádná chyba ani zvuk, ujistěte se, že váš zvuk Raspberry funguje.

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

1) Možná budete muset vypnout zvuk ze zvukového konektoru: (viz obr.1 výše)

$ sudo raspi -config -> 7 Pokročilé možnosti -> Zvuk A4

2) Až budete mít zvuk a převod textu na řeč dobré, zkontrolujte čtečku čárových kódů:

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

Při skenování čárového kódu byste měli vidět číselné číslo čárového kódu. (Testovací program NEOBSAHUJE zvukový výstup ani připojení k databázi.)

3) Pokud je vše v pořádku, zkontrolujte v souboru „nohup.out“chybové zprávy:

cd/var/www/html/upc/binsudo kočka nohup.out

Pravděpodobnými problémy jsou chybějící balíčky nebo špatná oprávnění (nebo CHYBY v kódu!). Ujistěte se, že je váš operační systém aktuální, a znovu spusťte soubor install.sh.

Naštěstí už pracujete!

Krok 10: Část III - Web Server

Část III - Webový server
Část III - Webový server

Protože existují MILIONY UPC kódů a většina veřejně (tj. Bezplatných) dostupných databází je jen malou podmnožinou kódů, zaměřil se tento projekt na UPC kódy pro potraviny. Obsahuje několik set tisíc položek, ale mnoho a mnoho se nenajde.

Pokud potřebujete přidat nebo aktualizovat databázi UPC, jsou k dispozici dva programy; jeden z příkazového řádku a jeden z webového prohlížeče. (nahraďte číslice číslem vaší položky UPC)

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

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

Tím se přidá záznam do databáze. V opačném případě doporučujeme použít funkci DB webového prohlížeče.

Pro GUI webového serveru potřebujete IP adresu vaší maliny.

Chcete -li zjistit IP adresu, můžete použít:

$ hostname -I 192.168.1.108

V prohlížeči na PC přejděte na: https://192.168.1.108/upc/ Měli byste vidět obrazovku podobnou té na obr. 2 výše.

Pokud ano, můžete přidávat/aktualizovat a mazat záznamy. Přejděte na poslední stránku pomocí tlačítka (‘> |‘) „poslední záznam“, abyste viděli své nejnovější záznamy tak, jak jsou připojeny na konec databáze.

ZABEZPEČENÍ UPOZORNĚNÍ, že tato webová služba není zabezpečená (žádné ověřování, žádné SSL), proto je nejlepší ji nevystavovat veřejnému internetu. (Protože ale není nastaven jako přístupový bod WiFi, je bezpečné jej nosit do obchodu.)

Ačkoli, protože na něm nejsou žádná soukromá data, horší věc, která se může stát, je, že někdo manipuluje s daty UPC.

Můžete také omezit přístup na konkrétní IP adresy, aby se dovnitř nedostaly žádné další. Stačí zde nahradit IP adresy, které chcete povolit. Všem ostatním bude zablokován pří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 restart

ZMĚNIT také výchozí heslo PI! Každý ví, že výchozí je pi/malina

$ passwd

Krok 11: Řešení potíží s webovým serverem

Odstraňování problémů s webovým serverem
Odstraňování problémů s webovým serverem
Odstraňování problémů s webovým serverem
Odstraňování problémů s webovým serverem

Pomocí prohlížeče přejděte na adresu IP svého Raspberry, například takto:

192.168.1.108/

Měli byste vidět výchozí obrazovku z /var/www/html/index.html (obr.1 výše)

Také se ujistěte, že je webový server spuštěn:

$ ps -ef | grep lighttpd

Chcete -li ověřit, že je PHP dobré, vytvořte testovací soubor php:

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

Poté přejděte na

Měli byste vidět obrazovku jako na obr. 2 výše

Pokud se vám zobrazují chyby nebo prázdné obrazovky, vyhledejte chyby v

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

Opětovné spuštění souboru install.sh může opravit chybějící závislosti.

Krok 12: Dodatek

Za zpřístupnění velké databáze UPC patří VELKÉ DÍKY.

Otevřete Grocery UPC DB

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

Otevřete Data Data

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

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

Díky EasyUI za jednoduché webové CRUD GUI

www.jeasyui.com/index.php

Doporučuje: