İçindekiler:
- 1. Adım: GÜNCELLEME
- Adım 2: Parça Listesi
- 3. Adım: USB Lazer Barkod Okuyucu
- 4. Adım: UPC Veritabanı
- Adım 5: Metinden Konuşmaya
- Adım 6: Pil Gücü
- Adım 7: Kısım I - Pi Zero'ya Ses Ekleme
- Adım 8: Kısım II – Yazılım Kurulumu
- 9. Adım: Sorun Giderme
- Adım 10: Bölüm III – Web Sunucusu
- Adım 11: Web Sunucusunda Sorun Giderme
- Adım 12: Ek
Video: Raspberry Pi Konuşan Barkod Okuyucu: 12 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Şekil.1 DX.com'dan Barkod Tarayıcı
genel bakış
Güncelleme: Kısa bir video demosu mevcuttur
Annem artık bakkal ürünlerindeki etiketleri okuyamıyor, bu yüzden çözümler aramaya başladım. Görme engelliler için barkod okuyucuların yüzlerce dolar çalıştığını gördükten sonra, bir Raspberry Pi ve bir USB Barkod okuyucu kullanarak neler yapılabileceğini görmek istedim.
Bir başka önemli taklit, bunun bir İnternet bağlantısı OLMADAN çalışması gerektiğiydi (örneğin bir mağazada veya bir arkadaşın evinde). Bu yüzden veritabanı ve metinden konuşmaya bağımsız olmak zorundaydı.
Barkod okuyucunun kamera tabanlı bir sürümünü denedim, ancak aydınlatma ve kamera konumu, net göremeyen biri için güvenilirlik sorunlarına neden oldu. Bunlar ayrıca uygulamayı kurmak ve kullanmak için görüş gerektiriyordu. Bu yüzden bir USB Lazer barkod okuyucuya geçtim, özellikle de artık 30 doların altında olduklarından ve Raspbian Jessie onları kutudan çıkar çıkmaz desteklediğinden.
Yeni Amazon Dash Wand'ı da denedim ama taranan öğeyi söylemiyor ve çalışması için İnternet bağlantısı gerekiyor.
Fikir, bir öğeyi taramak ve Raspberry'nin dahili bir UPC kodları veritabanını sorgulamasını sağlamak ve ardından metinden konuşmaya kullanarak ürün açıklamasını söylemekti.
Üniteyi olabildiğince küçük yapmak için Raspberry Pi Zero kullanmak istedim. Ayrıca üniteyi pil gücüyle de çalıştırmak istedim.
Bu gereksinimleri karşılamak için bazı ödünleşmeler gerekliydi. Zero'nun harici bir ses jakı olmadığından, düşük maliyetli (yaklaşık 6 $) ve çok küçük olduğu için “Deprem Pi” projemin ses tasarımını yeniden kullandım. Alternatif olarak, "Pi Zero için Tek Transistör Ses"in değiştirilmesi de mümkün olabilir.
Lazer Barkod tarayıcı için DX.com'dan bir tane buldum. Ahududu USB'den güç alıyor ve yaklaşık 25 dolara mal oluyor. (bkz. aşağıdaki Parçalar)
1. Adım: GÜNCELLEME
Raspberry Pi Zero W'nin gelmesiyle ona geçiş yapacağım. Buradaki her şey aynı, ancak Pi'ye WiFi bağlantısını kurmanız gerekiyor. Bu, kurulum ve kullanım için Zero için bir USB hub'ına ihtiyacınız olmayacağı anlamına gelir.
WiFi'yi aşağıdakileri kullanarak kurabilirsiniz:
thepihut.com/blogs/raspberry-pi-tutorials/…
Biliyor musun?
Raspbian Jessie'yi bir Windows PC kullanarak bir SD karta kurarsanız, bir Raspberry'de başlatmadan önce WiFi ve SSH erişimini yapılandırmak için kartta iki dosya oluşturabilirsiniz.
Bunun için SD kartınızın şu anda PC'nizde K: olarak takılı olduğunu varsayın:
1) En son Raspbian Jessie görüntüsünü SD'ye yükleyin. Bu proje için Jessie Lite çalışmalıdır.
www.raspberrypi.org/downloads/raspbian/
2) Not defteri ile sadece "ssh" adında bir dosya oluşturun ve Save As "All files" to K:\ssh'yi kullanın.
Dosya her şeyi içerebilir. Önemli olan dosya adıdır. “ssh.txt” OLMAMALIDIR!!!
3) Not defteri ile aşağıdakileri içeren “wpa_supplicant.conf” adlı bir dosya oluşturun:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1
ağ={
ssid="mySSID" psk="parolam" key_mgmt=WPA-PSK }
“Tüm dosyalar”ı K:\wpa_supplicant.conf'a Farklı Kaydet'i kullanın. Yine, Not Defteri'nin onu “wpa_supplicant.conf.txt” olarak değiştirmesine izin vermeyin!
Ahududuyu ilk kez başlattığınızda, Jessie bunları arayacak ve Wifi'nize bağlanacaktır. Otomatik olarak atandığından, IP adresi için Yönlendiricinize bakmanız gerekecektir.
Adım 2: Parça Listesi
- Raspberry Pi Zero (veya boyut sorun değilse herhangi bir Raspberry Pi)
-
USB Lazer barkod tarayıcı
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Raspi Zero için Adafruit I2S 3W D Sınıfı Amplifikatör ekleyinhttps://www.adafruit.com/products/3006
- Küçük hoparlör. (Pi 2, 3 için harici amfi ve hoparlör kullanın.)https://www.adafruit.com/product/1890
- USB Mikro - USB OTG adaptörühttps://www.adafruit.com/products/2910
- 5V 1Amp USB pil takımı, https://www.adafruit.com/products/1959 gibi
- Pil paketi için USB'den mikro USB'ye kablo.
- USB ve Ethernet hub (en azından ilk kurulum çalışması için, Zero W veya Raspi 2, 3 için gerekli değildir)https://www.adafruit.com/products/2992
- GITHUB'dan yazılım:https://github.com/rgrokett/TalkingBarcodeReader
3. Adım: USB Lazer Barkod Okuyucu
Lazer barkod okuyucular, bir UPC etiketini tarama konusunda kameralardan daha bağışlayıcıdır. Ayrıca yetersiz aydınlatılmış veya kötü yerleştirilmiş etiketlerde bile iyi çalışırlar.
Sıfıra takmak için USB'den USB'ye mikro adaptöre ihtiyacınız olacak.
Tarayıcının tutma yeri ve tetiği, kullanımı kolaylaştırır.
Bir etiketi başarıyla taradığında da geri bildirim verir.
Gelecekte Yapılacaklar:
Son tasarımda, kabloyu kısaltmak için keser ve bir konektör arızasının boyutunu ve olasılığını azaltmak için doğrudan Sıfırdaki USB pinlerine lehimlerdim. Sıfır ve pil, 3D baskılı bir kutuda doğrudan tarayıcı sapının altına takılacaktır.
4. Adım: UPC Veritabanı
Bu, kelimenin tam anlamıyla milyonlarca UPC kodu ve indirilebilecek çok az sayıda açık kaynaklı veritabanı olduğundan, projenin en kötü kapsanan kısmıdır. Ne yazık ki, çoğu UPC veritabanları oldukça pahalıdır ve internet bağlantısı gerektirir.
Birkaç açık kaynak veritabanını bir araya getirebildim (kaynaklar aşağıdaki Ek'te), ancak içinde yaklaşık 700.000 öğe olsa bile, çok sayıda eksik var.
Bu amaçla iki şey yaptım; biri özellikle bakkaliye ürünlerine odaklanmak, diğeri ise yeni UPC kodlarının manuel olarak eklenmesine izin vermek için Raspberry'ye bir web sunucusu eklemek, ancak bu en azından yerel ağ bağlantısı gerektiriyor.
Gelecekte Yapılacaklar:
Yeni UPC kodları eklemek için herhangi bir yere bağlanabilmeniz için Zero W'yi bir "sıcak nokta" yapardım.
Adım 5: Metinden Konuşmaya
Zero'da ses kalitesi ve dönüştürme hızı arasında en iyi uzlaşmaya sahip olduğu için “Flite” adlı metinden konuşmaya programını kullandım. Diğerleri biraz daha iyi geliyordu, ancak dönüştürmek için çok yavaştı.
Adafruit'in eğitimine de göz atabilirsiniz:https://learn.adafruit.com/speech-synthesis-on-the…
Konuşma bükülmesine alışmak biraz "kulak eğitimi" gerektireceğini unutmayın, ancak bu çok da kötü değil.
Aynı öğeyi yeniden taramak sesi tekrarlayacaktır.
Gelecek Yapılacaklar
Yaşlıların gürültülü yerlerde sesi daha kolay duymalarını sağlamak için bir kulaklık jakı ekleyebilirsin.
Adım 6: Pil Gücü
Sistem, cep telefonlarını şarj etmek için kullanılan bir 5V USB pil ile çalıştırılabilir.
Buradaki sorun, pili çıkardığınızda veya pil bittiğinde, Pi'nin SD sürücüyü bozma olasılığıyla çökmesidir.
Bunu çözmek için bir kapatma komutu çalıştıran bir düğmeye ihtiyaç vardır. Muhtemelen böyle bir tane kullanacağım:
www.element14.com/community/docs/DOC-78055…
(Evet… başka bir "Gelecek Yapılacaklar!")
Adım 7: Kısım I - Pi Zero'ya Ses Ekleme
(Sıfır kullanmıyorsanız bu bölümü atlayın!)
Pi Zero'da yerleşik olmadığı için harici ses eklemeniz gerekecek. Düşük maliyetli “Adafruit I2S 3W Amplifikatör koparma MAX98357A” kullandım
Bu, Adafruit'in mükemmel öğreticisini kullanarak kurulum gerektirir:
Eğitimin kablolama bölümünde gösterildiği gibi, şunları bağlayın:
• Amp Vin - Raspi Sıfır Pi 5V• Amp GND - Raspi Sıfır Pi GND • Amp DIN - Raspi Sıfır Pi #21 • Amp BCLK - Raspi Sıfır Pi #18 • Amp LRCLK - Raspi Sıfır Pi #19
Karttaki ses kablolarına küçük bir hoparlör bağlayın.
Pi Zero Adafruit Ses Yazılımı KurulumuAdafruit yazılımı kurulum eğitiminde de gösterildiği gibi, aşağıdaki CURL komutunu yürütün:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Yeniden başlattıktan sonra, hoparlör testini kullanarak sesi test edin:
$ hoparlör testi -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav
Sorun yaşarsanız, genel bakıştan başlayarak Adafruit öğreticisine geri dönün. Güncellenen tüm dosyaları doğrulamak için öğreticideki "Ayrıntılı kurulum" adımlarını uygulamanız gerekebilir.
Zero ve Max98357 Ses için Gerekli Önemli Adımlar: Varsayılan olarak, ALSA sesi yalnızca Stereo'da, Flite metinden sese mono ise çalışır. Ayrıca, ses her çalmaya başladığında içinde "açılır".
(Bakınız:
Aşağıdakileri yapmalısınız:
1) /boot/config.txt dosyasına bir satır ekleyin
$ sudo nano /boot/config.txt
dtoverlay=i2s-mmap
2) /etc/asound.conf'u değiştirin
$ sudo nano /etc/asound.conf
pcm.hifiberry { hw kartı 0 tipi } pcm.!default { fiş slave.pcm "dmixer" } pcm.dmixer { tip dmix ipc_key 1024 slave { pcm "hifiberry" kanalları 2 } } ctl.dmixer { hw kartı 0 tipi }
3) Pi'nizi yeniden başlatın.
Hoparlör testini tekrar deneyin. Şimdi daha iyi ses vermelidir. Ses testlerini içeren kurulum eğitimini tamamladığınızda, ses hazır olmalıdır.
Bunu bir markete veya gürültülü bir ortama götürürseniz, ses için bir kulaklık jakı eklemek isteyebileceğinizi unutmayın.
Adım 8: Kısım II – Yazılım Kurulumu
Bu, Raspbian Jessie'nin zaten kurulu olduğunu ve Linux komut satırına erişebildiğinizi varsayar. Raspbian'ın GUI sürümüne ihtiyacınız yok, ancak kullanmanız uygun.
Ethernet veya klavye/fare için USB bağlantı noktasına ihtiyacınız olması durumunda, şu anda takılı USB tarayıcıya ihtiyacınız YOKTUR.
İşletim sisteminizin güncel olduğundan emin olun:
$ sudo apt-get güncelleme $ sudo apt-get yükseltme
Komut satırından pi ana dizinine gidin ve GITHUB deposunu indirin:
$ cd /home/pi$ sudo apt kurulum git $ git klon https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. NS
Bu, özellikle ilk kez yapılıyorsa ve web sunucusunun ve PHP'nin kurulması veya güncellenmesi gerekiyorsa, biraz zaman alacaktır. Gerekirse, bunu birden fazla kez çalıştırabilirsiniz. Diğer şeylerin yanı sıra, bu, barkod dosyalarını ve UPC veritabanını şuraya yükler: /var/www/html/upc
Ardından, /etc/rc.local dosyasını düzenleyin ve “çıkış 0”dan önce aşağıdaki satırı ekleyin
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh çıkış 0
Kurulum tamamlandıktan sonra Pi'nizi kapatın ve USB Barkod okuyucuyu takın ve yeniden başlatın.
$ sudo şimdi kapatma
Tekrar açın ve kısa bir başlangıç konuşması duymalısınız.
Öyleyse, bir bakkal ürününden bir barkod taramayı deneyin. Her şey yolunda giderse, öğeyi konuştuğunu duymalısınız (veya “Bulunamadı” deyin). Aksi takdirde, sonraki sorun giderme kılavuzuna bakın.
9. Adım: Sorun Giderme
Herhangi bir ses duymuyorsanız, aşağıdaki komutları denemeniz gerekecektir:
1) Metinden konuşmaya sesin çalıştığını doğrulayın:
$ sudo flite -voice awb -t "test"
Bir hata alırsanız, flite'ın kurulu olduğundan emin olun:
$ sudo apt kurulum flite
Aşağıdaki hatayı alırsanız, Raspi Zero'da yukarıdaki Audio Setup bölümünde gösterilen /boot/config.txt ve /etc/asound.conf'u güncellediğinizden emin olun: audio_open_alsa: kanal sayısı 1 olarak ayarlanamadı. Geçersiz argüman.
Herhangi bir hata ve ses almıyorsanız, Raspberry sesinizin çalıştığından emin olun.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Sesi, ses jakından çıkarmaya zorlamanız gerekebilir: (yukarıdaki şek.1'e bakın)
$ sudo raspi-config -> 7 Gelişmiş Seçenek -> A4 Ses
2) Ses ve metin okumanın iyi olduğunu doğruladıktan sonra, barkod okuyucuyu kontrol edin:
cd /var/www/html/upc/binsudo python./test.py
Bir barkodu taradığınızda görüntülenen sayısal bir barkod numarası görmelisiniz. (Test programı, ses çıkışı veya veritabanı bağlantıları İÇERMEZ.)
3) Tüm bunlar iyiyse, hata mesajları için “nohup.out” dosyasına bakın:
cd /var/www/html/upc/binsudo cat nohup.out
Muhtemel sorunlar, eksik paketler veya hatalı izinlerdir (veya koddaki HATALAR!). İşletim sisteminizin güncel olduğundan emin olun ve install.sh dosyasını yeniden çalıştırın.
Umarım, şimdiye kadar çalışıyorsundur!
Adım 10: Bölüm III – Web Sunucusu
MİLYONLARCA UPC kodu olduğundan ve halka açık (yani ücretsiz) çoğu veritabanları yalnızca küçük bir kod alt kümesi olduğundan, bu proje bakkaliye için UPC kodlarına odaklandı. Birkaç yüz bin öğe içerir, ancak pek çoğu bulunmayacaktır.
UPC Veritabanını eklemeniz veya güncellemeniz gerekirse, iki program mevcuttur; bir komut satırı ve bir web tarayıcısı. (rakamları UPC ürün numaranızla değiştirin)
$ cd /var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 "Yeni öğem"
Bu, veritabanına bir kayıt ekleyecektir. Aksi takdirde, web tarayıcısının DB işlevini kullanmanız önerilir.
Web Sunucusu GUI'si için ahududunuzun IP adresine ihtiyacınız vardır.
IP adresini bulmak için şunları kullanabilirsiniz:
$ ana bilgisayar adı -I 192.168.1.108
Bir PC tarayıcısından şu adrese gidin: https://192.168.1.108/upc/Yukarıdaki Şekil 2'dekine benzer bir ekran görmelisiniz.
Eğer öyleyse, kayıtları ekleyebilir/güncelleyebilir ve silebilirsiniz. En yeni kayıtlarınızı veritabanının sonuna eklenirken görmek için ('>|') “son kayıt” düğmesini kullanarak Son Sayfaya gidin.
SECURITYNOT, bu web hizmeti güvenli değildir, (kimlik doğrulama yok, SSL yok), bu nedenle onu genel İnternet'e maruz bırakmamak en iyisidir. (Ancak WiFi Erişim Noktası olarak kurulmadığı için mağazaya götürmek güvenlidir.)
Bununla birlikte, üzerinde özel bir veri olmadığı için, olabilecek en kötü şey, birinin UPC verilerini karıştırmasıdır.
Başkalarının girememesi için erişimi belirli IP adreslerine de sınırlayabilirsiniz. İzin vermek istediğiniz IP'leri burada değiştirin. Tüm diğerlerinin şunlara erişmesi engellenecektir:
$ 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
Ayrıca, varsayılan PI şifresini DEĞİŞTİRİN! Herkes varsayılanın pi/ahududu olduğunu bilir
$ şifre
Adım 11: Web Sunucusunda Sorun Giderme
Tarayıcınızı kullanarak Raspberry'nizin IP adresine şu şekilde gidin:
192.168.1.108/
/var/www/html/index.html adresinden varsayılan ekranı görmelisiniz (yukarıdaki Şekil 1)
Ayrıca web sunucusunun çalıştığından emin olun:
$ ps -ef|grep lighttpd
PHP'nin iyi olduğunu doğrulamak için bir php test dosyası oluşturun:
$ sudo nano /var/www/html/phpinfo.php
Ardından https://192.168.1.108/phpinfo.php adresine gidin.
Yukarıdaki Şekil 2 gibi bir ekran görmelisiniz
Hatalar veya boş ekranlar alırsanız, hata olup olmadığını kontrol edin.
$ sudo cat /var/log/lighttpd/error.log
Yine, install.sh dosyasını yeniden çalıştırmak, eksik bağımlılıkları düzeltebilir.
Adım 12: Ek
BÜYÜK TEŞEKKÜR, büyük bir UPC veritabanını kullanıma sunduğu için aşağıdakilere gider.
Açık Bakkal UPC DB
www.grocery.com/open-grocery-database-proje…
Veri DB'sini açın
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Basit web CRUD GUI için EasyUI sayesinde
www.jeasyui.com/index.php
Önerilen:
Süper Stok (Barkod Okuyucu Tarafından Kontrol Edilen Stok): 5 Adım
Superstock (Barkod Tarayıcı Tarafından Kontrol Edilen Stok): Bu kılavuzda Howest'te 1MCT için okul projem Superstock'un nasıl oluşturulacağını anlatacağım. Konsept, stokta bulunanların sayısını tutmak için bir web sitesi aracılığıyla erişebileceğiniz kullanıcı dostu bir veritabanı yapmaktır (benim durumumda benim için kıyafet
Apple Barkod Oymacısı (Photonics Hackathon Phablabs): 3 Adım
Apple Barcode Engraver (Photonics Hackathon Phablabs): Herkese merhaba,Phablabs Photonics yarışmamızın bir parçası olarak, meyve üzerindeki çıkartmaları değiştirebilecek bir cihaz yaratmamız istendi.Meyve çıkartmalarından da nefret ediyor musunuz? Ve çevre dostu bir değişiklik yapmak ister misiniz? O zaman ins isteriz
MAĞAZA, MARKA VE SERVİS MERKEZLERİ İÇİN EXCEL'DEN Barkod Kullanan POS SİSTEMİ: 7 Adım
EXCEL'DEN MAĞAZALAR, MANZARALAR VE HİZMET MERKEZLERİ İÇİN POS SİSTEMİ Barkod Kullanarak: Bu blogla size küçük dükkanlar, bakkallar ve servis merkezleri için basit bir POS (satış noktası) sisteminin nasıl oluşturulacağını tanıtıyorum. Bu yöntemle aşağıdaki tesisleri özel bir yazılım veya pahalı ekipman olmadan yönetebilirsiniz. v Is
USB Barkod Tarayıcı (Raspberry Pi): 4 Adım
USB Barkod Tarayıcı (Raspberry Pi): Raspberry Pi ile bir USB barkod tarayıcının nasıl kurulacağına dair temel eğitim
Barkod Tarama için Ucuz Iphone Makro Lens: 6 Adım (Resimlerle)
Barkod Tarama için Ucuz Iphone Makro Lensi: iPhone'un kamerasıyla ilgili göze çarpan bir sorun, ~ 1 metreden daha yakına odaklanamamasıdır. Griffin Technology'nin iClarifi gibi bazı satış sonrası çözümleri bu sorunu çözmeye yardımcı olur. İPhone 3G için bu kılıf, biraz kaymanıza izin verir