Kazalo:
- 1. korak: UPDATE
- 2. korak: Seznam delov
- 3. korak: Laserski čitalnik črtne kode USB
- 4. korak: Baza podatkov UPC
- 5. korak: Pretvorba besedila v govor
- 6. korak: Napajanje baterije
- Korak 7: Prvi del - Dodajanje zvoka v Pi Zero
- 8. korak: Del II - Namestitev programske opreme
- 9. korak: Odpravljanje težav
- 10. korak: III. Del - spletni strežnik
- 11. korak: Odpravljanje težav s spletnim strežnikom
- 12. korak: Dodatek
Video: Bralnik črtne kode za govorjenje Raspberry Pi: 12 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Slika 1 Skener črtne kode z DX.com
Pregled
Posodobitev: Na voljo je kratek videoposnetek
Moja mama ne more več brati nalepk na izdelkih iz trgovine, zato sem šel iskat rešitve. Ko sem videl, da čitalniki črtne kode za slepe tečejo na stotine dolarjev, sem želel videti, kaj je mogoče storiti z uporabo Raspberry Pi in bralnika črtne kode USB.
Druga ključna imitacija je bila, da bi to moralo delovati BREZ internetne povezave (na primer v trgovini ali hiši prijatelja). Tako sta morala biti zbirka podatkov in besedilo v govor samostojni.
Poskusil sem različico bralnika črtne kode, ki temelji na kameri, vendar je osvetlitev in položaj kamere povzročila težave z zanesljivostjo za nekoga, ki ni mogel jasno videti. Te so zahtevale tudi vid za nastavitev in uporabo aplikacije. Zato sem prešel na čitalnik črtne kode USB Laser, še posebej, ker so zdaj na voljo za manj kot 30 USD in jih Raspbian Jessie podpira takoj.
Preizkusil sem tudi novo Amazon Dash Wand, vendar ne govori skeniranega predmeta in za delovanje potrebuje internetno povezavo.
Zamisel je bila, da se skenira element in da Raspberry poizveduje notranjo bazo kod UPC in nato izgovori opis izdelka z besedilom v govor.
Da bi bila enota čim manjša, sem želel uporabiti Raspberry Pi Zero. Prav tako sem želel izklopiti enoto iz akumulatorja.
Za izpolnitev teh zahtev so bili potrebni nekateri kompromisi. Ker Zero nima zunanjega avdio priključka, sem ponovno uporabil zvočno zasnovo svojega projekta "Earthquake Pi", saj je bil poceni (približno 6 USD) in zelo majhen. Druga možnost je, da je mogoče zamenjati "One Transistor Audio for Pi Zero".
Za laserski čitalnik črtne kode sem našel enega z DX.com. Napaja se prek USB -ja Raspberry in stane približno 25 USD. (glej dele spodaj)
1. korak: UPDATE
S prihodom Raspberry Pi Zero W bom prešel nanj. Tukaj je vse enako, le da morate nastaviti povezavo WiFi do Pi. To pomeni, da za nastavitev in uporabo ne potrebujete zvezdišča USB za Zero.
WiFi lahko nastavite z:
thepihut.com/blogs/raspberry-pi-tutorials/…
Ali si vedel?
Če namestite Raspbian Jessie na kartico SD z računalnikom z operacijskim sistemom Windows, lahko na kartici ustvarite dve datoteki za konfiguriranje dostopa WiFi in SSH, preden jo zaženete na Raspberryju?
V ta namen predpostavimo, da je vaša kartica SD trenutno nameščena kot K: na vašem računalniku:
1) Namestite najnovejšo sliko Raspbian Jessie na SD. Za ta projekt bi morala delovati Jessie Lite.
www.raspberrypi.org/downloads/raspbian/
2) Z beležnico ustvarite datoteko, imenovano samo »ssh«, in uporabite Shrani kot »Vse datoteke« v K: / ssh
Datoteka lahko vsebuje karkoli. Pomembno je ime datoteke. NE sme biti "ssh.txt" !!!
3) Z beležnico ustvarite datoteko z imenom »wpa_supplicant.conf« z naslednjim:
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1
omrežje = {
ssid = "mySSID" psk = "moja geslo" key_mgmt = WPA-PSK}
Uporabite Shrani kot »Vse datoteke« v K: / wpa_supplicant.conf Še enkrat, ne dovolite, da ga Notepad spremeni v »wpa_supplicant.conf.txt« !!
Ko prvič zaženete Raspberry, jih bo Jessie poiskala in se povezala z vašim Wifi. Na usmerjevalniku boste morali poiskati naslov IP, saj je samodejno dodeljen.
2. korak: Seznam delov
- Raspberry Pi Zero (ali kateri koli Raspberry Pi, če velikost ni problem)
-
Laserski čitalnik črtne kode USB
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Za Raspi Zero dodajte Adapruit I2S 3W ojačevalnik razreda Dhttps://www.adafruit.com/products/3006
- Majhen zvočnik. (Za Pi 2, 3 uporabite zunanji ojačevalnik in zvočnik.)
- Vmesnik USB Micro na USB OTGhttps://www.adafruit.com/products/2910
- Baterija USB 5V 1Amp, na primer
- Kabel USB na mikro USB za baterijo.
- Središče USB in Ethernet (vsaj za začetna nastavitvena dela, ni potrebno za Zero W ali Raspi 2, 3)
- Programska oprema podjetja GITHUB:
3. korak: Laserski čitalnik črtne kode USB
Laserski čitalniki črtne kode bolj odpuščajo svojo sposobnost skeniranja oznake UPC kot kamere. Dobro delujejo tudi pri slabo osvetljenih ali slabo postavljenih etiketah.
Za priključitev v Zero boste potrebovali mikro adapter USB na USB.
Ročaj in sprožilec optičnega bralnika olajšata uporabo.
Prav tako daje povratne informacije, ko uspešno skenira nalepko.
Prihodnost:
V končni zasnovi bi kabel odrezal, da bi ga skrajšal in spajkal neposredno na zatiče USB na Zero, da bi zmanjšal velikost in verjetnost okvare konektorja. Zero in baterija bi bili pritrjeni neposredno na spodnji del ročaja optičnega bralnika v 3D natisnjenem ohišju.
4. korak: Baza podatkov UPC
To je najbolj slabo pokrit del projekta, saj je dobesedno na milijone kod UPC in zelo malo odprtokodnih baz podatkov na voljo za prenos. Na žalost je večina baz podatkov UPC precej dragih in zahtevajo internetno povezavo.
Uspelo mi je sestaviti nekaj odprtokodnih zbirk podatkov (viri v spodnjem dodatku), vendar celo s skoraj 700 000 elementi v njem manjka veliko število.
V ta namen sem naredil dve stvari; ena je, da se osredotočimo posebej na izdelke z živili, druga pa je, da v Raspberry dodamo spletni strežnik, ki omogoča ročno dodajanje novih kod UPC, vendar to zahteva vsaj lokalno omrežno povezljivost.
Prihodnost:
Zero W bi naredil kot "vročo točko", tako da se lahko povežete z njim kjer koli in dodate nove kode UPC.
5. korak: Pretvorba besedila v govor
Uporabil sem program za pretvorbo besedila v govor, imenovan "Flite", saj je imel najboljši kompromis med kakovostjo govora in hitrostjo pretvorbe na Zero. Drugi so zveneli nekoliko bolje, vendar so bili prepočasni za pretvorbo.
Ogledate si lahko tudi vadnico Adafruit:
Upoštevajte, da bo trajalo nekaj "treninga ušes", da se navadite na pregibanje govora, vendar ni tako slabo.
Če znova optično preberete isti element, se zvok ponovi.
Prihodnost ToDo
Morda dodajte priključek za slušalke, da bodo starejši lažje slišali glas na hrupnih mestih.
6. korak: Napajanje baterije
Sistem lahko poganja 5 -voltna baterija USB, na primer za polnjenje mobilnih telefonov.
Ulov je v tem, da se Pi, ko odklopite baterijo ali se baterija izprazni, zruši z možnostjo, da poškoduje pogon SD.
Za rešitev tega je potreben gumb, ki zažene ukaz za zaustavitev. Verjetno bom uporabil takega:
www.element14.com/community/docs/DOC-78055…
(Ja … še en "Prihodnji ToDo!")
Korak 7: Prvi del - Dodajanje zvoka v Pi Zero
(Preskočite ta del, če ne uporabljate ničle!)
Na Pi Zero boste morali dodati zunanji zvok, ker ni vgrajen. Uporabil sem poceni “Adapruit I2S 3W ojačevalnik, MAX98357A”
Za to je potrebna nastavitev z odličnimi navodili Adafruit na:
Kot je prikazano v delu ožičenja v vadnici, povežite:
• Amp Vin na Raspi Zero Pi 5V • Amp GND na 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
Majhen zvočnik povežite z zvočnimi vodi na plošči.
Nastavitev programske opreme za zvočno programsko opremo Pi Zero Adafruit Tudi prikazano v vadnici za nastavitev programske opreme Adafruit, izvedite spodnji ukaz CURL:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Po ponovnem zagonu preizkusite zvok s preskusom zvočnika:
$ speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Če imate težave, se vrnite skozi vadnico Adafruit, začenši s pregledom. Morda boste morali preveriti vse posodobljene datoteke skozi korake »Podrobna namestitev« v vadnici.
Pomembni potrebni koraki za zvok Zero & Max98357: zvok ALSA privzeto deluje samo v stereo, medtem ko je Flite pretvorba besedila v govor mono. Poleg tega ima zvok "pops" vsakič, ko se začne predvajati.
(Glej:
Morate narediti naslednje:
1) Dodajte vrstico v /boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay = i2s-mmap
2) Zamenjajte /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) Znova zaženite Pi.
Znova poskusite s preskusom zvočnika. Zdaj bi se moralo slišati bolje. Ko končate navodila za nastavitev, vključno z zvočnimi testi, mora biti zvok pripravljen.
Upoštevajte, da boste morda želeli dodati vtičnico za slušalke za zvok, če jo odnesete v trgovino z živili ali v hrupno okolje.
8. korak: Del II - Namestitev programske opreme
To predpostavlja, da že imate nameščeno Raspbian Jessie in lahko dostopate do ukazne vrstice Linuxa. Ne potrebujete grafične različice Raspbiana, vendar je v redu za uporabo.
Optičnega bralnika USB trenutno ne potrebujete, če potrebujete vrata USB za Ethernet ali tipkovnico/miško.
Poskrbite, da je vaš OS posodobljen:
$ sudo apt-get update $ sudo apt-get upgrade
V ukazni vrstici pojdite v domači imenik pi in prenesite skladišče 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 bo trajalo nekaj časa, še posebej, če je to prvič in je treba spletni strežnik in PHP namestiti ali posodobiti. Če je potrebno, lahko to zaženete več kot enkrat. Med drugim namesti datoteke črtne kode in zbirko podatkov UPC na:/var/www/html/upc
Nato uredite /etc/rc.local in dodajte naslednjo vrstico pred »exit 0«
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh izhod 0
Ko je namestitev končana, izklopite Pi in priključite bralnik črtne kode USB ter znova zaženite.
$ sudo zaustavitev zdaj
Ponovno vklopite in slišali boste kratek zagonski govor.
Če je tako, poskusite skenirati črtno kodo iz artikla trgovine. Če je bilo vse v redu, bi morali slišati, kako govori predmet (ali govoriti "Ni najdeno"). V nasprotnem primeru si oglejte naslednji vodnik za odpravljanje težav.
9. korak: Odpravljanje težav
Če ne slišite nobenega zvoka, morate poskusiti naslednje ukaze:
1) Preverite, ali zvok besedila v govor deluje:
$ sudo flite -voice awb -t "testiranje"
Če se prikaže napaka, se prepričajte, da je nameščen flite:
$ sudo apt install flite
Če se prikaže naslednja napaka, preverite, ali ste posodobili datoteko /boot/config.txt in /etc/asound.conf, prikazano v zgornjem razdelku Nastavitev zvoka na Raspi Zero's: audio_open_alsa: ni bilo mogoče nastaviti števila kanalov na 1. Neveljaven argument.
Če ne dobite napake in zvoka, se prepričajte, da vaš zvok Raspberry deluje.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Morda boste morali zvok iztisniti iz avdio priključka: (glejte sliko 1 zgoraj)
$ sudo raspi -config -> 7 Napredne možnosti -> Zvok A4
2) Ko preverite zvok in pretvorbo besedila v govor, preverite čitalnik črtne kode:
cd/var/www/html/upc/binsudo python./test.py
Pri skeniranju črtne kode bi se morala prikazati številčna črtna koda. (Testni program NE vključuje avdio izhoda ali povezav z bazo podatkov.)
3) Če je vse v redu, preverite, ali so v datoteki »nohup.out« sporočila o napakah:
cd/var/www/html/upc/binsudo cat nohup.out
Verjetno težave vključujejo manjkajoče pakete ali slaba dovoljenja (ali napake v kodi!). Prepričajte se, da je vaš operacijski sistem posodobljen, in znova zaženite install.sh.
Upajmo, da že delate!
10. korak: III. Del - spletni strežnik
Ker obstaja na milijone kod UPC in je večina javno dostopnih zbirk podatkov (tj. Brezplačnih) le majhen podskup kod, se je ta projekt osredotočil na kode UPC za živila. Vključuje nekaj sto tisoč predmetov, vendar veliko, veliko ne bo najdeno.
Če morate dodati ali posodobiti bazo podatkov UPC, sta na voljo dva programa; enega iz ukazne vrstice in enega spletnega brskalnika. (zamenjajte števke s številko izdelka UPC)
$ cd/var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 »Moj novi izdelek«
To bo v bazo dodalo zapis. V nasprotnem primeru je priporočljivo uporabiti funkcijo zbirke podatkov spletnega brskalnika.
Za grafični vmesnik spletnega strežnika potrebujete IP naslov svoje maline.
Če želite najti naslov IP, lahko uporabite:
$ ime gostitelja -I 192.168.1.108
V brskalniku računalnika pojdite na: https://192.168.1.108/upc/ Videti bi morali zaslon, podoben tistemu na sliki 2 zgoraj.
Če je tako, lahko dodate/posodobite in izbrišete zapise. Pomaknite se na zadnjo stran z gumbom ('> |') »zadnji zapis«, če si želite ogledati svoje najnovejše zapise, ko so dodani na konec baze podatkov.
VARNOST OPOMBA, da ta spletna storitev ni zavarovana (brez avtentikacije, brez SSL), zato je najbolje, da je ne izpostavljate javnemu internetu. (Ker pa ni nastavljena kot dostopna točka WiFi, jo lahko varno nosite v trgovino.)
Ker pa na njem ni zasebnih podatkov, bi se lahko huje zgodilo, da nekdo zlorabi podatke UPC.
Prav tako lahko omejite dostop do določenih naslovov IP, tako da noben drug ne more vstopiti. Samo zamenjajte naslove IP za tiste, ki jih želite dovoliti. Dostop vsem ostalim bo blokiran:
$ sudo vi /etc/lighttpd/lighttpd.conf
$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd ponovni zagon
SPREMENITE tudi privzeto geslo PI! Vsi vedo, da je privzeta vrednost pi/malina
$ passwd
11. korak: Odpravljanje težav s spletnim strežnikom
V brskalniku pojdite na naslov IP Raspberryja, na primer:
192.168.1.108/
Privzeti zaslon bi morali videti na /var/www/html/index.html (slika 1 zgoraj)
Prepričajte se tudi, da spletni strežnik deluje:
$ ps -ef | grep lighttpd
Če želite preveriti, ali je PHP dober, ustvarite preskusno datoteko php:
$ sudo nano /var/www/html/phpinfo.php
Nato pojdite na
Videti bi morali zaslon, kot je slika 2 zgoraj
Če se prikažejo napake ali prazni zasloni, preverite napake v
$ sudo cat /var/log/lighttpd/error.log
Ponovni zagon install.sh lahko odpravi manjkajoče odvisnosti.
12. korak: Dodatek
VELIKA HVALA gre za to, da ste dali na voljo veliko bazo podatkov UPC.
Odprite Grocery UPC DB
www.grocery.com/open-grocery-database-proje…
Odprite podatkovno bazo podatkov
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Hvala EasyUI za preprost spletni CRUD grafični vmesnik
www.jeasyui.com/index.php
Priporočena:
Nadgrajeni ultrazvočni optični bralnik Arduino SoNAR: 5 korakov
Nadgrajen ultrazvočni optični bralnik Arduino SoNAR: Nadgrajujem projekt ultrazvočnega skeniranja SONAR. Na zaslon za obdelavo želim dodati nekaj gumbov, ki bodo spremenili azimut, ležaj, doseg, hitrost in nagib za drugi servo. Začel sem s projektom Lucky Larry. Verjamem, da je on izvor
Bralnik RFID na osnovi ESP32 z zaslonom na dotik: 7 korakov
Bralnik RFID na osnovi ESP32 z zaslonom na dotik: V tem kratkem navodilu bom pokazal, kako ustvariti preprost čitalnik RFID z izhodom TFT za montažo na steno z uporabo modula ESP32 DEV KIT C, tiskalnika PCB na osnovi RC-522 in kompleta ESP AZ-Touch. Ta bralnik lahko uporabite za dostop do vrat ali alarm za vsiljivca
Superstock (zaloga nadzorovana s čitalnikom črtne kode): 5 korakov
Superstock (zaloga, ki jo nadzoruje čitalnik črtne kode): V tem priročniku vam bom povedal, kako sestaviti Superstock, moj šolski projekt za 1MCT v Howestu. Koncept ustvarja uporabniku prijazno bazo podatkov, do katere lahko dostopate prek spletnega mesta, da boste lahko šteli, kaj imate na zalogi (v mojem primeru oblačila za moje
Optični bralnik črtne kode USB (Raspberry Pi): 4 koraki
Optični bralnik črtne kode USB (Raspberry Pi): Osnovna vadnica o tem, kako nastaviti bralnik črtne kode USB z Raspberry Pi
Poceni makro objektiv iPhone za skeniranje črtne kode: 6 korakov (s slikami)
Poceni makro objektiv Iphone za skeniranje črtne kode: Očitna težava fotoaparata iPhone je njegova nezmožnost izostritve bližje kot ~ 1 čevljev stran. Nekatere poprodajne rešitve pomagajo odpraviti to težavo, na primer iClarifi podjetja Griffin Technology. Ta etui za iPhone 3G vam omogoča, da malo zdrsnete