Sisällysluettelo:

Raspberry Pi Talking -viivakoodinlukija: 12 vaihetta
Raspberry Pi Talking -viivakoodinlukija: 12 vaihetta

Video: Raspberry Pi Talking -viivakoodinlukija: 12 vaihetta

Video: Raspberry Pi Talking -viivakoodinlukija: 12 vaihetta
Video: Programming Basics: Statements & Functions: Crash Course Computer Science #12 2024, Marraskuu
Anonim
Raspberry Pi Talking -viivakoodinlukija
Raspberry Pi Talking -viivakoodinlukija

Kuva 1 Viivakoodinlukija DX.com -sivustolta

Yleiskatsaus

Päivitys: Lyhyt videodemo on saatavilla

Äitini ei pysty enää lukemaan tarroja elintarvikkeista, joten lähdin etsimään ratkaisuja. Nähdessäni, että sokeiden viivakoodinlukijat maksavat satoja dollareita, halusin nähdä, mitä voitaisiin tehdä Raspberry Pi: n ja USB -viivakoodilukijan avulla.

Toinen tärkeä jäljitelmä oli, että tämän pitäisi toimia ILMAN Internet -yhteyttä (kuten kaupassa tai ystävän luona). Joten tietokannan ja tekstistä puheeksi oli oltava itsenäinen.

Kokeilin viivakoodilukijan kamerapohjaista versiota, mutta valaistus ja kameran sijainti aiheuttivat luotettavuusongelmia henkilölle, joka ei näe selvästi. Nämä vaativat myös näköä sovelluksen asentamiseen ja käyttämiseen. Joten vaihdoin USB -laser -viivakoodinlukijaan, varsinkin kun ne ovat nyt saatavilla alle 30 dollarilla ja Raspbian Jessie tukee niitä heti laatikosta.

Kokeilin myös uutta Amazon Dash Wandia, mutta se ei puhu skannattua kohdetta ja se vaatii Internet -yhteyden toimiakseen.

Ajatuksena oli skannata kohde ja saada Vadelma-kysely sisäiseen UPC-koodien tietokantaan ja puhua sitten tuotekuvaus tekstistä puheeksi -toiminnon avulla.

Jotta laite olisi mahdollisimman pieni, halusin käyttää Raspberry Pi Zero -laitetta. Halusin myös sammuttaa laitteen akusta.

Näiden vaatimusten täyttämiseksi tarvittiin joitakin kompromisseja. Koska Zerolla ei ole ulkoista ääniliitäntää, käytin uudelleen Earthquake Pi -projektini äänisuunnittelua, koska se oli edullinen (noin 6 dollaria) ja hyvin pieni. Vaihtoehtoisesti "One Transistor Audio" voidaan korvata Pi Zero -laitteella.

Laser -viivakoodiskannerille löysin sellaisen DX.com -sivustolta. Se on sammutettu Raspberry USB -laitteesta ja maksaa noin 25 dollaria. (katso osat alta)

Vaihe 1: PÄIVITÄ

Raspberry Pi Zero W: n saapuessa vaihdan siihen. Kaikki täällä on sama, paitsi että sinun on määritettävä WiFi -yhteys Pi: hen. Tämä tarkoittaa, että et tarvitse USB -keskitintä Zerolle asennusta ja käyttöä varten.

Voit ottaa WiFi -yhteyden käyttöön seuraavasti:

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

Tiesitkö?

Jos asennat Raspbian Jessien SD -kortille Windows -tietokoneella, voit luoda kortille kaksi tiedostoa, jotta voit määrittää WiFi- ja SSH -yhteyden ennen kuin käynnistät sen Raspberry -laitteella?

Oletetaan, että SD -korttisi on tällä hetkellä asennettu tietokoneeseen K:

1) Asenna uusin Raspbian Jessie -kuva SD -levylle. Tässä projektissa Jessie Liten pitäisi toimia.

www.raspberrypi.org/downloads/raspbian/

2) Luo muistilehtiöllä tiedosto nimeltä "ssh" ja käytä Tallenna nimellä "Kaikki tiedostot" kohtaan K: / ssh

Tiedosto voi sisältää mitä tahansa. Tiedostonimi on tärkeä. EI saa olla "ssh.txt" !!!

3) Luo muistilehtiöllä tiedosto nimeltä "wpa_supplicant.conf", jossa on seuraavat tiedot:

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

verkko = {

ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

Käytä Tallenna nimellä "Kaikki tiedostot" tiedostoon K: / wpa_supplicant.conf Älä myöskään anna Muistion muuttaa sitä muotoon "wpa_supplicant.conf.txt" !!

Kun käynnistät Vadelman ensimmäisen kerran, Jessie etsii näitä ja muodostaa yhteyden Wifi -verkkoon. Sinun on kuitenkin etsittävä reitittimestä IP -osoite, koska se on automaattisesti määritetty.

Vaihe 2: Osaluettelo

  • Raspberry Pi Zero (tai mikä tahansa Raspberry Pi, jos koko ei ole ongelma)
  • USB -viivakoodiskanneri

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

  • Lisää Raspi Zero -laitteeseen Adafruit I2S 3W Class D -vahvistinhttps://www.adafruit.com/products/3006
  • Pieni kaiutin. (Pi 2, 3: käytä ulkoista vahvistinta ja kaiutinta.)
  • USB Micro -USB OTG -sovitinhttps://www.adafruit.com/products/2910
  • 5V 1Amp USB -akku, kuten
  • USB -mikro -USB -kaapeli akulle.
  • USB- ja Ethernet -keskitin (ainakin alkuasennustöissä, ei tarvita Zero W: lle tai Raspi 2, 3: lle)
  • Ohjelmisto GITHUBista:

Vaihe 3: USB -viivakoodinlukija

USB -viivakoodinlukija
USB -viivakoodinlukija

Laser -viivakoodinlukijat kykenevät skannaamaan UPC -tarran paremmin kuin kamerat. Ne toimivat hyvin myös huonosti valaistuissa tai huonosti sijoitetuissa tarroissa.

Tarvitset USB -USB -mikrosovittimen liittääksesi sen Zeroon.

Skannerin kahva ja liipaisin helpottavat käyttöä.

Se antaa myös palautetta, kun se skannaa tarran onnistuneesti.

Tuleva tehtävä:

Lopullisessa suunnittelussa leikkaan kaapelin alas lyhentää sitä ja juottaa suoraan Zero -USB -nastoihin, jotta pienennetään liittimen vian kokoa ja todennäköisyyttä. Nolla ja akku kiinnitetään suoraan skannerin kahvan alaosaan 3D -tulostetussa kotelossa.

Vaihe 4: UPC -tietokanta

Tämä on hankkeen heikoimmin katettu osa, koska ladattavissa on kirjaimellisesti miljoonia UPC-koodeja ja hyvin vähän avoimen lähdekoodin tietokantoja. Valitettavasti useimmat UPC -tietokannat ovat melko kalliita ja vaativat Internet -yhteyden.

Pystyin koottamaan pari avoimen lähdekoodin tietokantaa (lähteet alla olevassa liitteessä), mutta vaikka niistä löytyisi lähes 700 000 kohdetta, suuri osa niistä puuttuu.

Tätä varten olen tehnyt kaksi asiaa; Yksi on keskittyä erityisesti päivittäistavarakauppoihin ja toinen on lisätä Web -palvelin Raspberryen uusien UPC -koodien lisäämiseksi manuaalisesti, mutta tämä vaatii ainakin paikallisen verkkoyhteyden.

Tuleva tehtävä:

Tekisin Zero W: stä "hotspotin", jotta voit muodostaa yhteyden siihen missä tahansa lisätäksesi uusia UPC -koodeja.

Vaihe 5: Teksti puheeksi

Käytin tekstistä puheeksi -ohjelmaa nimeltä "Flite", koska sillä oli paras kompromissi äänenlaadun ja muuntamisnopeuden välillä Zerossa. Toiset kuulostivat hieman paremmilta, mutta olivat liian hitaita kääntymään.

Voit myös tutustua Adafruitin opetusohjelmaan:

Huomaa, että puhetaivutukseen totuttelu vaatii hieman "korvaharjoittelua", mutta se ei ole paha.

Kun skannaat saman kohteen uudelleen, ääni toistetaan.

Tuleva tehtävä

Ehkä lisää kuulokeliitäntä, jotta eläkeläiset voivat helpommin kuulla äänen meluisissa paikoissa.

Vaihe 6: Akkuvirta

Järjestelmää voidaan käyttää 5 V: n USB -akusta, jota käytetään esimerkiksi matkapuhelimien lataamiseen.

Saalis on, että kun irrotat akun pistorasiasta tai akku kuolee, Pi kaatuu ja voi vioittaa SD -aseman.

Tämän ratkaisemiseksi tarvitaan painiketta, joka suorittaa sammutuskomennon. Käytän luultavasti tällaista:

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

(Kyllä… toinen "Tuleva tehtävä"!)

Vaihe 7: Osa I - Äänen lisääminen Pi Zeroon

Osa I - Äänen lisääminen Pi Zeroon
Osa I - Äänen lisääminen Pi Zeroon
Osa I - Äänen lisääminen Pi Zeroon
Osa I - Äänen lisääminen Pi Zeroon
Osa I - Äänen lisääminen Pi Zeroon
Osa I - Äänen lisääminen Pi Zeroon

(Ohita tämä osa, jos et käytä nollaa!)

Pi Zero -laitteessa sinun on lisättävä ulkoista ääntä, koska se ei ole sisäänrakennettu. Käytin edullista "Adafruit I2S 3W -vahvistimen katkaisua MAX98357A"

Tämä vaatii asennuksen käyttämällä Adafruitin erinomaista opetusohjelmaa osoitteessa

Yhdistä opetusohjelman kytkentäosassa esitetyllä tavalla:

• Amp Vin to Raspi Zero Pi 5V • Amp GND to 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

Liitä pieni kaiutin levyn äänijohtoihin.

Pi Zero Adafruit Audio -ohjelmiston asennus Suorita alla oleva CURL -komento myös Adafruit -ohjelmiston asennusoppaassa.

$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | lyödä

Testaa ääni uudelleenkäynnistyksen jälkeen kaiutintestillä:

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

Jos sinulla on ongelmia, palaa Adafruit -opetusohjelman läpi alkaen yleiskatsauksesta. Sinun on ehkä käytävä läpi opetusohjelman "Yksityiskohtainen asennus" -vaiheet kaikkien päivitettyjen tiedostojen tarkistamiseksi.

Tärkeitä pakollisia vaiheita Zero & Max98357 -äänelle: ALSA-ääni toimii oletusarvoisesti vain stereona, kun Flite-teksti puheeksi on mono. Lisäksi äänessä on "ponnahduksia" joka kerta, kun se alkaa toistaa.

(Katso:

Sinun on tehtävä seuraavat toimet:

1) Lisää rivi tiedostoon /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Korvaa /etc/asound.conf

$ sudo nano /etc/asound.conf

pcm.hifiberry {type hw card 0} pcm.! oletus {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 orja {pcm "hifiberry" kanavat 2}} ctl.dmixer {type hw card 0}

3) Käynnistä Pi uudelleen.

Kokeile kaiutintestiä uudelleen. Sen pitäisi kuulostaa paremmalta nyt, kun olet suorittanut asennusoppaan, mukaan lukien äänitestit, äänen pitäisi olla valmis.

Huomaa, että saatat haluta lisätä kuulokeliitännän ääntä varten, jos otat sen ruokakauppaan tai meluisaan ympäristöön.

Vaihe 8: Osa II - Ohjelmiston asennus

Tämä olettaa, että sinulla on jo asennettu Raspbian Jessie ja voit käyttää Linux-komentoriviä. Et tarvitse Raspbianin graafista käyttöliittymää, mutta se on ok käyttää.

Et tarvitse USB -skanneria kytkettynä tällä hetkellä, jos tarvitset USB -portin Ethernetiä tai näppäimistöä/hiirtä varten.

Varmista, että käyttöjärjestelmäsi on ajan tasalla:

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

Siirry komentoriviltä pi-kotihakemistoon ja lataa GITHUB-arkisto:

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

Tämä kestää jonkin aikaa, varsinkin jos tämä on ensimmäinen kerta ja verkkopalvelin ja PHP on asennettava tai päivitettävä. Tarvittaessa voit suorittaa tämän useammin kuin kerran. Muun muassa tämä asentaa viivakooditiedostot ja UPC -tietokannan:/var/www/html/upc

Muokkaa seuraavaksi /etc/rc.local ja liitä seuraava rivi ennen "exit 0"

$ sudo nano /etc/rc.local

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

Kun asennus on valmis, sammuta Pi ja kytke USB -viivakoodilukija ja käynnistä se uudelleen.

$ sudo sammuu nyt

Käynnistä se uudelleen ja kuulet lyhyen käynnistyspuheen.

Jos näin on, yritä skannata viivakoodi ruokakaupasta. Jos kaikki meni hyvin, sinun pitäisi kuulla sen puhuvan kohteen (tai puhua "Ei löydy"). Muussa tapauksessa katso seuraavaksi vianetsintäopas.

Vaihe 9: Vianetsintä

Ongelmien karttoittaminen
Ongelmien karttoittaminen

Jos et kuule ääniä, sinun on kokeiltava seuraavia komentoja:

1) Varmista, että tekstistä puheeksi -ääni toimii:

$ sudo flite -voice awb -t "testaus"

Jos saat virheilmoituksen, varmista, että flite on asennettu:

$ sudo apt install flite

Jos saat seuraavan virheen, varmista, että olet päivittänyt /boot/config.txt ja /etc/asound.conf, jotka näkyvät Raspi Zeron Ääniasetukset -osiossa: audio_open_alsa: epäonnistui asettamaan kanavien lukumääräksi 1. Virheellinen argumentti.

Jos et saa virhettä tai ääntä, varmista, että Raspberry -ääni toimii.

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

1) Sinun on ehkä pakotettava ääni ulos audioliittimestä: (katso kuva 1 yllä)

$ sudo raspi -config -> 7 Lisäasetukset -> A4 -ääni

2) Kun olet vahvistanut äänen ja tekstistä puheeksi -toiminnon, tarkista viivakoodinlukija:

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

Sinun pitäisi nähdä numeerinen viivakoodinumero, kun skannaat viivakoodin. (Testiohjelma EI sisällä äänilähtö- tai tietokantayhteyksiä.)

3) Jos kaikki tämä on hyvää, tarkista virheilmoitukset tiedostosta "nohup.out":

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

Todennäköisiä ongelmia ovat puuttuvat paketit tai huonot käyttöoikeudet (tai koodin virheet!). Varmista, että käyttöjärjestelmäsi on ajan tasalla, ja suorita install.sh uudelleen.

Toivottavasti olet jo töissä!

Vaihe 10: Osa III - Verkkopalvelin

Osa III - Verkkopalvelin
Osa III - Verkkopalvelin

Koska UPC -koodeja on miljoonia ja useimmat julkisesti (eli ilmaiset) saatavilla olevat tietokannat ovat vain pieni koodien osajoukko, tämä projekti keskittyi päivittäistavaroiden UPC -koodeihin. Se sisältää useita satoja tuhansia esineitä, mutta monia, monia ei löydy.

Jos haluat lisätä tai päivittää UPC -tietokannan, käytettävissä on kaksi ohjelmaa; komentorivin ja verkkoselaimen. (korvaa numerot UPC -tuotenumerollasi)

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

$ sudo./addDB.sh 01234567890 “Uusi kohteeni”

Tämä lisää tietueen tietokantaan. Muussa tapauksessa on suositeltavaa käyttää verkkoselaimen DB -toimintoa.

Web -palvelimen käyttöliittymää varten tarvitset vadelmasi IP -osoitteen.

Voit etsiä IP -osoitteen seuraavilla tavoilla:

$ isäntänimi -I 192.168.1.108

Siirry tietokoneen selaimella osoitteeseen: https://192.168.1.108/upc/Näet samanlaisen näytön kuin kuvassa 2.

Jos näin on, voit lisätä/päivittää ja poistaa tietueita. Siirry viimeiselle sivulle käyttämällä ('> |') "viimeinen tietue" -painiketta nähdäksesi uusimmat tietueet, kun ne on liitetty tietokannan loppuun.

TURVALLISUUSHUOMAUTUS, että tämä verkkopalvelu ei ole suojattu (ei todennusta, ei SSL), joten on parasta olla paljastamatta sitä julkiselle Internetille. (Mutta koska sitä ei ole määritetty WiFi -tukiasemaksi, se on turvallista kuljettaa kauppaan.)

Vaikka siitä ei ole yksityisiä tietoja, pahinta, mitä voi tapahtua, on se, että joku manipuloi UPC -tietoja.

Voit myös rajoittaa pääsyn tiettyihin IP -osoitteisiin, jotta muut eivät pääse sisään. Korvaa tässä vain sallitut IP -osoitteet. Kaikki muut estetään käyttämästä:

$ sudo vi /etc/lighttpd/lighttpd.conf

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

MUUTA myös PI -oletussalasana! Kaikki tietävät, että oletus on pi/vadelma

$ passwd

Vaihe 11: Web -palvelimen vianmääritys

Web -palvelimen vianmääritys
Web -palvelimen vianmääritys
Web -palvelimen vianmääritys
Web -palvelimen vianmääritys

Siirry selaimesi avulla Raspberryn IP -osoitteeseen seuraavasti:

192.168.1.108/

Sinun pitäisi nähdä oletusnäyttö /var/www/html/index.html (Kuva 1 yllä)

Varmista myös, että verkkopalvelin on käynnissä:

$ ps -ef | grep lighttpd

Varmistaaksesi, että PHP on hyvä, luo php -testitiedosto:

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

Siirry sitten osoitteeseen

Sinun pitäisi nähdä yllä olevan kuvan 2 mukainen näyttö

Jos saat virheitä tai tyhjiä ruutuja, tarkista virheet

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

Jälleen asennus.sh voi korjata puuttuvat riippuvuudet.

Vaihe 12: Liite

SUURET KIITOKSET seuraavat seuraavista suuren UPC -tietokannan saatavuudesta.

Avaa päivittäistavarakaupan UPC DB

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

Avaa Data DB

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

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

Kiitos EasyUI: lle yksinkertaisesta web CRUD GUI: sta

www.jeasyui.com/index.php

Suositeltava: