Arduino — микромощный передатчик радиовещательного АМ-диапазона

в 8:54, , рубрики: arduino, diy или сделай сам, амплитудная модуляция, математика, радиоприем, Разработка под Arduino, ряды Фурье, Электроника для начинающих
image

У многих еще остались радиоприёмники с диапазонами СВ и ДВ, и радиолюбительский интерес к приёму в этих диапазонах также по-прежнему сохраняется. На средних волнах в условиях отсутствия помех (за городом, в парке, на балконе, с внешней антенной или, в крайнем случае, у окна квартиры) в вечернее время принимается много удаленных радиостанций, но днем в эфире слышны только шумы. В диапазоне ДВ радиостанций не осталось совсем.

Исправить положение можно с помощью простого маломощного радиопередатчика, действующего в радиусе нескольких метров. В процессе сборки одной из таких конструкций у автора родилась идея попытаться сделать такой передатчик на базе Arduino.

Основные требования к устройству: имеющаяся в наличии плата Arduino UNO или Arduino Leonardo, максимальная простота электрической схемы (не сложнее самых простых передатчиков на одном транзисторе) и удовлетворительное для АМ-диапазона качество звучания.

В качестве несущей для наших целей можно использовать сигнал прямоугольной формы, получить который не составляет труда, а прием вести на одной из гармоник. С учетом малой мощности передатчика, сигналы «лишних» гармоник не будут распространятся далее пределов комнаты и не создадут помех окружающим.

Сложности возникают с управлением амплитудой: сигнал на выходах может принимать только два значения, а использование даже простейшего ЦАП добавит в конструкцию десяток резисторов.

Замечание с забеганием вперед об analogWrite

Заметим, что использовать ШИМ и analogWrite в их классическом варианте не удастся из-за высокой частоты несущей, не менее 150 кГц для нижней границы диапазона ДВ. Хотя именно ШИМ, но использованная в ином качестве, поможет получить решение.

С другой стороны, просто реализуется управление длительностью импульса. Выясним, как этот параметр повлияет на амплитуды входящих в состав сигнала гармоник.

Обозначим $f(t)$ функцию прямоугольного сигнала с периодом $T$, длительностью импульса $L$ и амплитудой A:

image

В разложении $f(t)$ в ряд Фурье

$f(t)=frac{a_0}{2} + sum_{n=1}^{infty}left[a_ncosleft(frac{2pi n t}{T}right) + b_nsinleft(frac{2pi n t}{T}right)right]$

коэффициенты $b_n$ в силу чётности $f(t)$ равны нулю. Следовательно, амплитуда $n-$й гармоники совпадает с коэффициентом

$a_n=frac{2}{T}int_{-T}^{T}f(s)cosleft(frac{2pi n s}{T}right)ds=frac{2}{T}int_{-L/2}^{L/2}Acosleft(frac{2pi n s}{T}right)ds=$

$=left.frac{A}{pi n}sinleft(frac{2 pi n s}{T}right)right|_{-L/2}^{L/2}=frac{2A}{pi n}sinleft(frac{pi n L}{T}right).$

Но $sin(x)=x + o(x^2)$ при $xto 0$ и $sin(x)$ хорошо приближается $x$, если $x$ мало. Значит, при малых $L$ зависимость амплитуды $n-$й гармоники от $L$ близка к линейной, и вместо амплитуды несущей можно изменять длительность импульса, заботясь о том, чтобы она не превышала некоторой достаточно малой величины!

Несложно написать скетч для формирования такого сигнала, но в этом нет необходимости: готовый сигнал нужной нам формы можно получить на выходе с широтно-импульсной модуляцией. При частоте ШИМ 62,5 кГц частота третьей гармоники равна 187.5 кГц, и она попадает в радиовещательный диапазон длинных волн. Достаточно подать на соответствующий выход Arduino сигнал низкой частоты и подключить к нему антенну, остальное сделает ШИМ. Важно лишь, чтобы значение параметра value функции analogWrite не превышало границы, определяемой величиной допустимых искажений. Оценим эту границу.

Пусть $L=alpha T$, где $alpha in [0, 1]$ — длительность импульса в долях периода. Тогда

$a_n(alpha)=frac{2A}{pi n}sin(alphapi n)$

.
Относительное отклонение $a_n(alpha)$ от линейной функции $2Aalpha$

$frac{2Aalpha - frac{2A}{pi n}sin(alphapi n)}{2Aalpha}=frac{alphapi n - sin(alphapi n)}{alphapi n}to 0$

при $alphato 0$. С увеличением $alpha$ отклонение растёт. Для $alpha=0.085$ и $n=3$ оно составляет около 10%, что достаточно много. При выборе гармоники более высокого порядка отклонение становится еще больше. Так как при 8 битной ШИМ длительности импульса $alpha=1$ соответствует value=255, то для для $alphaleq 0,085$ необходимо, чтобы value не превышал $255cdot 0,085approx 22$. Полученная оценка позволяет получить представление о порядке допустимых величин и далее подобрать подходящие значения экспериментально.

Итогом громоздкого блока теории являются простая схема:

image

и очень простой скетч:

void setup() {
// Параметры ШИМ
TCCR1A = TCCR1A & 0xe0 | 1;
TCCR1B = TCCR1B & 0xe0 | 0x09;
}

int const SHIFT = 8;
int const SCALE = 8;

void loop() {
  analogWrite(9, (analogRead(A0) - 512) / SCALE + SHIFT);
}

В качестве антенны использован отрезок монтажного провода длиной 1 метр.

SHIFT задает значение на выходе ШИМ при отсутствии входного сигнала. В процессе модуляции оно меняется в пределах от 1 до 15, длительность импульса при этом составляет от 1/255 до 15/255 периода.

Константа SCALE подобрана экспериментально так, чтобы сигнал с выхода телефона укладывался в допустимые границы значений на выходе ШИМ.

При подаче на вход устройства синусоиды 1 кГц от ГСС, на выходе приемника, настроенного на частоту 187,5 кГц, получается громкий сигнал неискаженной формы:

image

Дальность приема на карманный супергетеродин составляет около полутора метров.

Второй раз в диапазоне ДВ сигнал принимается на частоте 250 кГц. Потеря качества на слух при переходе на четвертую гармонику незаметна. С увеличением номера гармоники искажения растут, но при выбранных параметрах и на девятой гармонике 562,5 кГц, попадающей в нижнюю часть диапазона средних волн, качество остается приемлемым.

Увеличивая (в разумных пределах) значение SHIFT, можно попытаться добиться повышения качества звучания за счет поиска компромисса между увеличением количества уровней дискретизации и ростом искажений. SCALE в этом случае нужно уменьшить, чтобы сохранить коэффициент модуляции. Однако, теряется возможность приёма на более высоких гармониках. Например, эксперимент с SHIFT = 16 и SCALE = 4 показал неплохой результат на частоте 187,5 кГц, но в диапазоне СВ искажения оказались очень большими.

В итоге получилось простое устройство, не содержащее самодельных катушек индуктивности. К его достоинствам можно отнести стабильность частоты несущей и отсутствие паразитной частотной модуляции, что обычно является проблемой для простейших конструкций.

В заключение статьи видео с демонстрацией работы микропередатчика.

Автор: dm_p2016

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js