Spisu treści:
- Krok 1: AKTUALIZACJA
- Krok 2: Lista części
- Krok 3: Laserowy czytnik kodów kreskowych USB
- Krok 4: Baza danych UPC
- Krok 5: Zamiana tekstu na mowę
- Krok 6: Moc baterii
- Krok 7: Część I – Dodawanie dźwięku do Pi Zero
- Krok 8: Część II – Instalacja oprogramowania
- Krok 9: Rozwiązywanie problemów
- Krok 10: Część III – Serwer WWW
- Krok 11: Rozwiązywanie problemów z serwerem internetowym
- Krok 12: Dodatek
Wideo: Mówiący czytnik kodów kreskowych Raspberry Pi: 12 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Rys.1 Skaner kodów kreskowych z DX.com
Przegląd
Aktualizacja: dostępne jest krótkie demo wideo
Moja mama nie jest już w stanie czytać etykiet na artykułach spożywczych, więc szukałam rozwiązań. Po tym, jak zobaczyłem, że czytniki kodów kreskowych dla niewidomych zarabiają wiele setek dolarów, chciałem zobaczyć, co można zrobić za pomocą Raspberry Pi i czytnika kodów kreskowych USB.
Inną kluczową imitacją było to, że powinno to działać BEZ połączenia z Internetem (na przykład w sklepie lub w domu znajomego). Tak więc baza danych i zamiana tekstu na mowę musiały być samowystarczalne.
Wypróbowałem wersję czytnika kodów kreskowych opartą na kamerze, ale oświetlenie i pozycja kamery powodowały problemy z niezawodnością dla kogoś, kto nie może wyraźnie widzieć. Wymagały one również wzroku do skonfigurowania i korzystania z aplikacji. Więc przerzuciłem się na czytnik kodów kreskowych USB Laser, zwłaszcza, że są teraz dostępne za mniej niż 30 USD, a Raspbian Jessie obsługuje je od razu po wyjęciu z pudełka.
Wypróbowałem również nową różdżkę Amazon Dash Wand, ale nie odczytuje ona zeskanowanego przedmiotu i wymaga połączenia z Internetem.
Pomysł polegał na zeskanowaniu przedmiotu i zleceniu Raspberry zapytaniu wewnętrznej bazy danych kodów UPC, a następnie wypowiedzeniu opisu produktu za pomocą zamiany tekstu na mowę.
Aby urządzenie było jak najmniejsze, chciałem użyć Raspberry Pi Zero. Chciałem również odłączyć urządzenie od zasilania z baterii.
Aby spełnić te wymagania, konieczne były pewne kompromisy. Ponieważ Zero nie ma zewnętrznego gniazda audio, ponownie wykorzystałem projekt audio z mojego projektu „Earthquake Pi”, ponieważ był tani (około 6 USD) i bardzo mały. Alternatywnie, możliwe jest zastąpienie „One Transistor Audio for Pi Zero”.
W przypadku skanera laserowego kodów kreskowych znalazłem jeden z DX.com. Jest zasilany z Raspberry USB i kosztuje około 25 USD. (patrz części poniżej)
Krok 1: AKTUALIZACJA
Wraz z pojawieniem się Raspberry Pi Zero W zamierzam się do niego przełączyć. Wszystko tutaj jest takie samo, z wyjątkiem tego, że musisz skonfigurować połączenie Wi-Fi z Pi. Oznacza to, że nie będziesz potrzebować koncentratora USB do konfiguracji i użytkowania Zero.
Możesz skonfigurować WiFi za pomocą:
thepihut.com/blogs/raspberry-pi-tutorials/…
Czy wiedziałeś?
Jeśli zainstalujesz Raspbian Jessie na karcie SD za pomocą komputera z systemem Windows, możesz utworzyć dwa pliki na karcie, aby skonfigurować dostęp Wi-Fi i SSH przed uruchomieniem go na Raspberry?
W tym celu załóżmy, że twoja karta SD jest obecnie zamontowana jako K: na twoim komputerze:
1) Zainstaluj najnowszy obraz Raspbian Jessie na karcie SD. W tym projekcie Jessie Lite powinno działać.
www.raspberrypi.org/downloads/raspbian/
2) Za pomocą notatnika utwórz plik o nazwie „ssh” i użyj Zapisz jako „Wszystkie pliki” do K: / ssh
Plik może zawierać wszystko. Ważna jest nazwa pliku. NIE MOŻE być „ssh.txt”!!!
3) Za pomocą notatnika utwórz plik o nazwie „wpa_supplicant.conf” z następującymi danymi:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1
sieć={
ssid = "moje SSID" psk = "moje hasło" key_mgmt = WPA-PSK }
Użyj Zapisz jako „Wszystkie pliki” do K:\wpa_supplicant.conf Ponownie, nie pozwól, aby Notatnik zmienił go na „wpa_supplicant.conf.txt”!!
Gdy uruchomisz Raspberry po raz pierwszy, Jessie poszuka ich i połączy się z Wifi. Musisz jednak poszukać adresu IP na routerze, ponieważ jest on automatycznie przypisywany.
Krok 2: Lista części
- Raspberry Pi Zero (lub dowolne Raspberry Pi, jeśli rozmiar nie stanowi problemu)
-
Laserowy skaner kodów kreskowych USB
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Dla Raspi Zero dodaj wzmacniacz klasy D Adafruit I2S 3W
- Mały głośnik. (Dla Pi 2, 3 użyj zewnętrznego wzmacniacza i głośnika.)
- Adapter USB Micro na USB OTGhttps://www.adafruit.com/products/2910
- Akumulator USB 5V 1Amp taki jak
- Kabel USB do micro USB do akumulatora.
- Hub USB i Ethernet (przynajmniej do wstępnej konfiguracji, nie jest potrzebny dla Zero W lub Raspi 2, 3)https://www.adafruit.com/products/2992
- Oprogramowanie z GITHUB:
Krok 3: Laserowy czytnik kodów kreskowych USB
Laserowe czytniki kodów kreskowych są bardziej wybaczające w swojej zdolności do skanowania etykiety UPC niż aparaty fotograficzne. Sprawdzają się również dobrze nawet w słabo oświetlonych lub źle umieszczonych etykietach.
Aby podłączyć go do Zero, będziesz potrzebować przejściówki USB na USB.
Uchwyt i spust skanera ułatwiają obsługę.
Przekazuje również informację zwrotną, gdy pomyślnie zeskanuje etykietę.
Przyszłe zadania do wykonania:
W ostatecznym projekcie skróciłbym kabel, aby go skrócić i przylutował bezpośrednio do pinów USB w Zero, aby zmniejszyć rozmiar i prawdopodobieństwo awarii złącza. Zero i bateria byłyby przymocowane bezpośrednio do dolnej części uchwytu skanera w obudowie wydrukowanej w 3D.
Krok 4: Baza danych UPC
Jest to najsłabiej objęta częścią projektu, ponieważ istnieją dosłownie miliony kodów UPC i bardzo niewiele baz danych o otwartym kodzie źródłowym dostępnych do pobrania. Niestety większość baz danych UPC jest dość droga i wymaga połączenia z Internetem.
Udało mi się zebrać razem kilka baz danych o otwartym kodzie źródłowym (źródła w załączniku poniżej), ale nawet przy prawie 700 000 pozycji brakuje ogromnej liczby.
W tym celu zrobiłem dwie rzeczy; jednym jest skupienie się na artykułach spożywczych, a drugim jest dodanie serwera WWW do Raspberry, aby umożliwić ręczne dodawanie nowych kodów UPC, chociaż wymaga to przynajmniej lokalnej łączności sieciowej.
Przyszłe zadania do wykonania:
Uczyniłbym Zero W „hotspotem”, aby można było połączyć się z nim w dowolnym miejscu, aby dodać nowe kody UPC.
Krok 5: Zamiana tekstu na mowę
Użyłem programu zamiany tekstu na mowę o nazwie „Flite”, ponieważ miał najlepszy kompromis między jakością głosu a szybkością konwersji na Zero. Inne brzmiały trochę lepiej, ale były zbyt wolne, by je nawrócić.
Możesz również sprawdzić samouczek Adafruit:
Pamiętaj, że przyzwyczajenie się do odmiany mowy zajmie trochę „treningu słuchu”, ale nie jest tak źle.
Ponowne skanowanie tego samego elementu spowoduje powtórzenie dźwięku.
Przyszłe zadania
Może dodać gniazdo słuchawkowe, aby ułatwić seniorom słyszenie głosu w hałaśliwych miejscach.
Krok 6: Moc baterii
System może być zasilany z baterii USB 5V, takiej jak używana do ładowania telefonów komórkowych.
Połów polega na tym, że po odłączeniu baterii lub jej wyczerpaniu, Pi ulegnie awarii z szansą, że uszkodzi dysk SD.
Aby rozwiązać ten problem, potrzebny jest przycisk uruchamiający polecenie zamknięcia. Prawdopodobnie użyję takiego:
www.element14.com/community/docs/DOC-78055…
(Tak… kolejne „Do zrobienia w przyszłości!”)
Krok 7: Część I – Dodawanie dźwięku do Pi Zero
(Pomiń tę część, jeśli nie używasz Zero!)
W Pi Zero musisz dodać zewnętrzny dźwięk, ponieważ nie jest on wbudowany. Użyłem taniego „Adafruit I2S 3W Amplifier breakout MAX98357A”
Wymaga to konfiguracji za pomocą doskonałego samouczka Adafruit pod adresem:
Jak pokazano w części samouczka poświęconej okablowaniu, połącz:
• Wzmacniacz Vin do Raspi Zero Pi 5 V• Wzmacniacz GND do Raspi Zero Pi GND • Wzmacniacz DIN do Raspi Zero Pi #21 • Wzmacniacz BCLK do Raspi Zero Pi #18 • Wzmacniacz LRCLK do Raspi Zero Pi #19
Podłącz mały głośnik do przewodów audio na płycie.
Konfiguracja oprogramowania Pi Zero Adafruit Audio Również pokazana w samouczku konfiguracji oprogramowania Adafruit, wykonaj poniższe polecenie CURL:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | grzmotnąć
Po ponownym uruchomieniu przetestuj dźwięk za pomocą testu głośników:
$ speaker-test -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav
Jeśli masz problemy, wróć do samouczka Adafruit, zaczynając od przeglądu. Może być konieczne przejście przez kroki „Instalacji szczegółowej” w samouczku, aby zweryfikować wszystkie zaktualizowane pliki.
Ważne wymagane kroki dla dźwięku Zero i Max98357: Domyślnie dźwięk ALSA działa tylko w trybie stereo, podczas gdy zamiana tekstu na mowę Flite jest mono. Ponadto dźwięk ma „wyskakiwanie” za każdym razem, gdy zaczyna grać.
(Patrz:
Musisz wykonać następujące czynności:
1) Dołącz linię do /boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay=i2s-mmap
2) Zastąp /etc/asound.conf
$ sudo nano /etc/asound.conf
pcm.hifiberry { typ karty hw 0 } pcm.!default { typ wtyczki slave.pcm "dmixer" } pcm.dmixer { typ dmix ipc_key 1024 slave { pcm "hifiberry" kanały 2 } } ctl.dmixer { typ karty hw 0 }
3) Zrestartuj swoje Pi.
Spróbuj ponownie wykonać test głośnika. Teraz powinno brzmieć lepiej. Po ukończeniu samouczka konfiguracji, w tym testów audio, dźwięk powinien być gotowy.
Pamiętaj, że możesz chcieć dodać gniazdo słuchawkowe do dźwięku, jeśli zabierzesz to do sklepu spożywczego lub hałaśliwego otoczenia.
Krok 8: Część II – Instalacja oprogramowania
Zakłada się, że masz już zainstalowany Raspbian Jessie i masz dostęp do wiersza poleceń systemu Linux. Nie potrzebujesz wersji Raspbian z graficznym interfejsem użytkownika, ale jest w porządku.
W tej chwili NIE potrzebujesz podłączonego skanera USB, na wypadek gdybyś potrzebował portu USB do Ethernetu lub klawiatury/myszy.
Upewnij się, że Twój system operacyjny jest aktualny:
$ sudo apt-get update$ sudo apt-get upgrade
Z wiersza poleceń przejdź do katalogu domowego pi i pobierz repozytorium GITHUB:
$ cd /home/pi$ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. CII
Zajmie to trochę czasu, szczególnie jeśli jest to pierwszy raz, a serwer WWW i PHP muszą zostać zainstalowane lub zaktualizowane. Jeśli to konieczne, możesz uruchomić to więcej niż raz. Między innymi instaluje pliki kodów kreskowych i bazę danych UPC do: /var/www/html/upc
Następnie edytuj /etc/rc.local i dodaj następującą linię przed „exit 0”
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh wyjście 0
Po zakończeniu instalacji wyłącz Pi, podłącz czytnik kodów kreskowych USB i uruchom ponownie.
$ wyłącz sudo teraz
Włącz go ponownie i powinieneś usłyszeć krótką przemowę startową.
Jeśli tak, spróbuj zeskanować kod kreskowy z artykułu spożywczego. Jeśli wszystko poszło dobrze, powinieneś usłyszeć, jak mówi przedmiot (lub mówi „Nie znaleziono”). W przeciwnym razie sprawdź następny przewodnik rozwiązywania problemów.
Krok 9: Rozwiązywanie problemów
Jeśli nie słyszysz żadnych dźwięków, musisz wypróbować następujące polecenia:
1) Sprawdź, czy dźwięk zamiany tekstu na mowę działa:
$ sudo flite -voice awb -t "testowanie"
Jeśli pojawi się błąd, upewnij się, że flite został zainstalowany:
$ sudo apt install flite
Jeśli pojawi się następujący błąd, upewnij się, że zaktualizowałeś /boot/config.txt i /etc/asound.conf pokazane w sekcji Audio Setup powyżej w Raspi Zero: audio_open_alsa: nie udało się ustawić liczby kanałów na 1. Nieprawidłowy argument.
Jeśli nie pojawi się błąd i dźwięk, upewnij się, że dźwięk Raspberry działa.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Może być konieczne wymuszenie wyjścia audio z gniazda audio: (patrz rys. 1 powyżej)
$ sudo raspi-config -> 7 opcji zaawansowanych -> A4 Audio
2) Po sprawdzeniu poprawności dźwięku i zamiany tekstu na mowę sprawdź czytnik kodów kreskowych:
cd /var/www/html/upc/binsudo python./test.py
Powinieneś zobaczyć numeryczny numer kodu kreskowego wyświetlany podczas skanowania kodu kreskowego. (Program testowy NIE obejmuje wyjścia audio ani połączeń z bazą danych.)
3) Jeśli wszystko jest w porządku, sprawdź plik „nohup.out” pod kątem komunikatów o błędach:
cd /var/www/html/upc/binsudo kot nohup.out
Prawdopodobnymi problemami są brakujące pakiety lub złe uprawnienia (lub BŁĘDY w kodzie!). Upewnij się, że system operacyjny jest aktualny i ponownie uruchom plik install.sh.
Mam nadzieję, że już pracujesz!
Krok 10: Część III – Serwer WWW
Ponieważ istnieją MILIONY kodów UPC, a większość publicznie (tj. bezpłatnych) dostępnych baz danych to tylko niewielki podzbiór kodów, ten projekt skupił się na kodach UPC do artykułów spożywczych. Zawiera kilkaset tysięcy pozycji, ale wiele, wiele nie zostanie odnalezionych.
Jeśli chcesz dodać lub zaktualizować bazę danych UPC, dostępne są dwa programy; jeden z wiersza poleceń i jeden z przeglądarki internetowej. (zastąp cyfry numerem pozycji UPC)
$ cd /var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 „Mój nowy przedmiot”
Spowoduje to dodanie rekordu do bazy danych. W przeciwnym razie sugeruje się skorzystanie z funkcji DB przeglądarki internetowej.
Do interfejsu graficznego serwera WWW potrzebny jest adres IP maliny.
Aby znaleźć adres IP, możesz użyć:
$ nazwa hosta -I 192.168.1.108
W przeglądarce na komputerze wejdź na: https://192.168.1.108/upc/ Powinieneś zobaczyć ekran podobny do tego na Rys.2 powyżej.
Jeśli tak, możesz dodawać/aktualizować i usuwać rekordy. Przejdź do ostatniej strony za pomocą przycisku ('>|') „ostatni rekord”, aby zobaczyć najnowsze rekordy dodawane na końcu bazy danych.
BEZPIECZEŃSTWOUWAGA, że ta usługa sieci Web nie jest zabezpieczona (bez uwierzytelniania, bez SSL), więc najlepiej nie udostępniać jej w publicznym Internecie. (Ale ponieważ nie jest skonfigurowany jako punkt dostępu Wi-Fi, można go bezpiecznie zabrać do sklepu).
Chociaż, ponieważ nie ma na nim prywatnych danych, najgorsze, co może się stać, to ktoś, kto manipuluje danymi UPC.
Możesz także ograniczyć dostęp do określonych adresów IP, aby nikt inny nie mógł się do niego dostać. Po prostu zastąp adresy IP tymi, na które chcesz zezwolić. Wszyscy pozostali zostaną zablokowani przed dostępem:
$ 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
ZMIEŃ również domyślne hasło PI! Wszyscy wiedzą, że domyślna wartość to pi/malin
$ passwd
Krok 11: Rozwiązywanie problemów z serwerem internetowym
Korzystając z przeglądarki przejdź do adresu IP Twojego Raspberry, w ten sposób:
192.168.1.108/
Powinieneś zobaczyć domyślny ekran z /var/www/html/index.html (rys.1 powyżej)
Upewnij się również, że serwer WWW działa:
$ ps -ef|grep lighttpd
Aby sprawdzić, czy PHP jest dobre, utwórz plik testowy php:
$ sudo nano /var/www/html/phpinfo.php
Następnie przejdź do
Powinieneś zobaczyć ekran jak na Rys.2 powyżej
Jeśli pojawią się błędy lub puste ekrany, poszukaj błędów w
$ sudo cat /var/log/lighttpd/error.log
Ponowne uruchomienie pliku install.sh może naprawić brakujące zależności.
Krok 12: Dodatek
WIELKIE PODZIĘKOWANIA należą się następującym osobom za udostępnienie dużej bazy danych UPC.
Otwórz sklep spożywczy UPC DB
www.grocery.com/open-grocery-database-proje…
Otwarta baza danych
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Dzięki EasyUI dla prostego webowego CRUD GUI
www.jeasyui.com/index.php
Zalecana:
Superstock (zapas kontrolowany przez skaner kodów kreskowych): 5 kroków
Superstock (zapas kontrolowany przez skaner kodów kreskowych): W tym przewodniku opowiem Ci, jak zbudować Superstock, mój szkolny projekt dla 1MCT w Howest. Koncepcja polega na stworzeniu przyjaznej dla użytkownika bazy danych, do której można uzyskać dostęp za pośrednictwem strony internetowej, aby zliczyć, co masz w magazynie (w moim przypadku odzież dla
Grawer kodów kreskowych Apple (Photonics Hackathon Phablabs): 3 kroki
Grawer kodów kreskowych Apple (Photonics Hackathon Phhablabs): Cześć wszystkim, W ramach naszego wyzwania Phablabs Photonics poproszono nas o stworzenie urządzenia zdolnego do zastąpienia naklejek na owocach. Czy Ty też nienawidzisz naklejek z owocami? A czy chciałbyś dokonać przyjaznej dla środowiska zmiany? Następnie chcielibyśmy wpisać
SYSTEM POS DLA SKLEPÓW, SPOŻYWCZYCH I CENTRÓW SERWISOWYCH EXCEL Z wykorzystaniem kodów kreskowych: 7 kroków
SYSTEM POS DLA SKLEPÓW, SPRZEDAŻY I CENTRÓW USŁUGOWYCH FIRMY EXCEL Z wykorzystaniem kodów kreskowych: W tym blogu przedstawiam Państwu jak stworzyć prosty system POS (point of sales) dla małych sklepów spożywczych i punktów usługowych. Dzięki tej metodzie możesz zarządzać następującymi obiektami bez specjalnego oprogramowania lub drogiego sprzętu. przeciwko Iss
Skaner kodów kreskowych USB (Raspberry Pi): 4 kroki
Skaner kodów kreskowych USB (Raspberry Pi): Podstawowy samouczek dotyczący konfiguracji skanera kodów kreskowych USB z Raspberry Pi
Tani obiektyw makro do iPhone'a do skanowania kodów kreskowych: 6 kroków (ze zdjęciami)
Tani obiektyw makro iPhone'a do skanowania kodów kreskowych: Rażącym problemem w aparacie iPhone'a jest jego niezdolność do ustawienia ostrości bliżej niż około 1 stopy. Niektóre rozwiązania dla rynku wtórnego pomagają rozwiązać ten problem, takie jak iClarifi firmy Griffin Technology. To etui na iPhone'a 3G pozwala na małe przesu