Popularny post ethanak Napisano Kwiecień 6, 2021 Popularny post Udostępnij Napisano Kwiecień 6, 2021 Do kompletu z gadającym miernikiem - tym razem suwmiarka. Na początku uwaga: opisywany projekt przewidziany jest do współpracy z suwmiarką Vorel. Inne suwmiarki mogą działać lub nie. O ile układ pinów w gnieździe jest dla wszystkich urządzeń taki sam, o tyle wtyczka może nie pasować (i raczej nie będzie). Można spróbować oryginalnej wtyczki lub za pomocą OpenSCAD-a przyciąć ją do pożądanych rozmiarów (przykładowy kod zarówno na githubie, jak i w załączniku). Ponieważ istnieje kilka różnych protokołów przesyłania danych z tego typu urządzeń pomiarowych, trzeba się liczyć z tym, że kod programu może nie pasować: o ile funkcja odczytująca pojedynczy bit powinna działać, to zarówno odczyt pakietu jak i funkcja dekodowania pakietu mogą nie działać! I przede wszystkim dobra wiadomość: urządzenie (w obu wersjach) jest przystosowane do obsługi przez niewidomych. Zarówno kod, jak i schemat zostały zamieszczone na githubie, podam więc tylko najważniejsze informacje: Płytka LOLIN32 Lite została wybrana przede wszystkim ze względu na wbudowaną ładowarkę i możliwość pracy bezpośrednio z akumulatora LiPo. Rozwiązanie toru audio jest nienajlepsze (to taki eufemizm), ale działa. Oczywiście zastosowanie lepszego rozwiązania jest mile widziane. Należy tylko pamiętać, że ESP jeśli nie generuje dźwięku ustawia pin audio na zero, i tor audio nie powinien w tym momencie pobierać prądu z akumulatora. Można oczywiście przerobić program tak, aby obsłużyć podłączony dekoder I2S (np. taki) - jeśli ktoś jest zainteresowany a nie potrafi sam tego zrobić proszę dać znać w komentarzu. Aplikacja na telefon - proszę wybaczyć, to mój pierwszy projekt zrobiony w App Inventorze i nie zanosi się na to, aby ich było dużo więcej. Ważne, że działa. Gdyby ktoś chciał napisać swoją lepszą, jej sposób działania (to musi pozostać) jest następujący: Po wczytaniu komunikatu pierwszy znak jest zapamiętywany i ucinany, a do syntezatora wędruje pozostała część tekstu. Po zakończeniu pracy wymagane jest odesłanie zapamiętanego znaku, aby program suwmiarki wiedział kiedy skończyła się mowa. Obsługa suwmiarki realizowana jest jednym przyciskiem. Suwmiarka może pracować w trzech możliwych trybach: odczyt ciągły (co sekundę), odczyt zmian (jeśli zmieniła się wartość lub po naciśnięciu przycisku) oraz odczyt na żądanie (po wciśnięciu przycisku). Zmianę trybu wymusza się poprzez dłuższe (ponad 0.5 sekundy) wciśnięcie przycisku. Program odczytuje wynik w milimetrach lub calach (w tym przypadku tylko trzy cyfry po przecinku) rozpoznając, w jakich jednostkach pracuje suwmiarka. Pierwszy odczyt jest anonsowany (milimetry/cale), w następnych jednostka jest pominięta. Ponieważ wynik w milimetrach ma dwa miejsca po przecinku a wynik w calach trzy - łatwo się zorientować, w jakich jednostkach jest podany. Aby włączyć bluetooth i użyć telefonu jako syntezatora mowy, należy trzymać przycisk przy włączaniu urządzenia. Można uzyć dowolnego syntezatora dostępnego dla Androida, ale w przypadku syntezy Google należy liczyć się z dość dużymi opóźnieniami. Związane jest to z samym procesem syntezy dokonywanym na serwerach Google i program nie ma na to wpływu. Przy użyciu ESpeaka lub Vocalizera opóźnienie jest praktycznie niezauważalne. Dobra, tyle teorii. Pomysł siedział mi w głowie od paru lat - od pewnej (niedokończonej zresztą) dyskusji na Majsterkowie. Pierwsze próby były co prawda całkiem udane, ale użycie ESP8266 wymagało dodania konwerterów na wejściu, wyjście audio było takie sobie, a całość wymagała zasilania 5V i podłączana była kablem do suwmiarki. Nie było to specjalnie wygodne, toteż projekt poszedł w zapomnienie. Aż do chwili, kiedy zgłosił się do mnie ktoś kto znalazł mnie przez tamtą dyskusję z Majsterkowa, z pytaniem, czy jestem w stanie zrobić taką "gadającą suwmiarkę". Co prawda z różnych przyczyn nie chciałem podejmować się wykonania całości, ale pomyślałem, że przynajmniej napiszę działający program. To już poszło szybko. Funkcje odczytu pakietu za pomocą wejść analogowych na ESP32 znalazłem na githubie, syntezator miałem gotowy i przetestowany z poprzedniego projektu, więc tu żadnych problemów nie było - program ruszył właściwie tego samego dnia. "Ktosia" odesłałem na nasze forum (bo pomyślałem, że na pewno znajdzie się ktoś kto takie urządzenie zrobi, szczególnie że nie trzeba się martwić działaniem programu), kod wrzuciłem na githuba i zająłem się czymś innym. Tyle, że po chwili owego zajmowania się stwierdziłem, że taka gadająca suwmiarka bardzo by mi się przydała, i postanowiłem spróbować swoich sił w wykonaniu całości. Po krótkim szukaniu znalazłem kilka elementów które kupiłem z myśla o innym projekcie. Przede wszystkim niewielki akumulatorek (być może trochę za mały, ale się sprawdził) oraz mały głośniczek, wymiarami idealnie pasujący do suwmiarki. Lolina miałem co prawda zamontowanego w innym urządzeniu, ale mogłem go przynajmniej dokładnie zmierzyć, a płytka DevKit posłużyła mi do kolejnych eksperymentów. Szybciutko więc znalazłem Lolina na Allegro, i zająłem się projektowaniem obudowy. Po kilku nieudanych próbach doszedłem wreszcie do czegoś, co było już w miarę używalne. I tu uwaga dla kogoś, kto chciałby zrobić takie urządzenie. Zamieszczam co prawda pliki STL i scad, ale są one przygotowane pod konkretne elementy, i wymagane jest użycie wyłącznika i przycisku dokładnie takiego, jak w moim projekcie! Głośnik i akumulator też muszą być takie same! Wracając do rzeczy: wyłącznik i przycisk wlutowane są do kawałków płytki uniwersalnej dociętych tak, że wchodzą w przygotowane prowadnice (wystają ok. 1.5 mm z obu stron). Wzmacniaczyk (to taka szumna nazwa dla jednego tranzystora) umieściłem również na kawałku płytki uniwersalnej przymocowanej tymi samymi śrubkami, które służą do mocowania elementu przytrzymującego głośnik. Jeśli chodzi o sam druk, obudowa musi być wykonana z PETG ze względu na konieczną sprężystość uchwytów przytrzymujących urządzenie na suwmiarce. Dobranie parametrów druku jest zależne od posiadanej drukarki, ale ważne jest aby chłodzenie było minimalne - inaczej uchwyty mogą się odłamać! Pozostałe elementy mogą być z dowolnego materiału (PLA, ABS) z wyjątkiem wtyczki; ta musi być wydrukowana z TPU z warstwą najlepiej 0.1mm (0.2mm pierwsza). Na szczęście moja poczciwa A8 dała sobie radę doskonale (co utwierdza mnie w przekonaniu iż osoba, która kiedyś na forum twierdziła jakoby Anet A8 się nie nadawała do "poważnych rzeczy" była co najmniej w błędzie). Jak widać, urządzenie trzyma się na suwmiarce za pomocą trzech uchwytów (czwarty służy do zabezpieczenia wtyczki przed przypadkowym wypadnięciem) i nie wymaga żadnych przeróbek suwmiarki (poza oczywiście zdjęciem klapki zabezpieczającej gniazdo danych i schowaniem jej w jakieś bezpieczne miejsce). Niestety, rachityczny głośniczek brzmi trochę niespecjalnie... teoretycznie mógłbym sprzęgnąć układ z komputerem i użyć np. speech-dispatchera - tyle, że nie zawsze mam komputer pod ręką. No, komputer komputerem, ale w dzisiejszych czasach każdy ma przecież telefon! Postanowiłem nieco ulepszyć program i pozwolić mu na użycie telefonu z Androidem jako syntezatora mowy. Niestety, na pisaniu czegokolwiek pod Androida to ja się nie znam absolutnie. Na szczęście MIT App Inventor zawiera wszystkie klocki potrzebne do zbudowania takiej aplikacji. Co prawda nie przepadam za składaniem programów z klocków - no, ale na szybko innej możliwości napisania czegoś na Androida raczej nie miałem. Aplikacja jak wyszła tak wyszła - najważniejsze że działa. Na tym mógłbym skończyć, ale zakiełkował mi nowy pomysł. A co, jeśli ktoś nie przepada za doczepianiem dodatkowych pudełeczek do suwmiarki, a zgadza się na kabelek idący choćby właśnie do telefonu? Wystarczyłoby przecież usunąć z mojego programu wbudowany syntezator, a serial BT zastąpić zwykłym serialem... No tak, tylko że w tym przypadku użycie ESP32 to overkill. Akurat pod ręką miałem RPi Pico, i postanowiłem sprawdzić, czy się nada. Pierwsze próby z Serial Terminalem poszły świetnie; telefon co prawda w czasie podłączania twierdził że to pewnie kamera i chciał uruchomić IP Webcama, ale po wyperswadowaniu mu tego połączył się grzecznie z terminalem. Czyli sukces? Akurat. Serial Terminal bardzo ładnie dogadał się z Pico, ale ani wbudowany w Inventora moduł, ani rozszerzenie które podobno łączy się z wszystkimi możliwymi typami Arduino nie chciały gadać z Pico. A gdyby tak Arduino? Z tego co miałem w grę wchodziły tylko UNO i Nano, ze względu na wbudowane USB. Akurat miałem jeden nadmiarowy egzemplarz Nano więc postanowiłem go użyć. Co prawda ktoś tam kiedyś stwierdził, że Arduino jest za wolne ale jakoś mi się nie chciało wierzyć. Podłączyłem, i... Oczywiście. I nic. Na wejściu dostałem sieczkę. Ale to było do przewidzenia; o ile sam procesor powinien moim zdaniem wystarczyć, o tyle przetwornik A/D na Arduinowych ustawieniach jest faktycznie za wolny. Na szczęście nie potrzeba tu precyzyjnego pomiaru - wystarczy stwierdzenie, czy sygnał na wejściu jest w okolicy zera czy powyżej 1V. Po przestawieniu preskalera z 1:128 na 1:16 Arduino zaczął pięknie odbierać pakiety z suwmiarki. Reszta była już prosta. Przycisk został wlutowany bezpośrednio do GND i D3 Arduino (akurat ładnie tam pasuje). Przewód do suwmiarki również został bezpośrednio przylutowany do Arduino. W ten sposób udało mi się zrobić coś, co nie wymaga żadnych dodatkowych elementów (nawet przycisk można pominąć jeśli nie korzystamy z odczytu "na żądanie" - aplikacja pozwala na zmianę trybu na odczyt ciągły lub odczyt zmian). Sama aplikacja na telefon jest podobna do poprzedniej. Obudowę tym razem wydrukowałem z PLA. Mogłaby być mniejsza - ale nie miałem śrubek mniejszych niż M2. Po złożeniu układ działa bez zarzutu z jednym wyjątkiem: pierwszy odczyt po podłączeniu do telefonu może być zniekształcony. Najprawdopodobniej na początku w buforze serial Androida są jakieś śmieci, ale jako że dotyczy to tylko pierwszego odczytu postanowiłem z tym na razie nie walczyć. W ten sposób powstały dwie wersje urządzenia. I o ile pierwsza wymaga trochę indywidualnego podejścia przy złożeniu tego wszystkiego w całość - o tyle druga jest gotowa do użytku i może być wykonana nawet przez kogoś, kto potrafi tylko lutować i wydrukować wtyczkę do suwmiarki (lub ma kumpla z drukarką). A oto suwmiarka w działaniu: Na koniec - wszystkie potrzebne pliki w zipie.roznosci.zip Czyli: pliki stl i scad dla wersji ESP32 pliki stl, scad i ino dla wersji Arduino pliki aia i apk dla wersji Arduino pliki stl i scad wtyczki 19 Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 7, 2021 Udostępnij Kwiecień 7, 2021 @ethanak dzięki za opis kolejnego ciekawego projektu! Wpis został właśnie zaakceptowany i jest już widoczny publicznie 🚀 Link do komentarza Share on other sites More sharing options...
romanro Kwiecień 27, 2022 Udostępnij Kwiecień 27, 2022 Aż dziwne, że tak ciekawy projekt tyle czasu przeleżał. W ubiegłym tygodniu otrzymałem link do pliku na Youtube i absolutnie się zachwyciłem. Jestem zupełnie niewidomy i mam wielu przyjaciół, którym takie udogodnienie bardzo w życiu by pomogło. Z doświadczenia wiem, że pomysł z użyciem syntezatora mowy z telefonu to nienajlepsza droga, głównie dlatego, że większość niewidomych korzysta z Iphone-ów, z uwagi na dobre ich udźwiękowienie. Zatem pozostaje wersja pierwsza. Pogadajmy, czy ktoś z forumowiczów zechce wykonać kilka takich urządzeń. Link do komentarza Share on other sites More sharing options...
ethanak Kwiecień 28, 2022 Autor tematu Udostępnij Kwiecień 28, 2022 15 godzin temu, romanro napisał: większość niewidomych korzysta z Iphone-ów, z uwagi na dobre ich udźwiękowienie. Zatem pozostaje wersja pierwsza. Ale przecież można napisać apkę na iphone - jest nawet chyba wersja Inventora. Ale zgadzam się, pierwsza wersja jest bardziej uniwersalna i rozwojowa. 15 godzin temu, romanro napisał: Pogadajmy, czy ktoś z forumowiczów zechce wykonać kilka takich urządzeń. Jeśli miałbyś jakieś konkrety to wrzuć ogłoszenie do działu "praca", może ktoś będzie zainteresowany. Poza tym skontaktuj się na priv, ja co prawda produkcją się nie zajmuję ale ma się trochę znajomych... 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Popularny post ethanak Maj 28, 2022 Autor tematu Popularny post Udostępnij Maj 28, 2022 Nowa wersja kodu: https://github.com/ethanak/ESP32-suwmiarka Jest trochę zmian, przede wszystkim: wywalone AnalogRead bo w wersji IDE 2.x się nie wyrabiał z czytaniem) dodany odczyt poziomu baterii możliwość współpracy z różnymi zewnętrznymi syntezatorami (m.in. metrówką - nowy kod jeszcze się dopieszcza) Nie publikuję STL-i obudowy ani projektu płytki bo to zależy od użytych elementów (akumulator, głośnik, elementy THT/SMD i takie tam). Jeśli ktoś jest bardzo zainteresowany udostępnię te co mam. 4 Link do komentarza Share on other sites More sharing options...
ethanak Sierpień 15, 2022 Autor tematu Udostępnij Sierpień 15, 2022 Wrzuciłem na githuba chyba wszystko co jest potrzebne do skonstruowania urządzenia (stl, scad, szkic płytki). Gwoli informacji: nie zajmuję się produkcją suwmiarek, metrówek, poziomic i innych ustrojstw, nie mam na to ani czasu ani warunków. Wybaczcie - ale druk 3d można zamówić i wyjdzie lepszy niż mój, a z elektroniką i programowaniem poradzi sobie co bardziej rozgarnięty nastolatek. 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »