Kazalo:

Bralnik črtne kode za govorjenje Raspberry Pi: 12 korakov
Bralnik črtne kode za govorjenje Raspberry Pi: 12 korakov

Video: Bralnik črtne kode za govorjenje Raspberry Pi: 12 korakov

Video: Bralnik črtne kode za govorjenje Raspberry Pi: 12 korakov
Video: Primerjava branja črtne kode 2024, November
Anonim
Bralnik črtne kode za govorjenje Raspberry Pi
Bralnik črtne kode za govorjenje Raspberry Pi

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 čitalnik črtnih kod USB
Laserski čitalnik črtnih kod 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

Del I - Dodajanje zvoka v Pi Zero
Del I - Dodajanje zvoka v Pi Zero
Del I - Dodajanje zvoka v Pi Zero
Del I - Dodajanje zvoka v Pi Zero
Del I - Dodajanje zvoka v Pi Zero
Del I - 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

Odpravljanje težav
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

Del III - Spletni strežnik
Del III - 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

Odpravljanje težav s spletnim strežnikom
Odpravljanje težav s spletnim strežnikom
Odpravljanje težav s spletnim strežnikom
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: