Popularny post ethanak Napisano Marzec 28, 2021 Popularny post Udostępnij Napisano Marzec 28, 2021 Naszła mnie ostatnio ochota na skonstruowanie gadającego miernika. Bo to oczy już nie te co kiedyś, a i nie zawsze jest wygodne gapienie się w wyświetlacz w moim mierniku - po pierwsze kontrast jest taki z niższej (a raczej z bardzo niskiej) półki, po drugie miernik zawsze leży nie tam gdzie trzeba i pchanie końcówek pomiarowych w różne miejsca przy patrzeniu gdzie indziej może skończyć się jakimś ładnym zwarciem. Ponieważ podobną konstrukcję kiedyś już zrobiłem, postanowiłem nie wydziwiać, skopiować ze starej to co działa dobrze i przerobić to co działało źle. Przede wszystkim - konstrukcja była stacjonarna (zewnętrzne zasilanie 5V) i dość duża, wyświetlacz LCD też nie grzeszył czytelnością. Poza tym o ile omomierz działał całkiem sprawnie, o tyle woltomierz pokazywał jakieś dziwne wyniki. No i zasilanie z zewnętrznego zasilacza też nie wpływało pozytywnie na wyniki... A więc poczyniłem sobie założenia: Miernik nie musi być bardzo precyzyjny. Omomierz ma służyć przede wszystkim do sprawdzenia jaki to opornik leży mi na biurku (propozycje oglądania jakichś pasków pominę milczeniem, ja się cieszę jeśli opornik na biurku znajdę, a istnienie jakichś pasków mogę sobie badać pod większą lupą). Również woltomierz nie musi być specjalnie precyzyjny - raczej ma służyć do sprawdzenia jakie mniej więcej napięcie występuje w danym miejscu (czy to 3.3V czy może 5V) i czy w ogóle jakieś występuje. Do tego dochodzi pomiar napięcia przewodzenia diody (choćby w celu odróżnienia czy to co trzymam w ręku to dioda Schottky czy zwykła prostownicza) i kilka drobnych bajerów (np. ustawianie "na słuch" napięcia). I tu uwaga: miernik nie jest przeznaczony do użytku dla niewidomych - do wielu czynności konieczne jest widzenie wyświetlacza. Nic nie stoi jednak na przeszkodzie, aby zaadaptować go również dla takich osób, wymaga to jednak kilku dość istotnych modyfikacji programu. Poprzednia konstrukcja bazowała na Arduino Pro Mini (układ pomiarowy) i ESP8266 (syntezator). Postanowiłem zastąpić to ESP32, wyświetlacz LCD zastąpić OLED-em a zasilanie zrobić na dwóch 14500. Nie będę tu pokazywał dokładnej konstrukcji i schematów - całe urządzenie jest średnio udane i ktoś, kto chciałby zrobić sobie podpbne urządzenie powinien zaprojektować całość od początku. Zamieszczam jedyne kod programu - ale raczej w celu podpatrzenia sobie jak to zrobiłem czy skorzystania z różnych mniej lub bardziej pomysłowych pomysłów (np. czytelne fonty w ISO-8859-2, software-owy bold czy duża czcionka użyta do wyświetlania wyników pomiaru). Zacząłem od omomierza - bo to wydało mi się najprostsze jako że miałem przed nosem działającą konstrukcję. Niestety - to co było proste na Arduino okazało się absolutną porażką na ESP. Wielozakresowy omomierz w Arduino działał na zasadzie podłączenia rezystora dzielnika do jednego z wyjść Arduino, podczas gdy pozostałe ustawione były na INPUT. Przy ESP pierwsze próby podłączenia (pojedynczego zakresu) wyszły wspaniale... niestety, podłączenie kilku zakresów zaowocowało jakimiś potwornymi błędami odczytu. Teoretycznie podłączenie rezystorów przez diody powinno dać lepsze wyniki - niestety, to ładna teoria, ale jakoś mi się w praktyce nie sprawdziła. Skończyło się na użyciu multipleksera 4051. Niestety - przy najwyższym zakresie omomierza (gdzie rezystor dzielnika miał mieć 470k) okazało się, że multiplekser ma jakieś problemy egzystencjonalne, skończyło się niestety na 4 zakresach zamiast 5. Na szczęście na czterech zakresach działa całkiem zacnie, a do pomiarów rezystancji w okolicach megaoma i więcej mam przecież zwykły omomierz. Natomiast woltomierz ruszył od strzału. Pisałem swego czasu o pierwszych próbach, okazało się, że wystarczyło doświadczalnie dobrać sobie rezystory z tych co miałem w szufladzie, i wyszło mi coś co ma rezystancję wewnętrzną w okolicach 50kΩ/V (czyli lepiej niż myślałem) i wystarczającą liniowość. Trzeba było niestety zwiększyć napięcie zasilania wzmacniacza, ale to już szczegół. Do sterowania przekaźnikami (dwucewkowymi, żeby mi prądu nie żarły w czasie pracy) zastosowałem ULN2803A. Dodatkowo jeden z kanałów służy mi jako wzmacniacz audio (ESP daje mi sygnał audio w postaci delta-sigma, czyli nie muszę stosować jakichś wymyślnych konstrukcji, w praktyce wystarczył rezystor 68Ω włączony szeregowo z głośnikiem). Całość umieściłem na płytce uniwersalnej - niestety, próby zaprojektowania płytki zakończyły się fiaskiem, technicznie nie jestem w stanie wykonać dwuwarstwowej płytki, a jednowarstwowa albo wychodziła dwa razy większa niż przewidziane miejsce w obudowie, albo miała tyle samo zworek i kabelków co uniwersalna 🙂 Jak widać, przypomina to plątaninę przewodów, co nie zmienia faktu że działa. Miernik mieści się w obudowie Kradexu Z34B. No... prawie się mieści, bo zabrakło miejsca na akumulatory. Ale może to i lepiej - przynajmniej łatwo je wyjąć z koszyka i włożyć do ładowarki 🙂 Na zdjęciu widać, że całość zmontowana jest na jednej stronie obudowy, tak aby można było w trakcie testów używać urządzenia ze zdjętym spodem i podłączenia kablem USB do komputera. No - ale dotychczas nie było czym się chwalić, całe ustrojstwo wygląda dość topornie, na szczęście nadrabia funkcjonalnością. Miernik może pracować w następujących trybach: Omomierz (używalny zakres od kilkunastu omów do kilkuset kiloomów, automatyczne przełączanie zakresów) Przypisanie rezystora do typoszeregu (10% lub 20%) Woltomierz (dwa zakresy, -10..10V - -24..24V) Czujnik zwarcia Pomiar napięcia przewodzenia diody Pomoc w regulacji napięcia do ustalonej wcześniej wartości (patrz film) Wyjście mowy może być również realizowane na kilka sposobów: Wbudowany syntezator Klatta Połączenie z zewnętrznym speech-dispatcherem (wymagana rekonfiguracja tak, aby pracował w trybie inet_socket i oczywiście odpowiednie ustawienie firewalla, żeby mi jakiś Chińczyk nie próbował czegoś zdalnie powiedzieć) Połączenie z zewnętrzną aplikacją (miernik po prostu wysyła na socket tekst do powiedzenia, aplikację np. na Windowsa z Ivoną trzeba sobie napisać samemu) Konfiguracja WiFi jest chyba najprostsza z możliwych - ESP pracuje w trybie AP_STA, można się podłączyć np. telefonem lub laptopem do AP i poprzez prosty interfejs WWW ustalić wszystkie szczegóły połączenia. I kilka szczegółów technicznych: Użyłem płytki DevKit ze względu na cenę i rozmiar (no i najważniejsze - leżała w szufladzie) Układ zasilany jest bezpośrednio z dwóch akumulatorów 14500 - zrezygnowałem ze stabilizatora. Tym napięciem zasilana jest zarówno płytka ESP, jak i wzmaniacze operacyjne woltomierza oraz przekaźniki i głośnik. Wyświetlacz zasilany jest natomiast z wyjścia 3.3V płytki. Syntezator pracuje z częstotliwością próbkowania 11025 Hz. Podsystem audio przekształca to na 44100 (po prostu czterokrotnie powielając każdą próbkę) i tak otrzymany sygnał poddawany jest obróbce sigma-delta. Wyświetlane wyniki są zaskakująco czytelne - mimo że cyfry są mniejsze niż na moim multimetrze, to jednak glify są dużo wyraźniejsze niż siedmiosegmentowe cyferki, a i potężny kontrast daje dobrego kopa. W załączniku można znaleźć dwa fonty kodowane w ISO-8859-2 oraz duży font do wyświetlania wyników (zakres 0x20..0x7e, z dodatkowym znakiem Ω na pozycji 0x7f). Trzeba tylko dobrze poszukać 🙂 A tu można obejrzeć krótki filmik z działania miernika No i oczywiście obiecany kod źródłowy: EMeter.tgz 9 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 1, 2021 Udostępnij Kwiecień 1, 2021 @ethanak dziękuję za opis kolejnego oryginalnego projektu 🙂 Wpis został właśnie zatwierdzony, więc jest już widoczny publicznie 🚀 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!