Sadržaj:
- Korak 1: AŽURIRAJ
- Korak 2: Popis dijelova
- Korak 3: USB laserski čitač bar kodova
- Korak 4: UPC baza podataka
- 5. korak: pretvaranje teksta u govor
- Korak 6: Napajanje baterije
- Korak 7: I dio - Dodavanje zvuka u Pi Zero
- Korak 8: Dio II - Instalacija softvera
- Korak 9: Rješavanje problema
- Korak 10: Dio III - Web poslužitelj
- 11. korak: Rješavanje problema s web poslužiteljem
- Korak 12: Dodatak
Video: Raspberry Pi čitač barkoda koji govori: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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
Č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
(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
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
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
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:
Robot koji govori da li vas prodavač elektronike vara ili ne: 6 koraka
Robot koji govori da li vas prodavač elektronike vara ili ne: Prošle godine smo ja i tata otišli u novootvorenu trgovinu robotike/elektronike vrlo blizu mjesta gdje živimo. Kad sam tamo ušao, bilo je puno elektronike, serova, senzora, Raspberry pis -a i Arduinosa. Sljedećeg dana otišli smo u istu trgovinu i kupili
Djed Mraz koji govori: 5 koraka
Talking Santa Blowmold: Ovaj projekt objašnjava kako napraviti ukras koji reproducira zvučnu datoteku kad netko prođe. To se lako može postići računalom koje može pokrenuti program Motion i nekom kamerom. U ovom slučaju koristio sam 20 " visoki Djed Mraz
Ted toster koji govori: 6 koraka (sa slikama)
Ted toster koji govori: Razgovori s tosterom uvijek su bili jednostrani. Do sada, upoznajte Teda koji govori Toster! Ispod pregleda sadržaja: Video projekt Toster Electronics Chat/Glas bot Remo.tv Svjetska dominacija
Senzor temperature i vlažnosti koji govori - Si7021 i Mali prijatelj: 3 koraka
Senzor temperature i vlažnosti koji razgovara - Si7021 i Little Buddy Talker: " Mali prijatelj s prijateljima " je mali uređaj koji vam omogućuje dodavanje jednostavnog glasovnog izlaza vašim Arduino projektima. Sadrži ograničen skup od 254 riječi i može se povezati s Arduinom ili drugim mikrokontrolerima putem SPI -ja. Mali prijatelj T
Uređaj za mjerenje UV-indeksa koji govori, pomoću senzora VEML6075 i Malog prijatelja: 5 koraka
Uređaj za mjerenje UV-indeksa koji govori, pomoću senzora VEML6075 i Malog prijatelja: Dolaze ljeta! Sunce sja! Što je sjajno. No, kako ultraljubičasto (UV) zračenje postaje sve intenzivnije, ljudi poput mene dobivaju pjege, male smeđe otočiće koji plivaju u moru crvene, opečene od sunca, kože koja svrbi. Mogućnost dobivanja informacija u stvarnom vremenu