Satura rādītājs:

Raspberry Pi runājošais svītrkoda lasītājs: 12 soļi
Raspberry Pi runājošais svītrkoda lasītājs: 12 soļi

Video: Raspberry Pi runājošais svītrkoda lasītājs: 12 soļi

Video: Raspberry Pi runājošais svītrkoda lasītājs: 12 soļi
Video: Raspberry Pi + RFID Rc522 + Barcode Scanner 2024, Novembris
Anonim
Raspberry Pi runājošais svītrkoda lasītājs
Raspberry Pi runājošais svītrkoda lasītājs

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

USB lāzera svītrkoda lasītājs
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

I daļa - Audio pievienošana Pi Zero
I daļa - Audio pievienošana Pi Zero
I daļa - Audio pievienošana Pi Zero
I daļa - Audio pievienošana Pi Zero
I daļa - Audio pievienošana Pi Zero
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

Traucējummeklēšana
Traucējummeklēš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

III daļa - tīmekļa serveris
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

Tīmekļa servera problēmu novēršana
Tīmekļa servera problēmu novēršana
Tīmekļa servera problēmu novēršana
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: