Daftar Isi:

Pembaca Kode Batang Berbicara Raspberry Pi: 12 Langkah
Pembaca Kode Batang Berbicara Raspberry Pi: 12 Langkah

Video: Pembaca Kode Batang Berbicara Raspberry Pi: 12 Langkah

Video: Pembaca Kode Batang Berbicara Raspberry Pi: 12 Langkah
Video: LV12 1D Barcode Scanner Demo Video 2024, November
Anonim
Pembaca Kode Batang Berbicara Raspberry Pi
Pembaca Kode Batang Berbicara Raspberry Pi

Gbr.1 Pemindai Kode Batang dari DX.com

Gambaran

Pembaruan: Demo video pendek tersedia

Ibuku tidak dapat membaca label pada barang belanjaan lagi, jadi aku mencari solusi. Setelah melihat pembaca kode batang untuk orang buta menjalankan ratusan dolar, saya ingin melihat apa yang bisa dilakukan dengan menggunakan Raspberry Pi dan pembaca Kode Batang USB.

Imitasi kunci lainnya adalah bahwa ini harus bekerja TANPA koneksi Internet (seperti di toko atau rumah teman). Jadi database dan text-to-speech harus mandiri.

Saya mencoba pembaca kode batang versi kamera, tetapi pencahayaan dan posisi kamera menyebabkan masalah keandalan bagi seseorang yang tidak dapat melihat dengan jelas. Ini juga membutuhkan penglihatan untuk mengatur dan menggunakan aplikasi. Jadi saya beralih ke pembaca kode batang Laser USB, terutama karena sekarang tersedia dengan harga di bawah $30 dan Raspbian Jessie mendukungnya langsung.

Saya juga mencoba Amazon Dash Wand baru tetapi tidak berbicara dengan item yang dipindai dan memerlukan koneksi Internet untuk bekerja.

Idenya adalah untuk memindai item dan membuat kueri Raspberry database internal kode UPC dan kemudian mengucapkan deskripsi produk menggunakan text-to-speech.

Untuk membuat unit sekecil mungkin, saya ingin menggunakan Raspberry Pi Zero. Saya juga ingin menjalankan unit dari daya baterai juga.

Untuk memenuhi persyaratan ini beberapa pengorbanan diperlukan. Karena Zero tidak memiliki jack audio eksternal, saya menggunakan kembali desain audio dari proyek "Earthquake Pi" saya karena biayanya rendah (sekitar $6) dan sangat kecil. Bergantian, mengganti "Satu Transistor Audio untuk Pi Zero" mungkin.

Untuk pemindai Kode Batang Laser, saya menemukannya dari DX.com. Ini dimatikan dari USB Raspberry dan harganya sekitar $25. (lihat Bagian di bawah)

Langkah 1: PERBARUI

Dengan kedatangan Raspberry Pi Zero W, saya akan beralih ke sana. Semuanya di sini sama, kecuali Anda perlu mengatur koneksi WiFi ke Pi. Ini berarti Anda tidak memerlukan hub USB untuk Zero untuk penyiapan dan penggunaan.

Anda dapat mengatur WiFi menggunakan:

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

Tahukah kamu?

Jika Anda menginstal Raspbian Jessie pada kartu SD menggunakan PC Windows, Anda dapat membuat dua file pada kartu tersebut untuk mengonfigurasi akses WiFi dan SSH sebelum Anda mem-bootnya di Raspberry?

Untuk ini, anggap kartu SD Anda saat ini terpasang sebagai K: di PC Anda:

1) Instal gambar Raspbian Jessie terbaru ke SD. Untuk proyek ini, Jessie Lite harus berfungsi.

www.raspberrypi.org/downloads/raspbian/

2) Dengan notepad, buat file bernama "ssh" dan gunakan Save As "All files" ke K:\ssh

File dapat berisi apa saja. Itu nama file yang penting. TIDAK BOLEH “ssh.txt”!!!

3) Dengan notepad, buat file bernama "wpa_supplicant.conf" dengan mengikuti:

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

jaringan={

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

Gunakan Save As “All files” ke K:\wpa_supplicant.conf Sekali lagi, jangan sampai Notepad mengubahnya menjadi “wpa_supplicant.conf.txt”!!

Saat Anda mem-boot Raspberry pertama kali, Jessie akan mencari ini dan terhubung ke Wifi Anda. Anda harus melihat pada Router Anda untuk alamat IP, karena sudah ditetapkan secara otomatis.

Langkah 2: Daftar Bagian

  • Raspberry Pi Zero (atau Raspberry Pi apa pun, jika ukuran tidak menjadi masalah)
  • Pemindai kode batang Laser USB

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

  • Untuk Raspi Zero, tambahkan Amplifier Kelas D Adafruit I2S 3Whttps://www.adafruit.com/products/3006
  • Pembicara kecil. (Untuk Pi 2, 3, gunakan amp & speaker eksternal.)https://www.adafruit.com/product/1890
  • Adaptor USB Mikro ke USB OTGhttps://www.adafruit.com/products/2910
  • Paket baterai USB 5V 1Amp seperti
  • Kabel USB ke micro USB untuk paket baterai.
  • Hub USB & Ethernet (setidaknya untuk pekerjaan pengaturan awal, tidak diperlukan untuk Zero W atau Raspi 2, 3)https://www.adafruit.com/products/2992
  • Perangkat lunak dari GITHUB:

Langkah 3: Pembaca Kode Batang Laser USB

Pembaca Kode Batang Laser USB
Pembaca Kode Batang Laser USB

Pembaca kode batang laser lebih memaafkan dalam kemampuan mereka untuk memindai label UPC daripada kamera. Mereka juga bekerja dengan baik bahkan di label dengan penerangan yang buruk atau ditempatkan dengan buruk.

Anda akan memerlukan adaptor mikro USB ke USB untuk menyambungkannya ke Zero.

Pegangan tangan dan pelatuk pemindai membuatnya mudah digunakan.

Ini juga memberikan umpan balik ketika berhasil memindai label.

Yang Harus Dilakukan di Masa Depan:

Dalam desain akhir, saya akan memotong kabel untuk memperpendeknya dan menyolder langsung ke pin USB di Zero untuk mengurangi ukuran dan kemungkinan kegagalan konektor. Nol dan baterai akan dipasang langsung ke bagian bawah pegangan pemindai dalam wadah cetak 3D.

Langkah 4: Basis Data UPC

Ini adalah bagian proyek yang paling tertutup, karena ada jutaan kode UPC dan sangat sedikit basis data sumber terbuka yang tersedia untuk diunduh. Sayangnya, sebagian besar database UPC agak mahal dan memerlukan konektivitas internet.

Saya dapat menggabungkan beberapa basis data sumber terbuka (sumber dalam Lampiran di bawah), tetapi bahkan dengan hampir 700.000 item di dalamnya, banyak sekali yang hilang.

Untuk tujuan ini, saya telah melakukan dua hal; salah satunya adalah fokus pada barang belanjaan secara khusus dan yang lainnya adalah menambahkan server web ke Raspberry untuk memungkinkan penambahan kode UPC baru secara manual, meskipun, ini membutuhkan setidaknya konektivitas jaringan lokal.

Yang Harus Dilakukan di Masa Depan:

Saya akan menjadikan Zero W sebagai "hotspot" sehingga Anda dapat menghubungkannya di mana saja untuk menambahkan kode UPC baru.

Langkah 5: Text-to-Speech

Saya menggunakan program text to speech yang disebut “Flite”, karena memiliki kompromi terbaik antara kualitas suara dan kecepatan konversi di Zero. Yang lain terdengar sedikit lebih baik, tetapi terlalu lambat untuk dikonversi.

Anda juga dapat melihat tutorial Adafruit:

Perhatikan bahwa perlu sedikit "pelatihan telinga" untuk membiasakan diri dengan intonasi bicara, tetapi itu tidak terlalu buruk.

Memindai item yang sama lagi akan mengulangi audio.

ToDo Masa Depan

Mungkin ditambah headphone jack agar memudahkan manula mendengar suara di tempat bising.

Langkah 6: Daya Baterai

Sistem dapat dijalankan dari baterai USB 5V, seperti yang digunakan untuk mengisi ulang ponsel.

Tangkapannya adalah ketika Anda mencabut baterai atau baterai mati, Pi akan macet dengan kemungkinan merusak drive SD.

Untuk mengatasi ini, diperlukan tombol yang menjalankan perintah shutdown. Saya mungkin akan menggunakan yang seperti ini:

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

(Ya … "Tugas Masa Depan!" yang lain!)

Langkah 7: Bagian I - Menambahkan Audio ke Pi Zero

Bagian I - Menambahkan Audio ke Pi Zero
Bagian I - Menambahkan Audio ke Pi Zero
Bagian I - Menambahkan Audio ke Pi Zero
Bagian I - Menambahkan Audio ke Pi Zero
Bagian I - Menambahkan Audio ke Pi Zero
Bagian I - Menambahkan Audio ke Pi Zero

(Lewati bagian ini jika tidak menggunakan Zero!)

Pada Pi Zero, Anda perlu menambahkan audio eksternal, karena tidak built-in. Saya menggunakan “Adafruit I2S 3W Amplifier breakout MAX98357A” yang murah

Ini memerlukan pengaturan menggunakan tutorial luar biasa Adafruit di:

Seperti yang ditunjukkan di bagian pengkabelan dari tutorial, sambungkan:

• Amp Vin ke Raspi Zero Pi 5V• Amp GND ke Raspi Zero Pi GND • Amp DIN ke Raspi Zero Pi #21 • Amp BCLK ke Raspi Zero Pi #18 • Amp LRCLK ke Raspi Zero Pi #19

Sambungkan speaker kecil ke kabel audio di papan.

Pi Zero Adafruit Audio Software SetupJuga ditampilkan dalam tutorial setup software Adafruit, jalankan perintah CURL di bawah ini:

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

Setelah reboot, uji audio menggunakan speaker-test:

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

Jika Anda memiliki masalah, kembali melalui tutorial Adafruit mulai dari ikhtisar. Anda mungkin perlu melalui langkah-langkah "Instalasi terperinci" dalam tutorial untuk memverifikasi semua file yang diperbarui.

Langkah Penting yang Diperlukan untuk Zero & Max98357 Audio: Secara default, audio ALSA hanya berfungsi di Stereo sementara Flite text-to-speech adalah mono. Juga, audio memiliki "muncul" di dalamnya setiap kali mulai diputar.

(Lihat:

Anda harus melakukan hal berikut:

1) Tambahkan baris ke /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay=i2s-mmap

2) Ganti /etc/asound.conf

$ sudo nano /etc/asound.conf

pcm.hifiberry { ketik hw card 0 } pcm.!default { ketik plug slave.pcm "dmixer" } pcm.dmixer { ketik dmix ipc_key 1024 slave { pcm "hifiberry" channels 2 } } ctl.dmixer { ketik hw card 0 }

3) Nyalakan ulang Pi Anda.

Coba tes Speaker lagi. Seharusnya terdengar lebih baik sekarang. Setelah Anda menyelesaikan tutorial penyiapan termasuk tes audio, maka suara seharusnya sudah siap.

Perhatikan bahwa Anda mungkin ingin menambahkan jack earphone untuk audio, jika Anda membawanya ke toko kelontong atau lingkungan yang bising.

Langkah 8: Bagian II – Instalasi Perangkat Lunak

Ini mengasumsikan Anda sudah menginstal Raspbian Jessie dan dapat mengakses baris perintah Linux. Anda tidak memerlukan Raspbian versi GUI, tetapi boleh digunakan.

Anda TIDAK memerlukan pemindai USB terpasang saat ini, jika Anda memerlukan port USB untuk Ethernet atau keyboard/mouse.

Pastikan OS Anda mutakhir:

$ sudo apt-get update$ sudo apt-get upgrade

Dari baris perintah, buka direktori home pi dan unduh repositori GITHUB:

$ cd /home/pi$ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $cd TalkingBarcodeReader $./install. NS

Ini akan memakan waktu, terutama jika ini adalah pertama kalinya dan server web dan PHP perlu diinstal atau diperbarui. Jika perlu, Anda dapat menjalankan ini lebih dari sekali. Antara lain, ini menginstal file barcode dan database UPC ke: /var/www/html/upc

Selanjutnya, edit /etc/rc.local dan tambahkan baris berikut sebelum "exit 0"

$ sudo nano /etc/rc.local

fi sudo /var/www/html/upc/bin/run.sh exit 0

Setelah instalasi selesai, matikan Pi Anda dan colokkan pembaca Barcode USB dan mulai ulang.

$ sudo matikan sekarang

Nyalakan kembali dan Anda akan mendengar pidato singkat tentang startup.

Jika demikian, coba pindai kode batang dari barang belanjaan. Jika semuanya berjalan dengan baik, Anda harus mendengarnya mengucapkan item tersebut (atau mengucapkan "Tidak Ditemukan"). Jika tidak, periksa panduan pemecahan masalah berikutnya.

Langkah 9: Pemecahan Masalah

Penyelesaian masalah
Penyelesaian masalah

Jika Anda tidak mendengar suara apa pun, Anda perlu mencoba perintah berikut:

1) Pastikan audio text-to-speech berfungsi:

$ sudo flite -suara awb -t "pengujian"

Jika Anda mendapatkan kesalahan, pastikan flite telah diinstal:

$ sudo apt install flite

Jika Anda mendapatkan kesalahan berikut, pastikan Anda memperbarui /boot/config.txt dan /etc/asound.conf yang ditampilkan di bagian Pengaturan Audio di atas pada Raspi Zero: audio_open_alsa: gagal menyetel jumlah saluran ke 1. Argumen tidak valid.

Jika Anda tidak mendapatkan kesalahan dan tidak ada suara, pastikan audio Raspberry Anda berfungsi.

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

1) Anda mungkin perlu memaksa audio keluar dari jack audio: (lihat gbr.1 di atas)

$ sudo raspi-config -> 7 Opsi Lanjutan -> Audio A4

2) Setelah Anda memverifikasi audio dan text-to-speech dengan baik, periksa pembaca kode batang:

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

Anda akan melihat nomor kode batang numerik ditampilkan saat Anda memindai kode batang. (Program pengujian TIDAK menyertakan output audio atau koneksi database.)

3) Jika semua ini baik, maka periksa file “nohup.out” untuk pesan kesalahan:

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

Kemungkinan masalah adalah paket yang hilang atau izin yang buruk (atau BUG dalam kode!). Pastikan OS Anda mutakhir dan jalankan kembali install.sh.

Mudah-mudahan, Anda sudah bekerja sekarang!

Langkah 10: Bagian III – Server Web

Bagian III – Server Web
Bagian III – Server Web

Karena ada JUTAAN kode UPC dan sebagian besar basis data yang tersedia untuk umum (yaitu gratis) hanya sebagian kecil dari kode, proyek ini berfokus pada kode UPC untuk bahan makanan. Ini mencakup beberapa ratus ribu item, tetapi banyak, banyak yang tidak akan ditemukan.

Jika Anda perlu menambah atau memperbarui Database UPC, ada dua program yang tersedia; satu baris perintah dan satu browser web. (ganti angka dengan nomor item UPC Anda)

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

$ sudo./addDB.sh 01234567890 "Item baru saya"

Ini akan menambahkan catatan ke database. Jika tidak, disarankan untuk menggunakan fungsi DB browser web.

Untuk GUI Server Web, Anda memerlukan alamat IP raspberry Anda.

Untuk menemukan alamat IP, Anda dapat menggunakan:

$ nama host -I 192.168.1.108

Dari browser PC, buka: https://192.168.1.108/upc/Anda akan melihat layar yang mirip dengan yang ada di Gbr.2 di atas.

Jika demikian, Anda dapat menambah/memperbarui dan menghapus catatan. Navigasikan ke Halaman Terakhir menggunakan tombol ('>|') "catatan terakhir" untuk melihat catatan terbaru Anda saat ditambahkan ke akhir database.

KEAMANANCATATAN bahwa layanan web ini tidak aman, (tidak ada otentikasi, tidak ada SSL), jadi sebaiknya jangan memaparkannya ke Internet publik. (Tapi karena tidak diatur sebagai Titik Akses WiFi, aman untuk dibawa ke toko.)

Padahal, karena tidak ada data pribadi di dalamnya, hal terburuk yang bisa terjadi adalah seseorang merusak data UPC.

Anda juga dapat membatasi akses ke alamat IP tertentu sehingga tidak ada orang lain yang bisa masuk. Cukup ganti IP di sini dengan yang ingin Anda izinkan. Semua orang lain akan diblokir untuk mengakses:

$ sudo vi /etc/lightpd/lightpd.conf

$HTTP["remoteip"] =~ "127.0.0.1|192.168.1.108" { url.access-deny = ("") } $ sudo /etc/init.d/lighttpd restart

Juga, GANTI kata sandi PI default! Semua orang tahu defaultnya adalah pi/raspberry

$ passwd

Langkah 11: Memecahkan Masalah Server Web

Memecahkan masalah Server Web
Memecahkan masalah Server Web
Memecahkan masalah Server Web
Memecahkan masalah Server Web

Menggunakan browser Anda, buka alamat IP Raspberry Anda, seperti ini:

192.168.1.108/

Anda akan melihat layar default dari /var/www/html/index.html (Gbr.1 di atas)

Pastikan juga bahwa server web sedang berjalan:

$ ps -ef|grep lighttpd

Untuk memverifikasi PHP baik, buat file uji php:

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

Lalu pergi ke

Anda akan melihat layar seperti Gbr.2 di atas

Jika Anda mendapatkan kesalahan atau layar kosong, periksa kesalahan di

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

Sekali lagi, menjalankan ulang install.sh dapat memperbaiki dependensi yang hilang.

Langkah 12: Lampiran

TERIMA KASIH yang sebesar-besarnya ditujukan kepada yang berikut ini karena telah menyediakan database UPC yang besar.

Buka DB UPC Kelontong

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

Buka Data DB

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

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

Terima kasih kepada EasyUI untuk web sederhana CRUD GUI

www.jeasyui.com/index.php

Direkomendasikan: