Ротор антенны MLA-30

Источник:

Простой ротор антенны для MLA-30 или аналогичных небольших и легких антенн. Требуется всего несколько деталей, и их легко распечатать, желательно из PETG.

Крепить его можно разными способами: на штатив, с помощью настольного зажима или просто с помощью шурупов.

Над софтом еще бы немного поработать, но пока работает.

Шагового двигателя достаточно в версии на 5 В, он не требует большой мощности и может работать через USB.

Трубка просто крепится к 8-миллиметровым болтам с помощью небольшого количества ПВХ-ленты.

Механические части

5 резьбовых вставок M5

5 винтов M5, длиннее 20 мм, короче 50 мм.

2 резьбовых вставки M3

2 винта M3 длиной более 15 мм.

1 винт M8 длиной более 100 мм

2 шарикоподшипника 608zz

1 шарикоподшипник MR128ZZ

1 х круглая пластиковая трубка 12 мм

Электронные детали

1 x 28BYJ-48 Шаговый двигатель 5 Вольт

1 драйвер шагового двигателя (например, ULN2003)

1 х Ардуино

Программное обеспечение

Код Ардуино:

https://elektro.turanis.de/html/prj143/index.html и пример Arduino

#define PIN_IN1 9 // синий
#define PIN_IN2 8 // розовый
#define PIN_IN3 7 // желтый
#define PIN_IN4 6 // оранжевый

интервал входящего байта; // переменная для чтения входящих последовательных данных

беззнаковое целое число lowSpeed = 1600; // максимум: 16000
беззнаковое целое число highSpeed = 1000;

недействительная настройка()
{
Серийный.начало(9600);
pinMode (PIN_IN1, ВЫХОД);
pinMode (PIN_IN2, ВЫХОД);
pinMode (PIN_IN3, ВЫХОД);
pinMode (PIN_IN4, ВЫХОД);
}

недействительный цикл()
{
беззнаковый длинный n = миллис()/3000; // 3 секунды

если (Serial.available() > 0) {
// читаем самый старый байт в последовательном буфере:
incomingByte = Serial.read();
если (incomingByte == 'R') {
RotateRight (низкая скорость);
}
если (incomingByte == 'L') {
RotateLeft (низкая скорость);
}
если (incomingByte == 'S') {
стопМотор();
}
}еще{
стопМотор();
}

}

void RotateRight (беззнаковое целое число MotorSpeed)
{
setMotor(LOW, LOW, LOW, HIGH, MotorSpeed);
setMotor(LOW, LOW, HIGH, HIGH, MotorSpeed);
setMotor(LOW, LOW, HIGH, LOW, MotorSpeed);
setMotor(LOW, HIGH, HIGH, LOW, MotorSpeed);
setMotor(LOW, HIGH, LOW, LOW, MotorSpeed);
setMotor(ВЫСОКИЙ, ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, скорость двигателя);
setMotor(ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, НИЗКИЙ, скорость двигателя);
setMotor(ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, ВЫСОКИЙ, скорость двигателя);
}

void RotateLeft (беззнаковое целое число MotorSpeed)
{
setMotor(ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, НИЗКИЙ, скорость двигателя);
setMotor(ВЫСОКИЙ, ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, скорость двигателя);
setMotor(LOW, HIGH, LOW, LOW, MotorSpeed);
setMotor(LOW, HIGH, HIGH, LOW, MotorSpeed);
setMotor(LOW, LOW, HIGH, LOW, MotorSpeed);
setMotor(LOW, LOW, HIGH, HIGH, MotorSpeed);
setMotor(LOW, LOW, LOW, HIGH, MotorSpeed);
setMotor(ВЫСОКИЙ, НИЗКИЙ, НИЗКИЙ, ВЫСОКИЙ, скорость двигателя);
}

недействительный стопМотор()
{
setMotor(НИЗКИЙ, НИЗКИЙ, НИЗКИЙ, НИЗКИЙ, 0);
}

void setMotor(байт in1, байт in2, байт in3, байт in4, беззнаковое целое число MotorSpeed)
{
digitalWrite(PIN_IN1, in1);
digitalWrite(PIN_IN2, in2);
digitalWrite (PIN_IN3, in3);
digitalWrite (PIN_IN4, in4);
задержкамикросекунды (скорость двигателя);
}

Код Python

#!/usr/bin/env python3

импортировать PySimpleGUI как sg
импортный серийный номер
импортировать систему
импортировать глобус

защита серийных_портов():
""" Перечисляет имена последовательных портов.
: поднимает EnvironmentError:
На неподдерживаемых или неизвестных платформах
: возвращает:
Список последовательных портов, доступных в системе.
https://stackoverflow.com/a/14224477
"""
��сли sys.platform.startswith('win'):
порты = ['COM%s' % (i + 1) для i в диапазоне (256)]
elif sys.platform.startswith('linux') или sys.platform.startswith('cygwin'):
# это исключает ваш текущий терминал "/dev/tty"
порты = glob.glob('/dev/tty[A-Za-z]*')
элиф sys.platform.startswith('дарвин'):
порты = glob.glob('/dev/cu.*')
еще:
поднять EnvironmentError («Неподдерживаемая платформа»)

результат = []
для порта в портах:
попробуйте:
s = серийный.Последовательный(порт)
с.закрыть()
result.append(порт)
кроме (OSError, Serial.SerialException):
пройти
вернуть результат

09:50
22
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.