Wiadomość w butelce
Wystarczy wymówić nazwę tego zespołu, a od razu przychodzi na myśl mnóstwo piosenek: „Roxanne”, „Walking on the Moon”, „Message in a Bottle”... Powodem, dla którego to wszystko mi się przypomniało, jest wiadomość, którą właśnie otrzymałem od jednego z Czytelników – nazwijmy go Andrew (bo właśnie tak ma na imię). Zauważyliście, co zrobiłem? Możecie mnie nazywać „Mistrzem Przejść”. W swojej wiadomości Andrew – który pracuje jako specjalista ds. projektów technicznych w liceum w Leominster w hrabstwie Herefordshire – napisał, co następuje:
„Cześć Max, z wielkim zainteresowaniem przeczytałem fragment twojej rubryki »Migające diody LED i śliniący się inżynierowie« poświęcony silnikom serwo, który ukazał się w sierpniowym numerze magazynu „Practical Electronics” z 2022 roku (EdW 3/2026). Przypomniało mi to rok 1989, kiedy studiowałem na kierunku elektronika i technika komputerowa na ówczesnej Politechnice w Birmingham. Zbudowałem wtedy sterowany panel słoneczny, wykorzystując modelowe silniki serwo, które dostałem od mojego wykładowcy. Były one bardzo podobne do tych przedstawionych w twoim artykule. W tamtych czasach mieliśmy pod ręką mnóstwo wzmacniaczy operacyjnych 741 i klasycznych układów czasowych 555. Mój panel miał dwie osie ruchu: lewo/prawo oraz góra/dół. Do sterowania serwomotorów zastosowałem układy czasowe 555 pracujące z częstotliwością 50 Hz, z modulowaną szerokością impulsu. Układy były sterowane z czterech fotorezystorów umieszczonych w rogach krzyża zamontowanego na sterowanym panelu. Jeśli panel nie był skierowany bezpośrednio na źródło światła (np. Słońce), na jeden lub więcej fotorezystorów padał cień, w wyniku czego układy komparatorów oparte na wzmacniaczach operacyjnych 741 odpowiednio zmieniały szerokości impulsów. Pomysł polegał na tym, aby panel był poruszany tak długo, aż żaden z fotorezystorów nie znajdował się w cieniu, a każda para fotorezystorów otrzymywała taką samą ilość oświetlenia, co oznaczało, że panel jest idealnie skierowany w stronę źródła światła. To było dawno temu, w 1989 roku, i opieram się na mojej pamięci (znalezienie notatek z tamtego okresu wymagałoby daleko idących poszukiwań).
Pamiętam, że do precyzyjnego wyregulowania całego systemu użyłem kilku dekad rezystorowych. Dobrze pamiętam też, że kiedy po raz pierwszy system załączyłem, panel poruszył się w poprzek i w górę, zatrzymał się, a potem zaczął powoli szukać (używałem tylko regulacji proporcjonalnej P, bez całkowej I i różnicowej D). Minęło kilka sekund, zanim zdałem sobie sprawę, że panel przesunął się tak, by spoglądać na świetlówkę zamontowaną w suficie. Potem wykonałem różdżkę świetlną, która była w zasadzie żarową lampą reflektorową na drążku. Kiedy przyszedł czas na prezentację mojego projektu, poruszałem się po sali, a panel podążał za moją różdżką. Wykładowcy oceniającemu mój projekt bardzo się to podobało. Dziękuję za świetny artykuł i czekam na następny. Pozdrawiam i życzę wszystkiego najlepszego, Andrew Moore”.
No cóż, skoro Andrew polubił numer sierpniowy magazynu „Practical Electronics”, to mam nadzieję, że dech w piersiach zaparł mu numer wrześniowy (EdW 5/2026), w którym zamieściłem niesamowite rysunki wykonane w programie CAD przez mojego przyjaciela Steve’a Manleya, przedstawiające wnętrze serwomechanizmu, a ponadto rozważania na temat momentu obrotowego, układów przekładniowych i przełożeń.
Nie jeden, nie dwa, nie trzy, ale cztery!
Skoro mowa o poprzednich dwóch artykułach: w pierwszym z nich stworzyliśmy prosty układ i szkic (program), który sprawiał, że nasz mikroserwomechanizm poruszał się tam i z powrotem; w drugim szkic ten rozszerzyliśmy, aby serwomechanizm reagował na kręcenie potencjometrem.
Jak być może pamiętacie z poprzednich wpisów – kiedy Steve i ja zaczynaliśmy nasz projekt animatronicznej głowy, kupiłem kilka gotowych zestawów do realizacji obrotów i pochyleń od Adafruit (https://bit.ly/3cEYPoL). Te małe cudeńka zawierają po dwa mikroserwomechanizmy SG-90 lub SG-92, podobne do tego, którym się zajmowaliśmy. Dzięki tym serwom możemy sprawić, że zespół będzie się obracał na boki oraz przechylał w górę i w dół.
Kupiliśmy też kilka 4-osiowych joysticków JH-D400X-R4, naprawdę świetnych, które można znaleźć u wielu dostawców, np. w Amazonie (https://amzn.to/3RXl61d). A na potrzeby niniejszych dyskusji postanowiłem wydać trochę kasy na kilka miniaturowych modułów joystickowych KY-023 (https://amzn.to/3crXO38). Oprócz zacisków zasilania +5 V i 0 V (masa/GND) wihajstry te mają wyjścia X, Y i SW („przycisk”).
W tym miesiącu zamierzam zaprząc Arduino Uno do odczytu wartości X/Y z tych joysticków i wykorzystania ich do sterowania serwomechanizmami w naszych zespołach obrotu i pochylenia. Do „sklejenia” wszystkiego razem używam płytki prototypowej i całej masy przewodów, więc efekt przypomina nieco spaghetti, ale to wszystko jest nieodłącznym elementem zabawy w prototypowanie.
Sam program jest nieznacznie tylko zmodyfikowaną wersją kodu, który omawialiśmy w moim poprzednim artykule (Practical Electronics wrzesień 2022 r.; EdW 5/2026). Zamiast jednego potencjometru i jednego wejścia analogowego mamy ich teraz po cztery. Zamiast jednego serwomotoru mamy teraz cztery takie ustrojstwa.
Najpierw odczytujemy wszystkie cztery wartości z potencjometrów. Następnie wykorzystujemy funkcję map() platformy Arduino do przemapowania wartości z zakresu 0...1023 z potencjometrów na odpowiadające im wartości z zakresu 0...180 wymagane przez serwomechanizmy. Dalej wysyłamy te przemapowane wartości do serwomechanizmów, odczekujemy 15 milisekund, aby miały one czas na reakcję, a potem wracamy do początku i powtarzamy całą procedurę. Jeśli chcecie, możecie pobrać pełny program, przejrzeć i przemyśleć go w wolnej chwili – plik CB-Oct22-01.txt na stronie „Practical Electronics” z października 2022 r. (https://bit.ly/3oouhbl).