Начнем с того, что между моим компьютером и компьютером друга, живущего в доме в паре сотен метров наискосок, настроена wi-fi сеть. При первой попытке настройки сети «дальнобойности» стандартных антенн, естественно, не хватило, поэтому были успешно изготовлены 2 антенны уда-яги (волновой канал) — это направленные антенны с крайне узким лепестком диаграммы направленности. Это одновременно и хорошо и плохо: хорошо тем, что это дает отличный коэффициент усиления и, соответственно, уровень сигнала, а плохо тем, что их нужно поддерживать направленными друг на друга.
Это устройство пришло мне в голову, как обычно, в приступе лени. Как-то зимней ночью, в очередной раз, на антенну навалило снега. Опять нужно выходить на балкон в мороз, чистить и перенаправлять антенну. Когда такое происходит регулярно, хочется оптимизировать процесс отряхивания антенны (от снега и капель дождя) и направления по заданным углам.
Всё ТЗ было сформировано как «….хочу направлять антенну прямо с компьютера, с точностью ≤ 10 градусов, не вставая с кровати….» . Сказано — сделано, только проект растянулся по времени, но лучше поздно чем никогда. В качестве блока питания — USB-порт ПК, интерфейс — переходник USB-UART, управление — ATmega8, исполнительные устройства — сервоприводы.
Список нужных деталей:
-
ATmega8-16PU
-
Переходник USB-UART
-
2× сервоприводы (любые, управляемые по ШИМ)
-
Лист текстолита
-
sip-линейка (понадобится всего 10 пин)
-
Железный уголок (обрезки шасси от «Амфитона»)
-
Саморезы/винты для крепления.
-
Расходники для травления, сверления и пайки
-
Программатор (я выбрал usbtiny)
-
Антенна или камера
Когда все было куплено и доставлено, настало время для разработки схемы и прошивки. Ну если с платой тут все просто — Sprint Layout 5, а для схем eagle, то для написания кода прошивки я решил попробовать Arduino IDE. Сперва на отладочной плате я собрал схему с «мегой» и разъёмами.
Потом я прошил в «мегу» загрузчик Arduino «bootloader» по инструкции. Интересно то, что при использовании этого загрузчика мы используем встроенный в «мегу» тактовый генератор на 8MHz. Для прошивки я использовал программатор USBTINY. За вечер был успешно написан код, который слушал UART-порт на предмет нажатия кнопок wasd и пробела и двигал сервоприводы с шагом в 10 градусов. Скетч для Arduino IDE прилагается. В Arduino IDE есть функция «прошить программатором»,
Это очень полезно при ограниченных размерах устройства: сперва прошить контроллер, потом уже запаивать его в плату. Когда все ошибки в коде были исправлены, настало время платы. Честно сказать, сильно душила жаба травить плату для одной микросхемы и трех разъёмов. Но в итоге всё получилось минималистично и красиво.
Потом настал черед механики, я взял дремель, установил отрезной диск и вырезал из старого уголка от шасси усилителя «Амфитон» две детали.
Далее я собрал всё вместе и прикрепил маленькую тестовую антенну.
Потом всё подключил и протестировал.
Управление происходит по UART порту на любой операционной системе. Далее будет показано как настроить программу putty под Ubuntu Linux.
«Мега» просто слушает порт на буквы wasd+пробел и крутит антенну вверх, влево, вниз. вправо, выводя положение сервоприводов в градусах.
Как показала практика, «грузоподъемность» данной системы невелика. Достаточна для маленькой антенны или WEB-камеры, но не для полукилограммовой антенны. Так что я заказал сервоприводы с бо́льшим крутящим моментом и металлическими шестерёнками.