22-08-2026, 9:21
Na Github umieściłem brakujące pliki wyceny dla płytek hb i hc. Dla przypomnienia, pliki te zawierają orientacyjną kalkulację kosztów wykonania (raczej zawyżoną) ale również podają miejsca gdzie można zakupić mniej dostępne elementy. W rzeczywistości, koszt wykonania będzie pewnie mniejszy zakładając, że nie startuje się od zera i jakieś elementy leżą w szufladzie.
Dostałem potwierdzenie, że moje zgłoszenie Waleta do konkursu PUK w tym roku zostało przyjęte. Na razie w kategorii sprzętowej ale mam nadzieję, że również oprogramowanie również zostanie uwzględnione w kategorii software. Na razie nie mam potwierdzenia, że tak będzie, jak się domyślam, brakuje innych zgłoszeń.
Niestety, powrót z wakacji zaczął mi się problematycznie bo uszkodziłem procesor na podstawowej płytce prototypu. Prawdopodobnie, wadliwie osadziłem wyświetlacz w gnieździe myląc piny o jeden w rzędzie i to spowodowało, że procesor przestał współpracować.
Procesor ESP32 A1S ma obudowę wyłącznie do montażu powierzchniowego a ilość wyprowadzeń jest zbyt duża aby za pomocą podstawowych narzędzi szybko go wymienić na inny. Fantazjując, tu potrzebna byłaby lutownica z dwustronnym grotem grzebieniowym dopasowanym do linii styków procesora lub inne równie egzotyczne narzędzie. Niestety, to koszt działań projektowych i prototypowych, który spada głównie na projektanta.
W praktyce muszę przemontować płytkę z nowym procesorem, zamówiłem już kilka procesorów i prawdopodobnie dziś zamówię nowe płytki drukowane. Na razie zamierzam zamówić 5 kompletów z czego jeden dla mnie i jeden dla kolegi, który nie "załapał" się na wcześniejszą serię więc pewnie zostaną mi 3 komplety do odstąpienia po cenie zakupu.
Zarówno płytki jak i procesory przylecą z CN w ciągu tygodnia jak pokazuje dotychczasowa praktyka więc pewnie uda mi się zdążyć ze złożeniem Waleta na konkurs PUK ;-)
[Obrazek: https://lx-net.pl/walet/image/preprot.jpg]
Na razie będę korzystał z mojego pre prototypu, który wygląda jak Frankenstein ze względu na ilość zmian, poprzecinanych ścieżek i dodatkowych połączeń.
Porządkowanie rozwiązania zaczynam od układu funkcji i przycisków funkcyjnych. Wcześniej wspominałem, że choć płytka h0 ma możliwość osadzenia do 7 przycisków to w mojej wersji ograniczę się do 3 przycisków oraz 3 funkcji. Te funkcje to klucz/ptt oraz klucz elektroniczny (dot/dash). Zostaną też 3 klawisze funkcyjne oznakowane wstępnie jako F1(-), F2(E) oraz F3(+) z przeznaczeniem do inkrementacji np. pasma pracy w górę lub dół (F1,F3) i/lub zatwierdzania pozycji (F2).
Wszystkie te funkcje działają na jednej linii procesora działającej jako port A/D odczytując poziom napięcia na tej linii i w zależności od wartości tego poziomu podejmując odpowiednia akcję.
[Obrazek: https://lx-net.pl/walet/image/dzielnik01.jpg]
Przedstawiam tu moją ideę takiego rozwiązania co być może przyda się komuś we własnych projektach.
Naturalnym poziomem na linii I/O4 jest napięcie 3.3V w stanie gdy oporność Rn ma wartość nieskończoną (otwarty styk) a port jest polaryzowany przez stałą oporność R9. Dla 6 funkcji należy dobrać taką wartość oporników Rn aby uzyskać pokazane na wykresie poziomy napięć dla poszczególnych klawiszy/funkcji. Napięcia te rozłożone są równomiernie dla uzyskania dobrej rozdzielczości. W tym celu cały zakres napięć od 0 do 3.3V podzielony został na umownych 6*2=12 + 1 = 13 części. Po dwie części przypadają na każdą funkcję a jedna dodatkowa część przy napięciu 3.3V służy dla lepszego rozróżnienia stanu neutralnego. Rysunek pokazuje wzór jak dobrać wartość każdej oporności. W pliku dzielnik01.xls na Github znajduje się arkusz kalkulacyjny pozwalający na wyliczenie odpowiednich oporności. Zwracam uwagę na stałą wartość oporności R9 (tu 11k), która może mieć oczywiście inną wartość.
[Obrazek: https://lx-net.pl/walet/image/dzielnik02.jpg] [Obrazek: https://lx-net.pl/walet/image/dzielnik03.jpg]
Zależność oporności Rn od wymaganego poziomu napięcia jest nieliniowa, szczególnie dla wyższych poziomów napięcia. Tabela zawiera wyliczenia dla R9 = 11k z doborem odpowiedniej wartości przy uwzględnieniu typoszeregu oporników.
W związku z powyższym zacząłem porządkować schemat płytki h0.
[Obrazek: https://lx-net.pl/walet/image/dzielnik05.jpg]
Zbędne przełączniki zostały opisane jako xxx z przypisanymi rezystancjami 00k a używane klawisze i funkcje mają już właściwie przypisane wartości. Funkcje Key oraz Ptt pełnią podobną funkcję więc mają przypisany ten sam poziom oporności (R17/R20).
Opisane zmiany znajdą się w nowszej wersji oprogramowania co wymagać będzie wymiany rezystancji R8,R25,R21,R17,R18,R19 i R20 :-( .
Do obsługi linii I/O4 napisałem własną funkcję badającą stan napięcia na linii choć Arduino oferuje gotową funkcję map(a,xmin,xmax,ymin,ymax) gdzie a to zmienna a xmin-xmax oraz ymin-ymax to odpowiednio zakres zmian zmiennej a oraz spodziewany zakres zmian po konwersji (mapowaniu). Własna funkcja daje lepszą elastyczność w jej użyciu a poza tym zawierając jedynie operatory porównania będzie chyba szybsza niż map(), która zawiera 3 działania zmiennoprzecinkowe. Dokumentacja opisuje przetwornik A/D dla ESP32 jako nie do końca liniowy dla małych jak i bliskich maksymalnej wartości co dodatkowo skłoniło mnie do użycia własnej funkcji obsługującej odczyt linii I/O4.
cdn. lj
Github
Dostałem potwierdzenie, że moje zgłoszenie Waleta do konkursu PUK w tym roku zostało przyjęte. Na razie w kategorii sprzętowej ale mam nadzieję, że również oprogramowanie również zostanie uwzględnione w kategorii software. Na razie nie mam potwierdzenia, że tak będzie, jak się domyślam, brakuje innych zgłoszeń.
Niestety, powrót z wakacji zaczął mi się problematycznie bo uszkodziłem procesor na podstawowej płytce prototypu. Prawdopodobnie, wadliwie osadziłem wyświetlacz w gnieździe myląc piny o jeden w rzędzie i to spowodowało, że procesor przestał współpracować.
Procesor ESP32 A1S ma obudowę wyłącznie do montażu powierzchniowego a ilość wyprowadzeń jest zbyt duża aby za pomocą podstawowych narzędzi szybko go wymienić na inny. Fantazjując, tu potrzebna byłaby lutownica z dwustronnym grotem grzebieniowym dopasowanym do linii styków procesora lub inne równie egzotyczne narzędzie. Niestety, to koszt działań projektowych i prototypowych, który spada głównie na projektanta.
W praktyce muszę przemontować płytkę z nowym procesorem, zamówiłem już kilka procesorów i prawdopodobnie dziś zamówię nowe płytki drukowane. Na razie zamierzam zamówić 5 kompletów z czego jeden dla mnie i jeden dla kolegi, który nie "załapał" się na wcześniejszą serię więc pewnie zostaną mi 3 komplety do odstąpienia po cenie zakupu.
Zarówno płytki jak i procesory przylecą z CN w ciągu tygodnia jak pokazuje dotychczasowa praktyka więc pewnie uda mi się zdążyć ze złożeniem Waleta na konkurs PUK ;-)
[Obrazek: https://lx-net.pl/walet/image/preprot.jpg]
Na razie będę korzystał z mojego pre prototypu, który wygląda jak Frankenstein ze względu na ilość zmian, poprzecinanych ścieżek i dodatkowych połączeń.
Porządkowanie rozwiązania zaczynam od układu funkcji i przycisków funkcyjnych. Wcześniej wspominałem, że choć płytka h0 ma możliwość osadzenia do 7 przycisków to w mojej wersji ograniczę się do 3 przycisków oraz 3 funkcji. Te funkcje to klucz/ptt oraz klucz elektroniczny (dot/dash). Zostaną też 3 klawisze funkcyjne oznakowane wstępnie jako F1(-), F2(E) oraz F3(+) z przeznaczeniem do inkrementacji np. pasma pracy w górę lub dół (F1,F3) i/lub zatwierdzania pozycji (F2).
Wszystkie te funkcje działają na jednej linii procesora działającej jako port A/D odczytując poziom napięcia na tej linii i w zależności od wartości tego poziomu podejmując odpowiednia akcję.
[Obrazek: https://lx-net.pl/walet/image/dzielnik01.jpg]
Przedstawiam tu moją ideę takiego rozwiązania co być może przyda się komuś we własnych projektach.
Naturalnym poziomem na linii I/O4 jest napięcie 3.3V w stanie gdy oporność Rn ma wartość nieskończoną (otwarty styk) a port jest polaryzowany przez stałą oporność R9. Dla 6 funkcji należy dobrać taką wartość oporników Rn aby uzyskać pokazane na wykresie poziomy napięć dla poszczególnych klawiszy/funkcji. Napięcia te rozłożone są równomiernie dla uzyskania dobrej rozdzielczości. W tym celu cały zakres napięć od 0 do 3.3V podzielony został na umownych 6*2=12 + 1 = 13 części. Po dwie części przypadają na każdą funkcję a jedna dodatkowa część przy napięciu 3.3V służy dla lepszego rozróżnienia stanu neutralnego. Rysunek pokazuje wzór jak dobrać wartość każdej oporności. W pliku dzielnik01.xls na Github znajduje się arkusz kalkulacyjny pozwalający na wyliczenie odpowiednich oporności. Zwracam uwagę na stałą wartość oporności R9 (tu 11k), która może mieć oczywiście inną wartość.
[Obrazek: https://lx-net.pl/walet/image/dzielnik02.jpg] [Obrazek: https://lx-net.pl/walet/image/dzielnik03.jpg]
Zależność oporności Rn od wymaganego poziomu napięcia jest nieliniowa, szczególnie dla wyższych poziomów napięcia. Tabela zawiera wyliczenia dla R9 = 11k z doborem odpowiedniej wartości przy uwzględnieniu typoszeregu oporników.
W związku z powyższym zacząłem porządkować schemat płytki h0.
[Obrazek: https://lx-net.pl/walet/image/dzielnik05.jpg]
Zbędne przełączniki zostały opisane jako xxx z przypisanymi rezystancjami 00k a używane klawisze i funkcje mają już właściwie przypisane wartości. Funkcje Key oraz Ptt pełnią podobną funkcję więc mają przypisany ten sam poziom oporności (R17/R20).
Opisane zmiany znajdą się w nowszej wersji oprogramowania co wymagać będzie wymiany rezystancji R8,R25,R21,R17,R18,R19 i R20 :-( .
Do obsługi linii I/O4 napisałem własną funkcję badającą stan napięcia na linii choć Arduino oferuje gotową funkcję map(a,xmin,xmax,ymin,ymax) gdzie a to zmienna a xmin-xmax oraz ymin-ymax to odpowiednio zakres zmian zmiennej a oraz spodziewany zakres zmian po konwersji (mapowaniu). Własna funkcja daje lepszą elastyczność w jej użyciu a poza tym zawierając jedynie operatory porównania będzie chyba szybsza niż map(), która zawiera 3 działania zmiennoprzecinkowe. Dokumentacja opisuje przetwornik A/D dla ESP32 jako nie do końca liniowy dla małych jak i bliskich maksymalnej wartości co dodatkowo skłoniło mnie do użycia własnej funkcji obsługującej odczyt linii I/O4.
cdn. lj
Github

