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, Decembar
Anonim
Raspberry Pi čitač barkoda koji govori
Raspberry Pi čitač barkoda koji govori

Sl.1 Skener bar koda sa DX.com

Pregled

Ažuriranje: Dostupna je kratka video demonstracija

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

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

Isprobao sam verziju čitača bar koda zasnovanu 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 iz kutije.

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 postaviti Raspberry-u upit u 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đe sam hteo da pokrenem jedinicu sa napajanja iz baterije.

Da bi se ispunili ovi 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, zamjena "jednog tranzistorskog zvuka za Pi Zero" može biti moguća.

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

Korak 1: AŽURIRAJ

Sa dolaskom Raspberry Pi Zero W, preći ću na njega. Ovdje je sve isto, osim što morate postaviti WiFi vezu na Pi. To znači da vam za postavljanje i upotrebu neće trebati USB čvorište za Zero.

WiFi možete postaviti pomoću:

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

Da li ste znali?

Ako instalirate Raspbian Jessie na SD karticu pomoću Windows računara, možete stvoriti dvije datoteke na kartici za konfiguriranje WiFi i SSH pristupa prije nego što je pokrenete na Raspberryju?

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

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

www.raspberrypi.org/downloads/raspbian/

2) Pomoću bilježnice stvorite datoteku koja se zove samo “ssh” i koristite Spremi kao “Sve datoteke” u K: / ssh

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

3) Pomoću bilježnice 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: Lista 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
  • 5V 1Amp USB baterija kao što je
  • 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 sa GITHUB -a:

Korak 3: USB laserski čitač bar kodova

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

Laserski čitači bar koda više opraštaju svoju sposobnost skeniranja UPC naljepnice nego kamere. Oni također dobro rade čak i na slabo osvijetljenim ili loše postavljenim naljepnicama.

Trebat će vam mikro adapter USB na USB da biste ga priključili u Nultu.

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

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

Budući zadaci:

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

Korak 4: UPC baza podataka

Ovo je najslabije pokriven dio projekta, budući da 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 zahtijevaju internetsku vezu.

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

U tu svrhu učinio sam dvije stvari; jedan je fokus na specifičnim stavkama namirnica, a drugi je dodavanje web servera u Raspberry kako bi se omogućilo ručno dodavanje novih UPC kodova, međutim, za to je potrebno barem lokalno mrežno povezivanje.

Budući zadaci:

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

Korak 5: Pretvaranje teksta u govor

Koristio sam program za pretvaranje teksta u govor koji se zove “Flite”, jer je imao najbolji kompromis između kvalitete glasa i brzine konverzije na Nulti. Drugi su zvučali malo bolje, ali su bili prespori za obraćanje.

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.

Ponovnim skeniranjem iste stavke zvuk će se ponoviti.

Future ToDo

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

Korak 6: Napajanje baterije

Sistem se može koristiti iz 5V USB baterije, poput one koja se koristi za punjenje mobilnih telefona.

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

Da biste to riješili, potrebno je dugme koje pokreće naredbu za isključivanje. Vjerovatno ću koristiti ovakvu:

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

(Da … još jedno "Budućnost!")

Korak 7: I dio - Dodavanje zvuka u Pi Zero

I dio - Dodavanje zvuka u Pi Zero
I dio - Dodavanje zvuka u Pi Zero
I dio - Dodavanje zvuka u Pi Zero
I dio - Dodavanje zvuka u Pi Zero
I dio - Dodavanje zvuka u Pi Zero
I dio - 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 Adafruit-ovog izvrsnog vodiča na:

Kao što je prikazano u dijelu vodiča o povezivanju, 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 Adafruit softvera, izvršite 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 da biste provjerili da li su sve datoteke ažurirane.

Važni potrebni koraci za Zero i Max98357 audio: Prema zadanim postavkama, ALSA zvuk radi samo u stereo režimu, dok je Flite pretvaranje teksta u govor mono. Također, zvuk ima "iskakanje" svaki put kada 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 završ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 ovo odnesete u trgovinu mješovitom robom 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 komandnoj 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 port za Ethernet ili tipkovnicu/miš.

Uvjerite se da je vaš OS ažuriran:

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

Iz komandne linije idite na početni direktorij pi i preuzmite GITHUB spremište:

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

Ovo će potrajati, posebno ako je ovo prvi put i web server i PHP moraju biti instalirani ili ažurirani. Ako je potrebno, ovo možete pokrenuti više puta. Između ostalog, ovo instalira datoteke sa bar kodom 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 kratak govor pri pokretanju.

Ako je tako, pokušajte skenirati crtični kôd iz trgovine. Ako je sve prošlo u redu, trebali biste čuti kako izgovara stavku (ili izgovoriti "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 grešku, provjerite je li instaliran flite:

$ sudo apt install flite

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

Ako ne dobijete grešku i nema zvuka, provjerite radi li vaš Raspberry zvuk.

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) Nakon što provjerite zvuk i pretvaranje teksta u govor, provjerite čitač bar koda:

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

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

3) Ako je sve ovo dobro, provjerite da li u datoteci „nohup.out“ima poruka o grešci:

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

Vjerovatno problemi nedostaju paketi ili loše dozvole (ili greške u kodu!). Uvjerite se da je vaš OS ažuriran i ponovo pokrenite install.sh.

Nadajmo se da ste već radili!

Korak 10: Dio III - Web server

Dio III - Web server
Dio III - Web server

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

Ako trebate dodati ili ažurirati UPC bazu podataka, dostupna su dva programa; jedan iz komandne linije i jedan veb pregledač. (zamijenite znamenke svojim UPC brojem stavke)

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

$ sudo./addDB.sh 01234567890 “Moja nova stavka”

Ovo će dodati zapis u bazu podataka. U suprotnom se predlaže upotreba DB funkcije web preglednika.

Za grafičko sučelje web servera potrebna vam je IP adresa vašeg malina.

Da biste pronašli IP adresu, možete koristiti:

$ hostname -I 192.168.1.108

Iz pretraživača računara idite na: https://192.168.1.108/upc/ Trebali biste vidjeti ekran 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 vidite svoje najnovije zapise kako 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.)

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

Također možete ograničiti pristup određenim IP adresama tako da drugi ne mogu ući. Samo zamijenite IP (ove) IP adresama koje želite dopustiti. Svim ostalim će biti 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

Korak 11: 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 ekran sa /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 kao na slici 2 gore

Ako dobijete greške ili prazne ekrane, provjerite ima li grešaka u

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

Ponovno pokretanje install.sh može popraviti nedostajuće zavisnosti.

Korak 12: Dodatak

VELIKO HVALA ide na sledeć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čuje se: