Բովանդակություն:

Raspberry Pi Talking Barcode Reader: 12 Steps
Raspberry Pi Talking Barcode Reader: 12 Steps

Video: Raspberry Pi Talking Barcode Reader: 12 Steps

Video: Raspberry Pi Talking Barcode Reader: 12 Steps
Video: QR Code Scanner using Raspberry Pi and OpenCV 2024, Նոյեմբեր
Anonim
Raspberry Pi Talking Barcode Reader
Raspberry Pi Talking Barcode Reader

Նկար 1. Շտրիխ կոդերի սկաներ DX.com- ից

Ակնարկ

Թարմացում. Հասանելի է կարճ տեսանյութի ցուցադրում

Մայրս այլևս չի կարողանում կարդալ մթերային ապրանքների պիտակներ, ուստի ես գնացի լուծումներ փնտրելու: Տեսնելով, որ կույրերի համար շտրիխ ընթերցողները վաստակում են հարյուրավոր դոլարներ, ես ուզում էի տեսնել, թե ինչ կարելի է անել Raspberry Pi- ի և USB շտրիխ ընթերցողի միջոցով:

Մեկ այլ առանցքային իմիտացիա այն էր, որ սա պետք է աշխատի ԱՌԱՆ ինտերնետ կապի (օրինակ ՝ խանութում կամ ընկերոջ տանը): Այսպիսով, տվյալների բազան և տեքստային խոսքը պետք է ինքնամփոփ լինեին:

Ես փորձեցի շտրիխ կոդի ընթերցողի տեսախցիկի վրա հիմնված տարբերակը, բայց լուսավորությունն ու տեսախցիկի դիրքը վստահության խնդիրներ առաջացրին մեկին, ով հստակ չի տեսնում: Դրանք նաև պահանջում էին տեսողություն ՝ ծրագիրը տեղադրելու և օգտագործելու համար: Այսպիսով, ես անցա USB լազերային շտրիխ կոդի ընթերցողին, մանավանդ որ դրանք այժմ հասանելի են մինչև 30 դոլարով, և Raspbian Jessie- ն նրանց աջակցում է անմիջապես տուփից դուրս:

Ես նաև փորձեցի նոր Amazon Dash Wand- ը, բայց այն չի խոսում սկանավորված նյութի հետ և աշխատելու համար պահանջում է ինտերնետ կապ:

Գաղափարն այն էր, որ սկանավորվի նյութը և ազնվամորու հարցումը դրվի UPC կոդերի ներքին տվյալների բազայում, այնուհետև արտադրանքի նկարագրությունը խոսի տեքստ-խոսքի միջոցով:

Որպեսզի միավորը հնարավորինս փոքր լինի, ես ուզում էի օգտագործել Raspberry Pi Zero: Ես նաև ուզում էի սարքը մարտկոցի լիցքաթափել:

Այս պահանջները բավարարելու համար որոշ փոխզիջումներ էին անհրաժեշտ: Քանի որ Zero- ն չունի արտաքին աուդիո խցիկ, ես նորից օգտագործեցի իմ ձայնագրությունը «Երկրաշարժ Pi» նախագծից, քանի որ այն ցածր գնով էր (մոտ 6 դոլար) և շատ փոքր: Այլապես, հնարավոր է, որ «One Transistor Audio- ն Pi Zero- ով փոխարինվի»:

Laser Bar Code սկաների համար ես գտա մեկը DX.com- ից: Այն սնվում է Raspberry USB- ից և արժե մոտ 25 դոլար: (տե՛ս ստորև բերված հատվածները)

Քայլ 1: ԹԱՐՄԱՆԵԼ

Raspberry Pi Zero W- ի ժամանումով ես պատրաստվում եմ անցնել դրան: Այստեղ ամեն ինչ նույնն է, բացառությամբ, որ դուք պետք է կարգավորեք WiFi կապը Pi- ին: Սա նշանակում է, որ տեղադրման և օգտագործման համար Zero- ի համար USB հանգույց պետք չի լինի:

Դուք կարող եք WiFi- ն կարգավորել ՝ օգտագործելով.

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

Գիտեի՞ք:

Եթե դուք տեղադրում եք Raspbian Jessie- ն SD քարտի վրա ՝ օգտագործելով Windows համակարգիչ, կարող եք քարտի վրա ստեղծել երկու ֆայլ ՝ WiFi- ի և SSH մուտքի կազմաձևման համար, նախքան այն ազնվամորիով բեռնելը:

Դրա համար ենթադրենք, որ ձեր SD քարտը ներկայումս տեղադրված է որպես K: ձեր համակարգչի վրա.

1) Տեղադրեք Raspbian Jessie- ի վերջին պատկերը SD- ում: Այս նախագծի համար Jessie Lite- ը պետք է աշխատի:

www.raspberrypi.org/downloads/raspbian/

2) Գրառման գրքույկով ստեղծեք «ssh» անունով ֆայլ և օգտագործեք Save As «Բոլոր ֆայլերը» K: / ssh- ում

Ֆայլը կարող է պարունակել որևէ բան: Ֆայլի անունն է կարևոր: Չպետք է լինի «ssh.txt» !!!

3) Գրառման գրքույկով ստեղծեք «wpa_supplicant.conf» անունով ֆայլ ՝ հետևյալով.

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

ցանց = {

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

Օգտագործեք Պահել որպես «Բոլոր ֆայլերը» K- ում: / wpa_supplicant.conf Կրկին, թույլ մի տվեք, որ Գրառման գրքույկը այն փոխի «wpa_supplicant.conf.txt» - ի:

Երբ առաջին անգամ գործարկեք ազնվամորին, essեսսին դրանք կփնտրի և կկապվի ձեր WiFi- ին: Չնայած IP հասցեն դուք պետք է փնտրեք ձեր երթուղղիչում, քանի որ այն ավտոմատ նշանակված է:

Քայլ 2: Մասերի ցուցակ

  • Raspberry Pi Zero (կամ ցանկացած Raspberry Pi, եթե չափը խնդիր չէ)
  • USB լազերային շտրիխ սկաների սկաներ

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

  • Raspi Zero- ի համար ավելացրեք Adafruit I2S 3W դասի ուժեղացուցիչ
  • Փոքր բարձրախոս: (Pi 2, 3 -ի համար օգտագործեք արտաքին ուժեղացուցիչ և բարձրախոս):
  • USB Micro to USB OTG ադապտեր
  • 5V 1Amp USB մարտկոցի փաթեթ, օրինակ ՝
  • USB- ից միկրո USB մալուխ մարտկոցի համար:
  • USB և Ethernet հանգույց (գոնե նախնական կարգաբերման համար, անհրաժեշտ չէ Zero W կամ Raspi 2, 3)
  • Softwareրագրային ապահովում GITHUB- ից ՝

Քայլ 3: USB լազերային շտրիխ կոդի ընթերցիչ

USB լազերային շտրիխ կոդի ընթերցող
USB լազերային շտրիխ կոդի ընթերցող

Լազերային շտրիխ ընթերցողներն ավելի ներողամիտ են UPC պիտակը սկանավորելու ունակության մեջ, քան տեսախցիկները: Նրանք նաև լավ են աշխատում նույնիսկ վատ լուսավորված կամ վատ տեղադրված պիտակների վրա:

Toրոյին միացնելու համար ձեզ անհրաժեշտ կլինի USB- ից USB միկրո ադապտեր:

Սկաների ձեռքի բռնակն ու ձգանը հեշտացնում են դրա օգտագործումը:

Այն նաև հետադարձ կապ է տալիս, երբ այն հաջողությամբ սկանավորում է պիտակը:

Ապագա անելիք

Վերջնական նախագծում ես մալուխը կկտրեի, որպեսզի այն կարճացնեի և անմիջապես կպցնեի Zero- ի USB կապումներին `միակցիչի խափանման չափն ու հավանականությունը նվազեցնելու համար: Zero- ն և մարտկոցը կցված կլինեն անմիջապես սկաների բռնակի ներքևին ՝ 3D տպված պատյանով:

Քայլ 4: UPC տվյալների շտեմարան

Սա նախագծի ամենաթույլ ծածկված մասն է, քանի որ բառացիորեն միլիոնավոր UPC կոդեր կան և ներբեռնման համար բաց կոդով շատ քիչ շտեմարաններ: Unfortunatelyավոք, UPC տվյալների բազաների մեծ մասը բավականին թանկ են և պահանջում են ինտերնետ կապ:

Ես կարողացա մի քանի բաց կոդով տվյալների շտեմարաններ հավաքել (աղբյուրները ՝ ստորև ՝ Հավելվածում), բայց նույնիսկ դրա մեջ պարունակվող գրեթե 700,000 հոդվածների դեպքում հսկայական թիվ բացակայում է:

Այդ նպատակով ես երկու բան եմ արել. մեկը `կենտրոնանալ մթերային ապրանքների վրա, իսկ մյուսը` ավելացնել վեբ սերվերին ազնվամորիին, որը թույլ կտա ձեռքով ավելացնել նոր UPC ծածկագրեր, չնայած դա պահանջում է առնվազն տեղական ցանցային կապ:

Ապագա անելիք

Ես Zero W- ը կդարձնեի «թեժ կետ», որպեսզի կարողանաք որևէ տեղ միանալ դրան ՝ նոր UPC կոդեր ավելացնելու համար:

Քայլ 5: Տեքստ-խոսք

Ես օգտագործել եմ տեքստից խոսքի «Flite» ծրագիրը, քանի որ այն լավագույն փոխզիջումն է ունեցել ձայնի որակի և conversionրոյի փոխակերպման արագության միջև: Մյուսները մի փոքր ավելի լավ էին հնչում, բայց չափազանց դանդաղ էին դարձի գալու համար:

Կարող եք նաև ծանոթանալ Adafruit- ի ձեռնարկին ՝

Նկատի ունեցեք, որ խոսքի թեքմանը սովորելու համար կպահանջվի մի փոքր «ականջի ուսուցում», բայց դա այնքան էլ վատ չէ:

Նույն ապրանքի նորից սկանավորումը կկրկնի ձայնը:

Ապագա անելիք

Միգուցե ականջակալների վարդակ ավելացնեք, որպեսզի տարեցների համար ավելի հեշտ լինի աղմկոտ վայրերում ձայնը լսել:

Քայլ 6: Մարտկոցի հզորություն

Համակարգը կարող է գործարկվել 5 Վ լ USB մարտկոցից, ինչպես օրինակ օգտագործվում է բջջային հեռախոսների լիցքավորման համար:

Կարևորն այն է, որ մարտկոցը միացնելուց կամ մարտկոցի լիցքավորվելուց հետո Pi- ն կփլուզվի ՝ հավանականությամբ, որ այն կփչացնի SD կրիչը:

Խնդիրը լուծելու համար անհրաժեշտ է անջատման հրամանը գործարկող կոճակ: Ես հավանաբար կօգտագործեմ այսպիսի մեկը.

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

(Այո … ևս մեկ «Ապագա անելիք»)

Քայլ 7. Մաս I - Ձայնի ավելացում Pi Zero- ին

Մաս I - Ձայնի ավելացում Pi Zero- ին
Մաս I - Ձայնի ավելացում Pi Zero- ին
Մաս I - Ձայնի ավելացում Pi Zero- ին
Մաս I - Ձայնի ավելացում Pi Zero- ին
Մաս I - Ձայնի ավելացում Pi Zero- ին
Մաս I - Ձայնի ավելացում Pi Zero- ին

(Բաց թողեք այս մասը, եթե չօգտագործեք eroրո):

Pi Zero- ի վրա պետք է արտաքին աուդիո ավելացնել, քանի որ այն ներկառուցված չէ: Ես օգտագործեցի «Adafruit I2S 3W Amplifier breakout MAX98357A» ցածր գնով

Սա պահանջում է կարգավորում ՝ օգտագործելով Adafruit- ի հիանալի ձեռնարկը ՝

Ինչպես ցույց է տրված ձեռնարկի էլեկտրագծերի մասում, միացրեք.

• Amp Vin դեպի Raspi Zero Pi 5V • Amp GND դեպի Raspi Zero Pi GND • Amp DIN մինչև Raspi Zero Pi #21 • Amp BCLK դեպի Raspi Zero Pi #18 • Amp LRCLK դեպի Raspi Zero Pi #19

Միացրեք փոքր բարձրախոսը տախտակի վրա գտնվող աուդիո լարերին:

Pi Zero Adafruit Audio Software Setup Նաև ցուցադրված է Adafruit ծրագրաշարի տեղադրման ձեռնարկում, կատարեք ստորև CURL հրամանը.

$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | բաշ

Վերագործարկվելուց հետո փորձարկեք ձայնը `օգտագործելով բարձրախոս-թեստ.

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

Եթե խնդիրներ ունեք, վերադառնաք Adafruit ձեռնարկի միջոցով ՝ սկսելով ակնարկից: Հնարավոր է, որ անհրաժեշտ լինի անցնել ձեռնարկի «Մանրամասն տեղադրում» քայլերով ՝ բոլոր թարմացված ֆայլերը ստուգելու համար:

Eroրոյի և Max98357 աուդիոի համար անհրաժեշտ անհրաժեշտ քայլեր. Լռելյայն, ALSA ձայնը գործում է միայն ստերեո ռեժիմում, մինչդեռ Flite տեքստը խոսքի համար միաձույլ է: Բացի այդ, ձայնի մեջ «թռնում» է ամեն անգամ, երբ այն սկսում է նվագարկվել:

(Տես ՝

Դուք պետք է անեք հետևյալը.

1) Կցեք տող /boot/config.txt- ին

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Փոխարինել /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" channel 2}} ctl.dmixer {type hw card 0}

3) Վերագործարկեք ձեր Pi- ն:

Նորից փորձեք Բարձրախոս-թեստը: Այն պետք է ավելի լավ հնչի: Երբ ավարտեք կարգաբերման ձեռնարկը, ներառյալ աուդիո թեստերը, ապա ձայնը պետք է պատրաստ լինի:

Նկատի ունեցեք, որ գուցե ցանկանաք ավելացնել ականջակալների խցիկ ձայնի համար, եթե այն տեղափոխեք մթերային խանութ կամ աղմկոտ միջավայր:

Քայլ 8. Մաս II. Softwareրագրաշարի տեղադրում

Սա ենթադրում է, որ դուք արդեն ունեք Raspbian Jessie- ն տեղադրված և կարող եք մուտք գործել Linux հրամանի տող: Ձեզ հարկավոր չէ Raspbian- ի GUI տարբերակը, բայց օգտագործելը լավ է:

Այս պահին ձեզ միացված չէ USB սկաները, եթե ձեզ անհրաժեշտ է Ethernet- ի կամ ստեղնաշարի/մկնիկի USB պորտը:

Համոզվեք, որ ձեր OS- ն արդիական է.

$ sudo apt-get թարմացում $ sudo apt-get թարմացում

Հրամանի տողից գնացեք pi տան գրացուցակ և ներբեռնեք GITHUB պահոցը.

$ cd/home/pi $ sudo apt տեղադրել git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./ տեղադրեք: շ

Սա որոշ ժամանակ կպահանջի, հատկապես, եթե սա առաջին անգամն է, և վեբ սերվերը և PHP- ն պետք է տեղադրվեն կամ թարմացվեն: Անհրաժեշտության դեպքում կարող եք գործարկել սա մեկից ավելի անգամ: Այլ բաների շարքում սա տեղադրում է շտրիխ ֆայլերը և UPC տվյալների բազան ՝/var/www/html/upc

Հաջորդը, խմբագրեք /etc/rc.local և կցեք հաջորդ տողը «ելք 0» -ից առաջ

$ sudo nano /etc/rc.local

fi sudo /var/www/html/upc/bin/run.sh ելք 0

Տեղադրումն ավարտվելուց հետո փակեք ձեր Pi- ն և միացրեք USB շտրիխ կոդի ընթերցողը և վերագործարկեք:

$ sudo անջատում հիմա

Միացրեք այն և դուք պետք է լսեք գործարկման կարճ ելույթ:

Եթե այո, ապա փորձեք սկանավորել մթերային ապրանքից շտրիխ կոդը: Եթե ամեն ինչ լավ է ընթանում, ապա պետք է լսեք, որ այն խոսում է նյութի մասին (կամ խոսում է «Չի գտնվել»): Հակառակ դեպքում, հաջորդը ստուգեք անսարքությունների վերացման ուղեցույցը:

Քայլ 9: Խնդիրների վերացում

Անսարքությունների վերացում
Անսարքությունների վերացում

Եթե որևէ ձայն չեք լսում, ապա ձեզ հարկավոր է փորձել հետևյալ հրամանները.

1) Համոզվեք, որ տեքստից խոսքի ձայնը գործում է.

$ sudo flite -ձայն awb -t «փորձարկում»

Եթե սխալ եք ստանում, համոզվեք, որ flite- ը տեղադրված է.

$ sudo apt տեղադրել flite

Եթե դուք ստանում եք հետևյալ սխալը, համոզվեք, որ թարմացրել եք /boot/config.txt և /etc/asound.conf- ն, որոնք ցուցադրված են Raspi Zero- ի Audio Setup բաժնում ՝ audio_open_alsa.

Եթե սխալ կամ ձայն չեք ստանում, համոզվեք, որ ձեր ազնվամորի ձայնը գործում է:

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

1) Հնարավոր է, որ անհրաժեշտ լինի ձայնը դուրս մղել աուդիո խցիկից. (Տե՛ս նկ. 1 վերը)

$ sudo raspi -config -> 7 Ընդլայնված Ընտրանքներ -> A4 Աուդիո

2) Աուդիո և տեքստային խոսքի լավ ստուգումից հետո ստուգեք շտրիխ կոդի ընթերցողը.

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

Շտրիխ կոդ սկանավորելիս դուք պետք է տեսնեք թվային շտրիխ կոդ: (Թեստային ծրագիրը ՉԻ ներառում ձայնային ելք կամ տվյալների բազայի միացումներ):

3) Եթե այս ամենը լավ է, ապա սխալ հաղորդագրությունների համար ստուգեք «nohup.out» ֆայլը.

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

Հավանական խնդիրների դեպքում բացակայում են փաթեթները կամ թույլտվությունները (կամ ծածկագրում BUGs): Համոզվեք, որ ձեր ՕՀ -ն արդիական է և նորից վերագործարկեք install.sh- ը:

Հուսանք, որ դուք աշխատում եք մինչ այժմ:

Քայլ 10. Մաս III - Վեբ սերվեր

Մաս III - Վեբ սերվեր
Մաս III - Վեբ սերվեր

Քանի որ կան ՄԻԼԻՈՆՆԵՐ UPC ծածկագրեր, իսկ հրապարակային (այսինքն ՝ անվճար) հասանելի տվյալների շտեմարանները ծածկագրերի միայն մի փոքր ենթախումբ են, այս նախագիծը կենտրոնացած էր մթերային ապրանքների UPC ծածկագրերի վրա: Այն ներառում է մի քանի հարյուր հազար իր, բայց շատ, շատերը չեն գտնվի:

Եթե Ձեզ անհրաժեշտ է ավելացնել կամ թարմացնել UPC տվյալների շտեմարանը, կան երկու ծրագրեր. հրամանի տող մեկ և վեբ դիտարկիչ: (թվանշանները փոխարինեք ձեր UPC ապրանքի համարով)

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

$ sudo./addDB.sh 01234567890 «Իմ նոր իրը»

Սա տվյալների բազայում գրառում կավելացնի: Հակառակ դեպքում, առաջարկվում է օգտագործել վեբ դիտարկիչի DB գործառույթը:

Վեբ սերվերի GUI- ի համար ձեզ անհրաժեշտ է ձեր ազնվամորու IP հասցեն:

IP հասցեն գտնելու համար կարող եք օգտագործել.

$ hostname -I 192.168.1.108

ԱՀ դիտարկիչից անցեք ՝ https://192.168.1.108/upc/ Դուք պետք է տեսնեք վերևում նկար 2 -ի նման էկրան:

Եթե այո, ապա կարող եք ավելացնել/թարմացնել և ջնջել գրառումները: Գնացեք դեպի Վերջին էջ ՝ օգտագործելով «‘> |’)« վերջին գրառումը »կոճակը ՝ ձեր նոր գրառումները տեսնելու համար, քանի որ դրանք կցված են տվյալների բազայի վերջում:

ԱՆՎՏԱՆԳՈԹՅՈՆ, որ այս վեբ ծառայությունը ապահովված չէ (ոչ վավերացում, ոչ SSL), ուստի ավելի լավ է այն չհրապարակել հանրային ինտերնետում: (Բայց քանի որ այն սահմանված չէ որպես WiFi մուտքի կետ, ապահով է խանութ տեղափոխելը):

Թեև, քանի որ դրա վերաբերյալ մասնավոր տվյալներ չկան, ամենավատը, որ կարող է պատահել, այն է, որ ինչ -որ մեկը մանիպուլյացիայի ենթարկի UPC տվյալները:

Կարող եք նաև սահմանափակել որոշակի IP հասցեների մուտքը, որպեսզի ուրիշները չկարողանան մուտք գործել: Պարզապես փոխարինեք այստեղ IP- ներ (ներ) ով ցանկանում եք թույլ տալ: Մյուս բոլորի մուտքը կարգելվի ՝

$ sudo vi /etc/lighttpd/lighttpd.conf

$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd վերագործարկում

Բացի այդ, ՓՈԽԵԼ կանխադրված PI գաղտնաբառը: Բոլորը գիտեն, որ կանխադրվածը pi/ազնվամորին է

$ passwd

Քայլ 11: Վեբ սերվերի անսարքությունների վերացում

Վեբ սերվերի անսարքությունների վերացում
Վեբ սերվերի անսարքությունների վերացում
Վեբ սերվերի անսարքությունների վերացում
Վեբ սերվերի անսարքությունների վերացում

Ձեր դիտարկիչի միջոցով գնացեք ձեր Ազնվամորիի IP հասցե, այսպես.

192.168.1.108/

Դուք պետք է տեսնեք լռելյայն էկրանը /var/www/html/index.html- ից (նկ. 1 վերը)

Նաև համոզվեք, որ վեբ սերվերը աշխատում է.

$ ps -ef | grep lighttpd

PHP- ի լավ լինելը ստուգելու համար ստեղծեք php թեստային ֆայլ.

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

Այնուհետև գնացեք

Դուք պետք է տեսնեք վերևի Նկար 2 -ի նման էկրան

Եթե սխալներ կամ դատարկ էկրաններ եք ստանում, ստուգեք մուտքի սխալները

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

Կրկին, install.sh- ի վերագործարկումը կարող է շտկել բացակայող կախվածությունները:

Քայլ 12: Հավելված

ՄԵIG ՇՆՈՐՀԱԿԱԼՈԹՅՈՆ գնում է հետևյալը ՝ UPC մեծ տվյալների բազա հասանելի դարձնելու համար:

Բացեք Grocery UPC DB- ն

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

Բացեք տվյալների DB- ն

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

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

Շնորհակալություն EasyUI- ին պարզ վեբ CRUD GUI- ի համար

www.jeasyui.com/index.php

Խորհուրդ ենք տալիս: