Pierwszy model Network Radio FRN powstał w 2018roku CB-Radio FRN
Ponieważ nie miałem zastosowania dla RaspberryPi 1 a i znowu znalazła się stara obudowa po CB Radio to postanowiłem zbudować to jeszcze raz tego jakże funkcjonalnego ulepa w wersji A.D.2021 już tak trochę bardziej na wypasie.
Urządzenie jest zasilane POE ( 6-40V) oraz USB i przeznaczone do stacjonarnego użytku lecz obecnie jest w fazie pajeczak, z czasem zostanie wyposażone w zamontowane niezbędne złącze RJ45. Ponieważ jest to emerytowany RaspberryPi 1 to z uwagi na ograniczenia sprzętowe i wydajnościowe nie zostanie zrealizowana opcja hotspot MMDVM oraz DVSwitch Server. W tym wypadku skupiam się na starym poczciwym Free Radio Network.
Nowością będzie 8 przycisków funkcyjnych które zostaną użyte jako osiem pamięci. Wciśnięcie pozwoli przejść na wcześniej zaprogramowany kanał co pozwoli zrezygnować z konieczności używania DTMF.
Wstępnie prosty skrypt steruje procesem zamykania FRN i uruchamiania na nowym kanale
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(27,GPIO.IN)
GPIO.setup(23,GPIO.IN)
GPIO.setup(22,GPIO.IN)
input = GPIO.input(27)
input = GPIO.input(23)
input = GPIO.input(22)
print('Zaladowano 3 przyciski')
while True:
# przycisk 1
inputValue = GPIO.input(27)
if (inputValue == False):
os.system("/home/pi/frn1.sh")
time.sleep(0.2)
# przycisk 2
inputValue = GPIO.input(23)
if (inputValue == False):
os.system("/home/pi/frn2.sh")
time.sleep(0.2)
# przycisk 3
inputValue = GPIO.input(22)
if (inputValue == False):
os.system("/home/pi/frn3.sh")
time.sleep(0.2)
Prototyp to malo powiedziane ale jednak dziala. Wcisnięcie przycisku wyzwala uruchomienie skryptu frn1.sh
lub innych w ktorych jest komenda zabicia poprzedniouruchomionej wersji AlterFRN i uruchomienie nowej wersji z innym plikiem konfiguracyjnym.
#!/bin/sh
#
killall FRN
sleep 1
/opt/FRN/./FRN daemon /opt/FRN/frnconsole.cfg.unix
Każdy z plikow posiada ścieżkę do pliku konfiguracji ... /opt/FRN/frnconsole.cfl.unix
lub ... /opt/FRN/frnconsole2.cfg.unix
takich plików trzeba przygotować taką ilość ile chcemy mieć kanałów
Ogarnięty człowiek w Python'ie zrobi zapewne to prościej i bardziej wydajnie w jednym pliku lecz jak się nie umie to się cieszy z tego co się ma.
Ten projekt to śmieciowe zabawki uratowane przed utylizacją dlatego nie bardzo zwracam uwagę nad wykonaniem- interesuje mnie funkcjonalność.
SPECYFIKACJA i ZAŁOŻENIA:
Przyciski pamięci VFO A - DW LCR 9/19 MEM zostaną przeznaczone na 8 pamięci ( 4 krotkie przyciśniecie + 4 długie przyciśnięcie )
ASQ - VFO B - Włączenie opcjonalnego modułu RF ( USB CM108 HID) drugi klient FRN sterowany DTMF
MODE - Włączenie opcjonalnego modułu GPS
SCAN - Skaner pamięci ( przeskok co 10 sekund ) - ponieważ ta funkcja może doprowadzić do wariacji adminów i generować niepotrzebny ruch w logach , będzie to tylko eksperymentalne i z limitowane do 3 cykli
F - Wyłączenie wszystkich usług ( VFO A / VFO B / GPS )
Wyświetlacz sygnalizuje kolorami status RX na zielono
Złącze USB - przeznaczone do podłączenia modułów rozszeżeń CM108 HID + Radio jako niezależne VFO B lub GPS
Dioda TX/RX - zielony oznacza uruchomienie klienta FRN, czerwony nadawanie do FRN ( nie mylić z naciśnięciem PTT )
RJ45 - POE + DATA
GPS - opcjonalnie można uruchomić USB GPS lub GPIO GPS. Raporty z pozycjonowania mogą zostać wysłane na żywo na dowolny APRS-IS
Komunikaty audio - komunikat audio potwierdza wciśnięcie przycisku a potem AlterFRN o statusie klienta FRN
Taki jest plan na zaadaptowanie starej obudowy po CB Radio oraz RaspberryPi które od roku leżą bezczynnie. Wyświetlacz nie zostanie uruchomiony z powodu braku umiejętności :) ale w zamian za to pojawi się folia z nadrukiem pomagającym zapamiętać skróty klawiszowe. Ponadto AlterFRN wyposażony zostanie w spersonalizowany komunikaty audio pomagające zorientować się o jego statusie.
Pierwsze uruchomienie i personalizacja