Sadržaj:

Raspberry Pi čitač barkoda koji govori: 12 koraka
Raspberry Pi čitač barkoda koji govori: 12 koraka

Video: Raspberry Pi čitač barkoda koji govori: 12 koraka

Video: Raspberry Pi čitač barkoda koji govori: 12 koraka
Video: BigTreeTech - Manta - M8P - Basics 2024, Studeni
Anonim
Raspberry Pi čitač barkoda koji govori
Raspberry Pi čitač barkoda koji govori

Sl.1 Skener bar koda s DX.com

Pregled

Ažuriranje: Dostupna je kratka video demonstracija

Moja mama više ne može čitati etikete na namirnicama pa sam otišao tražiti rješenja. Nakon što sam vidio da čitači bar koda za slijepe zarađuju stotine dolara, htio sam vidjeti što se može učiniti pomoću Raspberry Pi -a i USB čitača barkoda.

Još jedna ključna imitacija bila je da bi to trebalo raditi BEZ internetske veze (na primjer u trgovini ili kući prijatelja). Stoga su baza podataka i pretvaranje teksta u govor morali biti samostalni.

Isprobao sam verziju čitača bar koda temeljenu na kameri, ali osvjetljenje i položaj kamere uzrokovali su probleme s pouzdanošću za nekoga tko ne vidi jasno. To je također zahtijevalo vid za postavljanje i korištenje aplikacije. Pa sam prešao na USB laserski čitač bar kodova, pogotovo jer su sada dostupni za manje od 30 USD, a Raspbian Jessie ih podržava odmah.

Isprobao sam i novi Amazon Dash Wand, ali ne govori skeniranu stavku i za rad mu je potrebna internetska veza.

Ideja je bila skenirati stavku i zatražiti od Raspberryja internu bazu UPC kodova, a zatim izgovoriti opis proizvoda koristeći tekst u govor.

Kako bih jedinica bila što manja, htjela sam koristiti Raspberry Pi Zero. Također sam želio pokrenuti jedinicu iz baterije.

Da bi se ispunili ti zahtjevi bili su potrebni neki kompromisi. Budući da Zero nema vanjski audio priključak, ponovno sam upotrijebio audio dizajn iz svog projekta "Earthquake Pi" jer je bio niske cijene (oko 6 USD) i vrlo mali. Alternativno, može se zamijeniti "Jedan tranzistorski zvuk za Pi Zero".

Za laserski skener bar koda našao sam jedan s DX.com. Napaja se s Raspberry USB -a i košta oko 25 USD. (vidi donje dijelove)

Korak 1: AŽURIRAJ

Dolaskom Raspberry Pi Zero W, prijeći ću na njega. Ovdje je sve isto, samo što morate postaviti WiFi vezu na Pi. To znači da za postavljanje i upotrebu nećete trebati USB čvorište za Zero.

WiFi možete postaviti pomoću:

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

Dali si znao?

Ako instalirate Raspbian Jessie na SD karticu pomoću računala sa sustavom Windows, možete stvoriti dvije datoteke na kartici kako biste konfigurirali WiFi i SSH pristup prije nego što ga pokrenete na Raspberryju?

U tu svrhu pretpostavimo da je vaša SD kartica trenutno montirana kao K: na vašem računalu:

1) Instalirajte najnoviju sliku Raspbian Jessie na SD. Za ovaj projekt trebala bi raditi Jessie Lite.

www.raspberrypi.org/downloads/raspbian/

2) S bilježnicom stvorite datoteku koja se zove samo „ssh“i upotrijebite Spremi kao „Sve datoteke“u K: / ssh

Datoteka može sadržavati bilo što. Naziv datoteke je važan. NE smije biti "ssh.txt" !!!

3) S bilježnicom stvorite datoteku pod nazivom "wpa_supplicant.conf" sa sljedećim:

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

mreža = {

ssid = "mySSID" psk = "moja lozinka" key_mgmt = WPA-PSK}

Koristite Spremi kao “Sve datoteke” u K: / wpa_supplicant.conf Opet, ne dopustite Notepadu da ga promijeni u “wpa_supplicant.conf.txt” !!

Kad prvi put pokrenete Raspberry, Jessie će ih potražiti i spojiti na vaš Wifi. IP adresu ćete morati potražiti na usmjerivaču budući da mu je automatski dodijeljen.

Korak 2: Popis dijelova

  • Raspberry Pi Zero (ili bilo koji Raspberry Pi, ako veličina nije problem)
  • USB laserski skener bar koda

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

  • Za Raspi Zero, dodajte Adafruit I2S 3W pojačalo klase Dhttps://www.adafruit.com/products/3006
  • Mali zvučnik. (Za Pi 2, 3 koristite vanjsko pojačalo i zvučnik.)
  • USB Micro na USB OTG adapterhttps://www.adafruit.com/products/2910
  • USB baterija od 5V 1Amp, poput
  • USB na mikro USB kabel za bateriju.
  • USB i Ethernet čvorište (barem za početne postavke, nije potrebno za Zero W ili Raspi 2, 3)
  • Softver s GITHUB -a:

Korak 3: USB laserski čitač bar kodova

USB laserski čitač bar kodova
USB laserski čitač bar kodova

Čitači laserskih crtičnih kodova više opraštaju svoju sposobnost skeniranja UPC naljepnice od fotoaparata. Također dobro rade čak i na slabo osvijetljenim ili loše postavljenim naljepnicama.

Za priključivanje u nulu trebat će vam USB adapter na USB.

Ručka i okidač skenera olakšavaju upotrebu.

Također daje povratne informacije kada uspješno skenira naljepnicu.

Budući toDo:

U konačnom dizajnu, presjekao bih kabel kako bih ga skratio i lemio izravno na USB pinove na Nuli kako bih smanjio veličinu i vjerojatnost kvara konektora. Nula i baterija će biti pričvršćene izravno na dno ručke skenera u 3D tiskanom kućištu.

Korak 4: UPC baza podataka

Ovo je najslabije pokriven dio projekta jer doslovno postoje milijuni UPC kodova i vrlo malo baza podataka otvorenog koda dostupnih za preuzimanje. Nažalost, većina UPC baza podataka prilično je skupa i zahtijeva internetsku vezu.

Uspio sam sastaviti nekoliko baza podataka otvorenog koda (izvori u donjem Dodatku), ali čak i sa gotovo 700 000 stavki, veliki broj nedostaje.

U tu svrhu učinio sam dvije stvari; jedan je usredotočiti se na artikle namirnica, a drugi je dodavanje web poslužitelja u Raspberry kako bi se omogućilo ručno dodavanje novih UPC kodova, no za to je potrebno barem povezivanje s lokalnom mrežom.

Budući toDo:

Ja bih Zero W učinio "hotspotom" tako da se možete povezati s njim bilo gdje kako biste dodali nove UPC kodove.

5. korak: pretvaranje teksta u govor

Koristio sam program za pretvaranje teksta u govor nazvan "Flite", jer je imao najbolji kompromis između kvalitete glasa i brzine pretvorbe na Nulti. Drugi su zvučali malo bolje, ali bili su prespori za obraćenje.

Također možete pogledati Adafruitov vodič:

Imajte na umu da će trebati malo "treninga uha" da se naviknete na fleksiju govora, ali nije tako loše.

Ponovno skeniranje iste stavke ponovit će zvuk.

Budući ToDo

Možda dodajte priključak za slušalice kako biste starijima olakšali čuti glas na bučnim mjestima.

Korak 6: Napajanje baterije

Sustav se može pokrenuti iz 5V USB baterije, poput one za punjenje mobitela.

Kvaka je u tome što kada isključite bateriju ili ako se baterija isprazni, Pi će se srušiti s mogućnošću da ošteti SD pogon.

Da bi se to riješilo, potreban je gumb koji pokreće naredbu za isključivanje. Vjerojatno ću koristiti ovakvu:

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

(Da … još jedan "Future ToDo!")

Korak 7: I dio - Dodavanje zvuka u Pi Zero

Dio I - Dodavanje zvuka u Pi Zero
Dio I - Dodavanje zvuka u Pi Zero
Dio I - Dodavanje zvuka u Pi Zero
Dio I - Dodavanje zvuka u Pi Zero
Dio I - Dodavanje zvuka u Pi Zero
Dio I - Dodavanje zvuka u Pi Zero

(Preskočite ovaj dio ako ne koristite nulu!)

Na Pi Zero morat ćete dodati vanjski zvuk jer nije ugrađen. Koristio sam jeftino “Adafruit I2S 3W pojačalo pojačala MAX98357A”

To zahtijeva postavljanje pomoću izvrsnog vodiča Adafruit-a na:

Kao što je prikazano u dijelu ožičenja u vodiču, povežite:

• Pojačalo Vin na Raspi Zero Pi 5V • Pojačalo GND na Raspi Zero Pi GND • Pojačalo DIN na Raspi Zero Pi #21 • Pojačalo BCLK na Raspi Zero Pi #18 • Pojačalo LRCLK na Raspi Zero Pi #19

Spojite mali zvučnik na audio vodiče na ploči.

Postavljanje Pi Zero Adafruit audio softvera Također prikazano u vodiču za postavljanje softvera Adafruit, izvedite naredbu CURL u nastavku:

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

Nakon ponovnog pokretanja, testirajte zvuk pomoću zvučnika:

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

Ako imate problema, vratite se kroz vodič Adafruit počevši od pregleda. Možda ćete morati proći korake "Detaljna instalacija" u vodiču kako biste provjerili jesu li sve datoteke ažurirane.

Važni potrebni koraci za Zero & Max98357 audio: Prema zadanim postavkama, zvuk ALSA radi samo u stereo režimu, dok je Flite pretvaranje teksta u govor mono. Također, zvuk ima "pops" u sebi svaki put kad se počne reproducirati.

(Vidi:

Morate učiniti sljedeće:

1) Dodajte redak u /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Zamijenite /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" kanali 2}} ctl.dmixer {type hw card 0}

3) Ponovo pokrenite Pi.

Pokušajte ponovo sa zvučničkim testom. Sada bi trebao zvučati bolje. Nakon što dovršite vodič za postavljanje, uključujući audio testove, zvuk bi trebao biti spreman.

Imajte na umu da ćete možda htjeti dodati utičnicu za slušalice za zvuk, ako to odnesete u trgovinu ili u bučno okruženje.

Korak 8: Dio II - Instalacija softvera

Ovo pretpostavlja da već imate instaliranu Raspbian Jessie i da možete pristupiti Linux naredbenoj liniji. Ne trebate grafičku verziju Raspbiana, ali je u redu za upotrebu.

Trenutno vam ne treba priključiti USB skener, ako vam je potreban USB priključak za Ethernet ili tipkovnicu/miš.

Provjerite je li vaš OS ažuriran:

$ sudo apt-get update $ sudo apt-get nadogradnja

Iz naredbenog retka idite na početni direktorij pi i preuzmite spremište GITHUB:

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

To će potrajati, osobito ako je ovo prvi put i web poslužitelj i PHP moraju biti instalirani ili ažurirani. Ako je potrebno, ovo možete pokrenuti više puta. Između ostalog, ovo instalira datoteke crtičnog koda i UPC bazu podataka na:/var/www/html/upc

Zatim uredite /etc/rc.local i dodajte sljedeći redak prije "izlaza 0"

$ sudo nano /etc/rc.local

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

Nakon što je instalacija dovršena, isključite Pi i priključite USB čitač barkoda i ponovo pokrenite.

$ sudo se sada isključuje

Ponovo ga uključite i trebali biste čuti kratki uvodni govor.

Ako je tako, pokušajte skenirati crtični kod iz trgovine. Ako je sve prošlo dobro, trebali biste čuti kako izgovara stavku (ili govoriti "Nije pronađeno"). U suprotnom, pogledajte sljedeći vodič za rješavanje problema.

Korak 9: Rješavanje problema

Rješavanje problema
Rješavanje problema

Ako ne čujete zvukove, morat ćete isprobati sljedeće naredbe:

1) Provjerite radi li zvuk pretvaranja teksta u govor:

$ sudo flite -voice awb -t "testiranje"

Ako dobijete pogrešku, provjerite je li instaliran flite:

$ sudo apt install flite

Ako dobijete sljedeću pogrešku, provjerite jeste li ažurirali /boot/config.txt i /etc/asound.conf prikazane u gornjem odjeljku Audio Setup na Raspi Zero's: audio_open_alsa: nije uspjelo postaviti broj kanala na 1. Nevažeći argument.

Ako ne dobijete pogrešku i nema zvuka, provjerite radi li vaš Raspberry audio.

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

1) Možda ćete morati istisnuti zvuk iz audio priključka: (vidi sliku 1 gore)

$ sudo raspi -config -> 7 Napredne opcije -> A4 Audio

2) Kad provjerite zvuk i pretvaranje teksta u govor, provjerite čitač crtičnog koda:

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

Prilikom skeniranja crtičnog koda trebali biste vidjeti numerički broj crtičnog koda. (Program za testiranje NE uključuje audio izlaz ili veze s bazom podataka.)

3) Ako je sve ovo dobro, provjerite u datoteci "nohup.out" poruke o pogreškama:

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

Vjerojatno problemi nedostaju paketi ili loša dopuštenja (ili greške u kodu!). Provjerite je li vaš OS ažuriran i ponovo pokrenite install.sh.

Nadamo se da ste već radili!

Korak 10: Dio III - Web poslužitelj

Dio III - Web poslužitelj
Dio III - Web poslužitelj

Budući da postoji MILIJUNI UPC kodova, a većina javno dostupnih (tj. Besplatnih) baza podataka samo je mali podskup kodova, ovaj se projekt usredotočio na UPC kodove za namirnice. Uključuje nekoliko stotina tisuća predmeta, ali mnogi, mnogi neće biti pronađeni.

Ako trebate dodati ili ažurirati UPC bazu podataka, dostupna su dva programa; jedan iz naredbenog retka i web preglednik. (zamijenite znamenke svojim UPC brojem stavke)

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

$ sudo./addDB.sh 01234567890 "Moja nova stavka"

To će dodati zapis u bazu podataka. U protivnom, predlaže se upotreba funkcije baze podataka web preglednika.

Za GUI web poslužitelja potrebna vam je IP adresa vašeg malina.

Za pronalaženje IP adrese možete koristiti:

$ naziv hosta -I 192.168.1.108

Iz preglednika na računalu idite na: https://192.168.1.108/upc/ Trebali biste vidjeti zaslon sličan onom na slici 2 gore.

Ako je tako, možete dodavati/ažurirati i brisati zapise. Idite na Posljednju stranicu pomoću gumba "zadnji zapis" ("> |") da biste vidjeli svoje najnovije zapise koji su dodani na kraj baze podataka.

SIGURNOSTNAPOMENA da ova web usluga nije zaštićena, (bez provjere autentičnosti, bez SSL -a), pa je najbolje da je ne izlažete javnom Internetu. (No, budući da nije postavljena kao WiFi pristupna točka, sigurno je za nošenje u trgovinu.)

No, budući da o njemu nema privatnih podataka, najgore što bi se moglo dogoditi je netko tko manipulira UPC podacima.

Također možete ograničiti pristup određenim IP adresama kako drugi ne bi mogli ući. Samo zamijenite IP (ove) IP adresama koje želite dopustiti. Svim ostalim bit će onemogućen pristup:

$ sudo vi /etc/lighttpd/lighttpd.conf

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

Također, PROMJENITE zadanu PI lozinku! Svi znaju da je zadana vrijednost pi/malina

$ passwd

11. korak: Rješavanje problema s web poslužiteljem

Rješavanje problema s web poslužiteljem
Rješavanje problema s web poslužiteljem
Rješavanje problema s web poslužiteljem
Rješavanje problema s web poslužiteljem

Koristeći svoj preglednik idite na Raspberryjevu IP adresu, ovako:

192.168.1.108/

Trebali biste vidjeti zadani zaslon s /var/www/html/index.html (slika 1 gore)

Također provjerite radi li web poslužitelj:

$ ps -ef | grep lighttpd

Da biste provjerili je li PHP dobar, stvorite php testnu datoteku:

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

Zatim idite na

Trebali biste vidjeti ekran poput slike 2 gore

Ako dobijete pogreške ili prazne zaslone, provjerite ima li pogrešaka u

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

Ponovno pokretanje install.sh može popraviti nedostatke ovisnosti.

Korak 12: Dodatak

VELIKO HVALA ide na sljedeće za stavljanje na raspolaganje velike UPC baze podataka.

Otvorite UPC DB za namirnice

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

Otvorite bazu podataka

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

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

Zahvaljujući EasyUI -u za jednostavan CRUD GUI na webu

www.jeasyui.com/index.php

Preporučeni: