Хочу поделится знакомством с маленьким чудом под названием orange pi zero.
Этот мини компьютер идеально подходит для данного проекта(PMR) на платформе Linux. Может для серьезных задач его возможностей недостаточно, но для PMR-ки в самый раз. Соотношение цена/качество просто идеальное. Самое главное, что на его "борту" есть полноценная звуковая карта удовлетворяющая потребностям нашего проекта, а также разнообразие GPIO которое позволит использовать данную малышку в качестве дистанционного управления трансивером. К данному шедевру придется еще докупить радиаторы и блок питания, а также "гребенку" под GPIO(и распаять самостоятельно), ну и конечно карту памяти, но это обычная практика для микро компьютеров.
Хочу немного описать установку системы, так как тут могут возникнуть трудности для тех, кто впервые будет знакомится с данным шедевром. Как мне кажется, что лучшим выбором будет Linux на базе armbian, образ можно найти на просторах интернета, но я даю ССЫЛКУ со своего источника. Установить образ можно ДАННОЙ ПРОГРАММОЙ. После того как образ будет "залит", необходимо подключить "малышку" сетевым кабелем к своему роутеру и подать питание. Определить какой IP выделен устройству можно посмотрев через WEB интерфейс управления своим роутером. В моем случае это
Для подключения по протоколу SSH я использую программу Xshell, но можно другую, например Putty. В Xshell в меню нажимаю New, и в появившемся окне ввожу имя соединения и IP адрес.
Во вкладке Authentication вводим логин root и пароль 1234
Во вкладке Terminal меняем Default Language на Unicode (UTF-8), после чего нажимаем OK и подключаемся.
При первом включении у вас попросят поменять root пароль, вводим его дважды. Затем предложат установит местную локализацию, нужно согласится (нажать Y) и какое то время подождать. После этого будет предложено ввести нового пользователя, вводим любое имя и определяем ему пароль, ну а затем когда будут спрашивать дополнительные данные просто нажимаем Enter. Все, мы в системе. Первым делом вводим команду
и ждем когда закончится ее выполнение. Не знаю кто как, но я не могу обойтись без программы mc, поэтому второй командой будет
Когда спрашивают, при установке, нужно соглашаться, нажимать Y. Когда установка закончиться запускаем программу, набираем mc и нажимаем и Enter. Кто начинал знакомство с операционной системой MS DOS с помощью norton commander, увидят уже знакомые для себя два окна. Для того что бы из этой среды можно было открывать файлы, необходимо нажать F9, выбрать меню "Настройки", а затем "Конфигурация", выделяем "Встроенный редактор" (выделяем нажав клавишу пробел). А затем нажимаем "Дальше"
После этого нажимаем F10 (выходим из mc) и продолжаем дальше настройку системы. Для проекта нам понадобится библиотека для alsa, устанавливаем ее.
Код:
apt-get install libasound2-dev
Кому как, но мне нужна еще библиотека zlib
Код:
apt-get install zlib1g-dev
Чем хорош Linux, так это многообразие возможностей, в частности работать в защищенной сети VPN, поэтому сразу поставим pptp клиента.
Код:
apt-get install pptp-linux
Запускаем снова mc и открываем файл
Код:
/boot/armbianEnv.txt
. То есть отметив файл, нажимаем F4. В конце файла дописываем строку
Код:
overlays=analog-codec
. Сохраняем (нажимаем F2) и выходим с редактирования файла (F10). Выходим с mc (F10) и перегружаемся
.
После перезагрузки опять подключаемся к нашему Zero. Для чего было проделано последнее действие? Для того что бы у нас заработала alsa. Но это еще не все, микрофон у нас пока не подключен. Смотрим какие вообще устройства у нас есть.
Нам нужно 18 устройство, выбираем его.
Код:
amixer cset numid=18 on
Запоминаем
Со звуком закончили, можно загружать исходный код PMR-ки для Linux, который выложен в данной ветке и наслаждаться экспериментами. Где входы выходы звука можно найти на просторах интернета, например ТУТ. Кстати можно купить дополнительную плату на которой уже есть микрофон и стандартный выход звука, плюс добавится еще два USB разъема.
О, совсем забыл, нужно выставить настройки звука. Запускаем программу
и выставляем настройки как тут показано.
Для выделения регулировки используется латинская клавиша "m".
Теперь надо поработать для GPIO, вводим команду
Код:
git clone https://github.com/zhaolei/WiringOP.git -b h3
и ждем когда с качается. Входим в с качавшийся каталог и запускаем
Ждем когда все отработает. Все, можно работать с GPIO. Вот ТУТ про это рассказано. А вот пример как этим управлять языком программирования Си.
Код:
#include <stdio.h>
#include <wiringPi.h>
int main(void)
{
const int button = 8;
int b=1,o=2;
wiringPiSetup();
pinMode(button, INPUT);
pinMode(7, OUTPUT);
while (1).
{
if (digitalRead(button) == LOW).
{
b = 1;
digitalWrite(7,HIGH);
if(b != o) printf("Switch is pressed\n");
o = b;
}
else.
{
b = 0;
if(b != o) printf("Switch is released\n");
digitalWrite(7,LOW);
o = b;
}
delay(100);
}
return 0;
}
Теперь подключимся через Wi-Fi, а то быть "привязанным" кабелем к своему роутеру как то не интересно. Вводим команду
Код:
nmtui-connect MyRouter
MyRouter - это название вашей сети Wi-Fi. После ввода пароля надо узнать IP, которое вы получили по сети Wi-Fi, можно на самом роутере или введя команду
.
Затем создаем еще одно соединение Xshell на новый IP, выключаем устройство
Отключаем его кабель от роутера, переносим микрокомпьютер туда куда нам удобно(например на какой либо стенд) и включаем его, Подключаемся по SSH и экспериментируем.
Если надо какую то готовую программу поставить в автозагрузку при старте системы, делаем это через файл rc.local
Как это правильно сделать, а также как подключится к pptp серверу расскажу отдельно тем кому это интересно.