Satura rādītājs:
- 1. darbība: ATJAUNINĀT
- 2. darbība: detaļu saraksts
- 3. darbība: USB lāzera svītrkoda lasītājs
- 4. darbība: UPC datu bāze
- 5. darbība: teksta pārvēršana runā
- 6. darbība: akumulatora enerģija
- 7. darbība: I daļa - audio pievienošana Pi Zero
- 8. darbība: II daļa - programmatūras instalēšana
- 9. darbība. Problēmu novēršana
- 10. darbība: III daļa - tīmekļa serveris
- 11. darbība. Tīmekļa servera problēmu novēršana
- 12. solis: pielikums
Video: Raspberry Pi runājošais svītrkoda lasītājs: 12 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
1. att. Svītrkodu skeneris no DX.com
Pārskats
Atjauninājums: pieejama īsa video demonstrācija
Mana mamma vairs nevar lasīt pārtikas preču etiķetes, tāpēc es devos meklēt risinājumus. Redzot, ka neredzīgo svītrkodu lasītāji maksā daudzus simtus dolāru, es gribēju redzēt, ko varētu darīt, izmantojot Raspberry Pi un USB svītrkodu lasītāju.
Vēl viens svarīgs atdarinājums bija tas, ka tam vajadzētu darboties BEZ interneta savienojuma (piemēram, veikalā vai drauga mājā). Tātad datu bāzei un teksta pārvēršanai runā bija jābūt patstāvīgai.
Es izmēģināju svītrkoda lasītāja versiju, kas balstīta uz kameru, bet apgaismojums un kameras novietojums radīja uzticamības problēmas kādam, kas nevar skaidri redzēt. Lai iestatītu un izmantotu lietotni, bija nepieciešama arī redzamība. Tāpēc es pārgāju uz USB lāzera svītrkodu lasītāju, jo īpaši tāpēc, ka tagad tie ir pieejami par mazāk nekā 30 ASV dolāriem, un Raspbian Jessie tos atbalsta tieši no kastes.
Es arī izmēģināju jauno Amazon Dash Wand, taču tas nerunā par skenēto vienumu, un tam ir nepieciešams interneta savienojums.
Ideja bija skenēt vienumu un izveidot Raspberry vaicājumu UPC kodu iekšējai datu bāzei un pēc tam izrunāt produkta aprakstu, izmantojot teksta pārvēršanu runā.
Lai padarītu ierīci pēc iespējas mazāku, es vēlējos izmantot Raspberry Pi Zero. Es arī gribēju izslēgt ierīci no akumulatora enerģijas.
Lai izpildītu šīs prasības, bija nepieciešami daži kompromisi. Tā kā Zero nav ārējas audio ligzdas, es atkārtoti izmantoju sava projekta “Earthquake Pi” audio dizainu, jo tas bija lēts (aptuveni 6 USD) un ļoti mazs. Alternatīvi, iespējams, var aizstāt Pi One nulli ar vienu tranzistora audio.
Lāzera svītrkoda skenerim es to atradu no DX.com. Tas ir izslēgts no Raspberry USB un maksā aptuveni 25 USD. (skatīt daļas zemāk)
1. darbība: ATJAUNINĀT
Ierodoties Raspberry Pi Zero W, es pāreju uz to. Šeit viss ir vienāds, izņemot to, ka jums ir jāiestata WiFi savienojums ar Pi. Tas nozīmē, ka iestatīšanai un lietošanai Zero nevajadzēs USB centrmezglu.
Jūs varat iestatīt WiFi, izmantojot:
thepihut.com/blogs/raspberry-pi-tutorials/…
Vai tu zināji?
Ja instalējat Raspbian Jessie SD kartē, izmantojot Windows datoru, kartē varat izveidot divus failus, lai konfigurētu WiFi un SSH piekļuvi, pirms to palaižat Raspberry?
Pieņemsim, ka jūsu SD karte datorā pašlaik ir uzstādīta kā K:
1) SD instalējiet jaunāko Raspbian Jessie attēlu. Šim projektam Jessie Lite vajadzētu strādāt.
www.raspberrypi.org/downloads/raspbian/
2) Izmantojot piezīmju grāmatiņu, izveidojiet failu ar nosaukumu “ssh” un izmantojiet Saglabāt kā “Visi faili” uz K: / ssh
Fails var saturēt jebko. Svarīgs ir faila nosaukums. Nedrīkst būt “ssh.txt” !!!
3) Izmantojot piezīmju grāmatiņu, izveidojiet failu ar nosaukumu “wpa_supplicant.conf” ar šādu informāciju:
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1
tīkls = {
ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}
Izmantojiet Saglabāt kā “visus failus” uz K: / wpa_supplicant.conf Atkal neļaujiet Notepad to mainīt uz “wpa_supplicant.conf.txt” !!
Pirmo reizi palaižot Raspberry, Džesija tās meklēs un izveidos savienojumu ar jūsu Wifi. Jums būs jāmeklē maršrutētājā IP adrese, jo tā ir automātiski piešķirta.
2. darbība: detaļu saraksts
- Raspberry Pi Zero (vai jebkurš Raspberry Pi, ja izmērs nav problēma)
-
USB lāzera svītrkoda skeneris
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Raspi Zero pievienojiet Adafruit I2S 3W D klases pastiprinātājuhttps://www.adafruit.com/products/3006
- Mazs skaļrunis. (Pi 2, 3 gadījumā izmantojiet ārēju pastiprinātāju un skaļruni.)
- USB Micro uz USB OTG adapterishttps://www.adafruit.com/products/2910
- 5V 1Amp USB akumulators, piemēram,
- USB - mikro USB kabelis akumulatora blokam.
- USB un Ethernet centrmezgls (vismaz sākotnējai iestatīšanai, nav nepieciešams Zero W vai Raspi 2, 3)
- Programmatūra no GITHUB:
3. darbība: USB lāzera svītrkoda lasītājs
Lāzera svītrkoda lasītāji ir piedodošāki attiecībā uz spēju skenēt UPC etiķeti nekā kameras. Tie labi darbojas arī slikti apgaismotās vai slikti novietotās etiķetēs.
Jums būs nepieciešams USB -USB mikro adapteris, lai to pievienotu Zero.
Skenera rokturis un sprūda atvieglo lietošanu.
Tas arī sniedz atsauksmes, veiksmīgi skenējot etiķeti.
Nākotnes uzdevumi:
Galīgajā dizainā es nogrieztu kabeli, lai to saīsinātu, un lodētu tieši pie USB tapām uz nulles, lai samazinātu savienotāja atteices izmēru un iespējamību. Nulle un akumulators būtu piestiprināti tieši skenera roktura apakšai 3D drukātā korpusā.
4. darbība: UPC datu bāze
Šī ir vissliktāk aptvertā projekta daļa, jo lejupielādei ir burtiski miljoniem UPC kodu un ļoti maz atvērtā pirmkoda datu bāzu. Diemžēl lielākā daļa UPC datu bāzu ir diezgan dārgas un tām ir nepieciešams interneta savienojums.
Es varēju apvienot pāris atvērtā pirmkoda datu bāzes (avoti zemāk esošajā pielikumā), taču pat tad, ja tajā ir gandrīz 700 000 vienību, trūkst milzīga skaita.
Šim nolūkam esmu darījis divas lietas; viens ir īpaši koncentrēties uz pārtikas precēm, bet otrs - pievienot Raspberry tīmekļa serveri, lai ļautu manuāli pievienot jaunus UPC kodus, lai gan tas prasa vismaz vietējā tīkla savienojumu.
Nākotnes uzdevumi:
Es padarītu Zero W par "karsto punktu", lai jūs varētu izveidot savienojumu ar to jebkurā vietā, lai pievienotu jaunus UPC kodus.
5. darbība: teksta pārvēršana runā
Es izmantoju teksta runas programmu ar nosaukumu “Flite”, jo tai bija labākais kompromiss starp balss kvalitāti un konversijas ātrumu nulles režīmā. Citi izklausījās nedaudz labāk, bet bija pārāk lēni, lai tos pārvērstu.
Varat arī apskatīt Adafruit apmācību:
Ņemiet vērā, ka, lai pierastu pie runas lēciena, būs nepieciešams mazliet “ausu treniņš”, taču tas nav pārāk slikti.
Skenējot to pašu vienumu vēlreiz, audio tiks atkārtots.
Nākotnes uzdevumi
Varbūt pievienojiet austiņu ligzdu, lai senioriem būtu vieglāk dzirdēt balsi trokšņainās vietās.
6. darbība: akumulatora enerģija
Sistēmu var darbināt no 5 V USB akumulatora, piemēram, mobilo tālruņu uzlādēšanai.
Galvenais ir tas, ka, atvienojot akumulatoru vai akumulators nomirst, Pi avarēs ar iespēju, ka tas sabojās SD disku.
Lai to atrisinātu, ir nepieciešama poga, kas izpilda izslēgšanas komandu. Es droši vien izmantošu šādu:
www.element14.com/community/docs/DOC-78055…
(Jā … vēl viens "Nākotnes uzdevums!")
7. darbība: I daļa - audio pievienošana Pi Zero
(Izlaidiet šo daļu, ja neizmantojat nulli!)
Pi Zero jums būs jāpievieno ārējs audio, jo tas nav iebūvēts. Es izmantoju zemo cenu “Adafruit I2S 3W pastiprinātāja sadalījums MAX98357A”
Tas prasa iestatīšanu, izmantojot Adafruit lielisko apmācību vietnē:
Kā parādīts apmācības vadu daļā, pievienojiet:
• Amp Vin uz 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
Pievienojiet nelielu skaļruni pie tāfeles audio vadiem.
Pi Zero Adafruit audio programmatūras iestatīšana Arī parādīts Adafruit programmatūras iestatīšanas apmācībā, izpildiet tālāk norādīto komandu CURL:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Pēc pārstartēšanas pārbaudiet skaņu, izmantojot skaļruņu pārbaudi:
$ speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Ja rodas problēmas, atgriezieties Adafruit apmācībā, sākot no kopsavilkuma. Lai pārbaudītu visus atjauninātos failus, jums, iespējams, būs jāiziet apmācības sadaļā “Detalizēta instalēšana”.
Svarīgi nepieciešamie soļi Zero & Max98357 audio: pēc noklusējuma ALSA audio darbojas tikai stereo režīmā, kamēr Flite teksta pārvēršana runā ir mono. Turklāt skaņai ir “uznirstoši” ikreiz, kad tā tiek atskaņota.
(Skatīt:
Jums jāveic šādas darbības:
1) Pievienojiet rindai failu /boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay = i2s-mmap
2) Aizstājiet /etc/asound.conf
$ sudo nano /etc/asound.conf
pcm.hifiberry {type hw card 0} pcm.! noklusējums {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" kanāli 2}} ctl.dmixer {type hw card 0}
3) Pārstartējiet savu Pi.
Mēģiniet vēlreiz runātāja pārbaudi. Tagad tam vajadzētu izklausīties labāk. Kad esat pabeidzis iestatīšanas apmācību, ieskaitot audio testus, skaņai jābūt gatavai.
Ņemiet vērā, ka, iespējams, vēlēsities pievienot austiņu ligzdu skaņai, ja to nogādāsit pārtikas preču veikalā vai trokšņainā vidē.
8. darbība: II daļa - programmatūras instalēšana
Tas pieņem, ka jums jau ir instalēta Raspbian Jessie un varat piekļūt Linux komandrindai. Jums nav nepieciešama Raspbian GUI versija, taču to var izmantot.
Jums šobrīd nav nepieciešams pievienot USB skeneri, ja jums ir nepieciešams USB ports Ethernet vai tastatūrai/pelei.
Pārliecinieties, vai jūsu OS ir atjaunināta:
$ sudo apt-get update $ sudo apt-get jauninājums
No komandrindas dodieties uz pi mājas direktoriju un lejupielādējiet GITHUB repozitoriju:
$ cd/home/pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. sh
Tas prasīs zināmu laiku, it īpaši, ja šī ir pirmā reize un tīmekļa serveris un PHP ir jāinstalē vai jāatjaunina. Ja nepieciešams, varat to palaist vairāk nekā vienu reizi. Cita starpā tiek instalēti svītrkoda faili un UPC datu bāze, lai:/var/www/html/upc
Pēc tam rediģējiet /etc/rc.local un pievienojiet šo rindiņu pirms “izejas 0”
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh izeja 0
Kad instalēšana ir pabeigta, izslēdziet savu Pi un pievienojiet USB svītrkodu lasītāju un restartējiet.
$ sudo tagad tiek izslēgts
Ieslēdziet to, un jums vajadzētu dzirdēt īsu starta runu.
Ja tā, mēģiniet skenēt svītru kodu no pārtikas preces. Ja viss noritēja labi, jums vajadzētu dzirdēt, ka tiek runāts par preci (vai jāizrunā “Not Found”). Pretējā gadījumā pārbaudiet problēmu novēršanas rokasgrāmatu.
9. darbība. Problēmu novēršana
Ja nedzirdat skaņas, jums jāizmēģina šādas komandas:
1) Pārbaudiet, vai audio-runas audio darbojas:
$ sudo flite -voice awb -t "pārbaude"
Ja rodas kļūda, pārliecinieties, vai flite ir instalēts:
$ sudo apt instalēt flite
Ja tiek parādīta šāda kļūda, pārliecinieties, vai esat atjauninājis /boot/config.txt un /etc/asound.conf, kas parādīts iepriekš Raspi Zero sadaļā Audio iestatīšana: audio_open_alsa: neizdevās iestatīt kanālu skaitu uz 1. Nederīgs arguments.
Ja nesaņemat nevienu kļūdu un skaņu, pārliecinieties, vai jūsu aveņu audio darbojas.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Jums var būt nepieciešams piespiest audio izvadīt audio ligzdu: (skat. 1. attēlu)
$ sudo raspi -config -> 7 Papildu opcijas -> A4 audio
2) Kad audio un teksta pārvēršana runā ir pārbaudīts, pārbaudiet svītrkodu lasītāju:
cd/var/www/html/upc/binsudo python./test.py
Skenējot svītrkodu, jums vajadzētu redzēt ciparu svītrkoda numuru. (Pārbaudes programmā NAV iekļauti audio izvadi vai datu bāzes savienojumi.)
3) Ja tas viss ir kārtībā, pārbaudiet, vai failā “nohup.out” nav kļūdu ziņojumu:
cd/var/www/html/upc/binsudo cat nohup.out
Iespējams, ka trūkst pakotņu vai sliktas atļaujas (vai kļūdas kodā!). Pārliecinieties, vai jūsu OS ir atjaunināta, un vēlreiz palaidiet instal.sh.
Cerams, ka jūs jau strādājat!
10. darbība: III daļa - tīmekļa serveris
Tā kā ir MILJONI UPC kodu un lielākā daļa publiski pieejamo (ti, bezmaksas) datu bāzu ir tikai neliela kodu apakškopa, šis projekts koncentrējās uz pārtikas preču UPC kodiem. Tajā ir iekļauti vairāki simti tūkstošu priekšmetu, bet daudzi, daudzi netiks atrasti.
Ja jums jāpievieno vai jāatjaunina UPC datu bāze, ir pieejamas divas programmas; komandrindas un tīmekļa pārlūkprogrammas. (aizstājiet ciparus ar savu UPC preces numuru)
$ cd/var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 “Mans jaunais vienums”
Tādējādi datu bāzei tiks pievienots ieraksts. Pretējā gadījumā ieteicams izmantot tīmekļa pārlūkprogrammas DB funkciju.
Tīmekļa servera GUI ir nepieciešama jūsu aveņu IP adrese.
Lai atrastu IP adresi, varat izmantot:
$ resursdatora nosaukums -I 192.168.1.108
Datora pārlūkprogrammā dodieties uz: https://192.168.1.108/upc/. Jums vajadzētu redzēt ekrānu, kas līdzīgs iepriekš 2. attēlā redzamajam.
Ja tā, varat pievienot/atjaunināt un dzēst ierakstus. Dodieties uz pēdējo lapu, izmantojot pogu (“> |”) “pēdējais ieraksts”, lai redzētu savus jaunākos ierakstus, kādi tie ir pievienoti datu bāzes beigās.
DROŠĪBA PIEZĪME, ka šis tīmekļa pakalpojums nav aizsargāts (nav autentifikācijas, nav SSL), tāpēc labāk to neizpaust publiskam internetam. (Bet tā kā tas nav iestatīts kā WiFi piekļuves punkts, to var droši nēsāt uz veikalu.)
Tomēr, tā kā par to nav privātu datu, sliktākais, kas varētu notikt, ir kāds, kurš manipulē ar UPC datiem.
Varat arī ierobežot piekļuvi noteiktām IP adresēm, lai citi nevarētu tajā iekļūt. Vienkārši aizstājiet šeit norādīto (s) IP adresi (-as). Visiem pārējiem tiks bloķēta piekļuve:
$ 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
Nomainiet arī noklusējuma PI paroli! Ikviens zina, ka noklusējuma vērtība ir pi/aveņu
$ passwd
11. darbība. Tīmekļa servera problēmu novēršana
Izmantojot pārlūkprogrammu, dodieties uz Raspberry IP adresi, piemēram:
192.168.1.108/
Jums vajadzētu redzēt noklusējuma ekrānu no /var/www/html/index.html (1. attēls iepriekš)
Pārliecinieties arī, vai tīmekļa serveris darbojas:
$ ps -ef | grep lighttpd
Lai pārbaudītu, vai PHP ir labs, izveidojiet php testa failu:
$ sudo nano /var/www/html/phpinfo.php
Pēc tam dodieties uz vietni
Jums vajadzētu redzēt ekrānu, piemēram, 2. attēlu iepriekš
Ja tiek parādītas kļūdas vai ekrāni ir tukši, pārbaudiet, vai nav kļūdu
$ sudo cat /var/log/lighttpd/error.log
Atkal, palaižot instal.sh, var novērst trūkstošās atkarības.
12. solis: pielikums
LIELS PALDIES, lai padarītu pieejamu lielu UPC datu bāzi.
Atveriet pārtikas preču UPC DB
www.grocery.com/open-grocery-database-proje…
Atveriet datu DB
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Paldies EasyUI par vienkāršo tīmekļa CRUD GUI
www.jeasyui.com/index.php
Ieteicams:
Runājošais viedais stikls neredzīgajiem: 7 soļi
Runājošais viedais stikls neredzīgajiem: tirgū ir pieejami vairāki viedie piederumi, piemēram, viedās brilles, viedie pulksteņi utt. Bet tie visi ir radīti mums. Ievērojami trūkst tehnoloģiju, lai palīdzētu fiziski apstrīdētajiem. Es gribēju izveidot kaut ko tādu, kas ir
Runājošais Lego karšu tirgotājs: 20 soļi (ar attēliem)
Runājošais Lego karšu tirgotājs: Lielākā daļa cilvēku spēlē kāršu spēles izklaides nolūkos, taču tās sniedz arī vairākas priekšrocības mūsu emocionālajai un garīgajai veselībai. Tā ir viena no populārākajām aktivitātēm iekštelpās. Lielākajai daļai kāršu spēļu, piemēram, Rummy un Poker, ir nepieciešams tirgotājs. Tātad šeit mēs esam
Teds runājošais tosteris: 6 soļi (ar attēliem)
Teds runājošais tosteris: Sarunas ar tosteri vienmēr ir bijušas ļoti vienpusīgas. Līdz šim iepazīstieties ar runājošo tostu Tedu! Zemāk satura pārskats: Projekta video Tosteris Elektronikas tērzēšana/Balss robots Remo.tv Pasaules kundzība
Arduino teksta runas pārveidotājs, izmantojot LM386 - Runājošais Arduino projekts - Talkie Arduino bibliotēka: 5 soļi
Arduino teksta runas pārveidotājs, izmantojot LM386 | Runājošais Arduino projekts | Talkie Arduino bibliotēka: Sveiki, puiši, daudzos projektos mēs prasām, lai arduino runātu kaut ko līdzīgu runājošam pulkstenim vai pastāstītu dažus datus, tāpēc šajā instrukcijā mēs pārvērsīsim tekstu runā, izmantojot Arduino
Lēti Iphone makro objektīvi svītrkoda skenēšanai: 6 soļi (ar attēliem)
Lēts Iphone makro objektīvs svītrkoda skenēšanai: spilgta iPhone kameras problēma ir tā nespēja fokusēties tuvāk par ~ 1 pēdu. Daži pēcpārdošanas risinājumi, piemēram, Griffin Technology, palīdz atrisināt šo problēmu. Šis iPhone 3G korpuss ļauj nedaudz pabīdīt ma