Sisällysluettelo:
- Vaihe 1: PÄIVITÄ
- Vaihe 2: Osaluettelo
- Vaihe 3: USB -viivakoodinlukija
- Vaihe 4: UPC -tietokanta
- Vaihe 5: Teksti puheeksi
- Vaihe 6: Akkuvirta
- Vaihe 7: Osa I - Äänen lisääminen Pi Zeroon
- Vaihe 8: Osa II - Ohjelmiston asennus
- Vaihe 9: Vianetsintä
- Vaihe 10: Osa III - Verkkopalvelin
- Vaihe 11: Web -palvelimen vianmääritys
- Vaihe 12: Liite
Video: Raspberry Pi Talking -viivakoodinlukija: 12 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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
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
(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ä
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
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
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:
Tee Talking / Voice Notification Warning System -järjestelmä: 4 vaihetta
Tee Talking / Voice Notification Warning System: Tämä projekti olemme luoneet Talking / Voice Notification and Warning System -järjestelmän. Tässä projektissa voidaan käyttää vähintään kahta anturia
Talking Santa Blowmold: 5 vaihetta
Talking Santa Blowmold: Tässä projektissa selitetään, kuinka tehdä koristelu, joka toistaa äänitiedoston, kun joku kulkee ohi. Tämä voidaan tehdä helposti tietokoneella, joka voi käyttää Motion -ohjelmaa, ja jonkinlaisella kameralla. Tässä tapauksessa käytin 20 " pitkä Santa Clau
Ted the Talking Toaster: 6 vaihetta (kuvilla)
Ted the Talking Toaster: Keskustelut leivänpaahtimen kanssa ovat aina olleet hyvin yksipuolisia. Tähän asti tavata puhuva leivänpaahdin Ted! Alla yleiskuva sisällöstä: Projektivideo Leivänpaahdin Electronics Chat/Voice bot Remo.tv Maailmanvalta
Arduino -teksti puheeksi -muunnin LM386 -: n avulla Talking Arduino Project - Talkie Arduino -kirjasto: 5 vaihetta
Arduino -teksti puheeksi -muunnin LM386 |: n avulla Talking Arduino Project | Talkie Arduino -kirjasto: Hei kaverit, monissa projekteissa vaadimme arduinoa puhumaan jotain, kuten puhuvaa kelloa tai kertomaan joitain tietoja, joten tämän ohjeen mukaan muutamme tekstin puheeksi Arduinon avulla
Barbara: Talking AI -kamera: 4 vaihetta (kuvilla)
Barbara: Talking AI Camera: Tekoäly on viimeisin muotisana, ja tämä projekti on hieman hyödytön. Kun olet löytänyt siistin sovellusliittymän, jossa kuvataan kuvia ja vanha kamera, tavoitteet asetetaan: kamera, joka kuvailee näkemänsä