Simulatore CubeSat Lite
Ho pensato di riprodurre fedelmente il progetto originale utilizzando un vecchio semplice Raspberry Pi 1 B+; successivamente l’idea sarà quella di portarlo in Sezione ARI per i primi test e per le spiegazioni di realizzazione da fornire ai Soci interessati.
Lasciare quel Raspberry ancora a dormire nel cassetto, inutilizzato, non avrebbe avuto alcuno scopo.
AGGIORNAMENTO 31.01.2024. Per non rischiare di perdere i contenuti della pagina di configurazione di questo progetto (che avevo descritto nel 2019 solo nella pagina del sito di ARI Pordenone), oggi ne ho copiato i contenuti anche in questo articolo.
Avendo saputo dal nostro Presidente Franco IU3ADL, che si trovava presente per lavoro alla Hamvention di Dayton 2019, dell’esistenza di uno stand di radioamatori che promuoveva questo interessante progetto, ci è venuta un’idea. Perché non costruirne uno assieme ai Soci della Sezione e studiarne il funzionamento del sistema?
Questo progetto no-profit è sponsorizzato dalla Radio Amateur Satellite Corporation, AMSAT®
Per praticità, Paolo IV3BVK ha tradotto l’articolo originale, scritto dal Dr Alan Johnston, (KU2Y), vice Presidente del gruppo AMSAT Educational Relations, al quale ha aggiunto qualche immagine, qualche commento e informazione tecnica, per aiutare coloro che hanno deciso di provare a costruire questo simpatico oggetto.
Paolo ha prima controllato nel suo laboratorio / sala radio di avere i componenti richiesti, poi ha pensato di iniziare a riprodurre fedelmente il progetto utilizzando un vecchio semplice Raspberry Pi 1 B+; successivamente l’idea sarà quella di portarlo in Sezione ARI per i primi test e per le spiegazioni di realizzazione da fornire ai Soci interessati.
Lasciare quel Raspberry ancora a dormire nel cassetto, inutilizzato, non avrebbe avuto scopo.
Il progetto originale viene distribuito con la licenza CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.
Se non avete il tempo e il denaro necessari a costruirvi un Simulatore CubeSatSim con la telemetria reale, potete costruirvi questo Simulatore CubeSat Lite. Io ho comunque già fatto qualche pensierino al progetto del CubeSat reale, e ne proporrò la realizzazione di Sezione al nostro Consiglio Direttivo).
Le informazioni originali su questo progetto, in lingua inglese, sono disponibili sul loro sito a questo indirizzo.
CubeSatSim telemetria reale
Nel nostro caso, se disponete di un Raspberry Pi (qualsiasi modello va bene, io ho usato il vecchio modello base 1 B+), non avete nulla da costruire in più, oltre ad una piccola antenna filare.
Sarà sufficiente scaricare del software e installare una piccola antenna filare di 10 – 15cm. per iniziare a testare il simulatore satellitare. Questa piccola antenna vi permetterà di ricevere a distanza il segnale radio della telemetria, attraverso una comune radio FM.
Per ovvie ragioni, i dati telemetrici di questo modello sono simulati, non avendo sensori installati al suo interno; nell’articlolo verrà data la possibilità di creare un testo di simulazione personalizzato in CW da far trasmettere al simulatore.
Raspberry Pi 1 B+
Nota: L’antenna esterna, realizzata con il filo centrale di un cavo coassiale RG/58U, è connessa al pin GPIO 4 (GPCLK0) ed esce dal contenitore del RPi attraverso il foro centrale del connettore video RCA (Giallo), in quanto non viene utilizzato in questa configurazone. L’ingombro complessivo dell’antenna è stata ridotto realizzando esternamente una spirale, avvolgendo circolarmente il filo su se stesso, più volte.
Installazione del sistema operativo
Sarà necessario avviare il vostro Raspberry Pi (che da ora in poi chiameremo per comodità RPi) installando il S.O. Raspbian, seguendo le informazioni descritte nel loro sito.
NOTA: Per far funzionare da subito il server SSH, sarà sufficiente aggiungere un file di testo vuoto di nome ssh, direttamente nella partizione /boot, utilizzando lo stesso lettore di SD con cui è stata scritta l’immagine delle partizioni del sistema operativo. Questa operazione è fondamentale per attivare immediatamente il servizio SSH senza dover effettuare la prima configurazione del RPi tramite la connessione di monitor e tastiera. In questo modo, la prima connessione con il vostro RPi potrà avvenire tramite la connessione Ethernet, via protocollo SSH, sulla porta 22.
Identificazione dell’indirizzo IP del RPi
Una volta acceso il vostro RPi, connesso con il cavo Ethernet alla vostra rete di casa, dovrete trovare l’indirizzo IP che gli è stato assegnato via DHCP dal vostro router ADSL. Per scoprire quale IP gli è stato assegnato, sarà necessario utilizzare un programma di port scanning.
È stato utilizzato il programma Nmap; è un software libero distribuito con licenza GNU GPL da Insecure.org, creato per effettuare port scanning, cioè mirato all’individuazione di porte aperte su un range di indirizzi IP, in grado di determinare quali servizi di rete dei client siano disponibili.
Una volta scaricato e avviato sul proprio PC, conoscendo l’indirizzo di rete assegnato al vostro PC (esempio: 192.168.1.104) sarà sufficiente effettuare una scansione sull’intera rete utilizzata (esempio 192.168.1.0) per trovare l’indirizzo IP assegnato al vostro RPi.
Su Linux, sarà sufficiente aprire un Terminale e digitare il comando:
nmap -v -sP 192.168.1.0/24
al termine della scansione, verrà visualizzato un elenco di tutti gli IP attivi trovati sulla vostra rete; tra quelli uno è l’IP che è stato assegnato dal router al vostro RPi.
Nel caso usiate un dispositivo smartphone Android, vi consiglio di utilizzare l’App Fing. Una volta scaricata e installata l’App, dovrete collegare il vostro smartphone alla rete domestica WiFi e da li lanciare una scansione della rete.
In breve tempo troverete tutti i dispositivi connessi alla vostra rete domestica, compreso il vostro RPi.
Connessione via SSH al Raspberry Pi
Il sistema più semplice per connettervi, sia da sistemi Linux che Windows, è utilizzare il software PuTTY.
PuTTY è un client SSH e Telnet, sviluppato inizialmente da Simon Tatham per la piattaforma Windows. PuTTY è un software open source, di cui è disponibile il codice sorgente ed è sviluppato e supportato da un gruppo di volontari.
Sarà sufficiente inserire l’indirizzo IP del vostro RPi nella casella Host Name e premere Open, in quanto il servizio impostato è già SSH la porta è la 22 (come da figura a lato).
Una volta connessi in SSH, vi apparirà la finestra di terminale di login del RPi, dove dovrete inserire le credenziali di accesso.
Inserite come utente (login as:) pi e come password: raspberry .
Il nome dell’utente resterà sempre pi mentre la password potrà essere cambiata durante la configurazione successiva. Non sarà necessario creare altre utenze d’accesso al sistema.
Installazione del software del progetto
Una volta connessi al vostro RPi tramite la connessione in SSH tramite un cavo Ethernet, procedete subito all’espansione e all’aggiornamento del sistema operativo, tramite il programma interno raspi-config.
Ultimate queste operazioni, seguite le istruzioni per installare il software del progetto.
Digitate questo comando per installare il software git:
sudo apt-get install git
Rispondete ‘y’ alla domanda Do you want to continue? [Y/n]
per installare git.
Poi, con questo comando, scaricare il software CubeSatSim dalla rete.
git clone https://github.com/alanbjohnston/CubeSatSim.git
Entrate nella cartella CubeSatSim, con il comando:
cd CubeSatSim
ed installare un file aggiuntivo di libreria, con il comando:
sudo apt-get install libsndfile1-dev
Rispondete ‘y’ alla domanda Do you want to continue? [Y/n]
per installare la libreria.
Dalla stessa posizione, con questo altro comando, scaricare il software PiFmRds dalla rete.
git clone https://github.com/ChristopheJacquet/PiFmRds.git
Entrate nella cartella PiFmRds/src, con il comando:
cd PiFmRds/src
compilate il programma, con il comando:
make
A compilazione terminata, uscite dalla cartella PiFmRds e CubeSatSim con il comando:
cd ../../
Comandi del programma di trasmissione PiFmRDS
Questo progrramma permette di far generare al Raspberry Pi una modulazione radio in FM, con la generazione dei dati RDS (Radio Data System) in tempo reale. Prevede l’uscita del segnale audio in modalità mono o stereo.
Ricevitore radio FM RDS ETON G3
Questo programma è basato sul software del trasmettitore FM creato da Oliver Mattos and Oskar Weigl, e successivamente adattato con l’uso del DMA da Richard Hirst. Christophe Jacquet lo ha adattato ed ha aggiunto il generatore dei dati RDS e il modulatore. Il trasmettitore utilizza il generatore PWM del Raspberry Pi per produrre i segnali VHF.
Trovate tutte le informazioni su: https://github.com/ChristopheJacquet/PiFmRds
Il software è compatibile con qualsiasi versione originale del Raspberry Pi 1 (l’unico originale) e delle versioni del Raspberry Pi 2, 3 e 4.
Il programma Pi-FM-RDS può essere avviato utilizzando questa sintassi delle sue opzioni:
pi_fm_rds [-freq freq] [-audio file] [-ppm ppm_error] [-pi pi_code] [-ps ps_text] [-rt rt_text]
Vi spieghiamo le varie opzioni disponibili, per utilizzare il programma in modo più approfondito:
-freq
specifica la portante della frequenza desiderata (in MHz). Esempio: -freq 107.9
.
-audio
specifica il file audio da utilizzare per la trasmissione. Non è necessario indicare il sample rate: Pi-FM-RDS può ricampionarlo e filtrarlo. Se viene utilizzato un file stereo, Pi-FM-RDS will riprodurrà un segnale FM-Stereo. Esempio: -audio sound.wav
. Il formato supportato dipende da libsndfile
. Prevede e include file WAV e Ogg/Vorbis (e altri ancora) ma non MP3. Specify -
inserito di seguito al comando prevede di leggere i dati audio dall’ingresso standard (utile per fare piping audio nel programma Pi-FM-RDS; devere di seguito).
-pi
specifica il PI-code della broadcast RDS. 4 digit esadecimali. Esempio: -pi FFFF
.
-ps
specifica il nome della stazione (Program Service name, PS) broadcast RDS. Limite: 8 caratteri. Esempio: -ps RASP-PI
.
-rt
specifica il testo radio RDS (RT) che verrà trasmesso. Limite: 64 caratteri. Esempio: -rt 'Hello, world!'
.
-ctl
specifica una pipe con nome (FIFO) da utilizzare come canale di controllo per cambiare il testo PS and RT nel tempo di esecuzione (vedi di seguito).
-ppm
specifica l’errore dell’oscillatore di di sdel vostro Raspberry Pi, in parti per milione (ppm), vedidi seguito.
Di default the PS cambia e avanza durante l’esecuzione del programma Pi-FmRds
, iniziando da 00000000
. Il valore di PS cambia una volta al secondo.
Nel nostro caso, utilizzando una comune radio FM portatile, con integrato il servizio di visualizzazione dati RDS, andremo ad utilizzare la variabile -ps nel comando di esecuzione di trasmissione dei file audio (-ps CUBESAT).
Iniziare a trasmettere con il CubeSat Lite
Se siete arrivati fino a qui senza errori, la programmazione di base del progetto è terminata.
Per avviare manualmente il trasmettitore FM interno del RPi per trasmettere il segnale AFSK in CW, eseguite da terminale il semplice comando base:
sudo ./PiFmRds/src/pi_fm_rds -audio wav/cw.wav
per terminare l’esecuzione del comando, premere i tasti Ctrl Z .
oppure eseguire il seguente comando, per avviare manualmente il trasmettitore FM interno del RPi, per trasmettere il segnale della telemetria in modo Packet FM AFSK 1200 baud :
sudo ./PiFmRds/src/pi_fm_rds -audio wav/afsk2.wav
per terminare l’esecuzione del comando, premere i tasti Ctrl Z .
NOTA: Ora abbiamo attivato con successo la trasmissione dei due file audio di default del progetto. La trasmissione del file audio resta in loop, quindi non terminerà mai. Più avanti vedremo come realizzare un file audio di telemetria personalizzato, con la modulazione in CW e con i dati RDS.
Per creare il file audio personalizzato con modulazione FM AFSK packet 1200 baud, Paolo IV3BVK sta ultimando la sperimentazione.
Successivamente vedremo anche come realizzare delle trasmissioni distinte di file audio diversi.
Ricezione del segnale
Questo sistema, nella sua configurazione standard, trasmette sulla frequenza FM di 107,90 MHz.
Sintonizzate il vostro ricevitore FM con cui desiderate ricevere la telemetria registrata, proveniente dal vostro Simulatore CubeSat Lite!
In altro modo, potete anche utilizzare un ricevitore SDR, installato sul vostro PC.
E se su questa frequenza riceviamo disturbi e/o interferenze di altre stazioni radio vicine?
Se avete delle altre stazioni radio che occupano la frequenza standard FM di 107,90 MHz. (e potrebbe benissimo accadere…), allora vi basterà scegliere e utilizzate una frequenza che vi risulti libera (per esempio, 107,50 MHz.), e inserirete sul vostro Raspberry la prevista variabile di opzione per spostare la frequenza standard di trasmissione. Quindi, in fondo al comando, aggiungerete:
sudo ./PiFmRds/src/pi_fm_rds -audio wav/cw.wav -freq 107.5
Configurazione avanzata
Anche il progetto originale americano prevede una piccola configurazione avanzata di programmazione del software. Di seguito trovate varie configurazioni, sia quelle originali tradotte e migliorate da Paolo IV3BVK, che altre configurazioni NON presenti nel progetto originario. Queste ultime sono state aggiunte da Paolo, che ha desiderato renderle disponibili a tutti coloro che desiderano approfondire questo progetto, distribuite con la stessa licenza del progetto originario.
Il simulatore può essere configurato per iniziare a trasmettere automaticamente alla sua accensione, ma originarimente non lo fa di default; volendo scegliere questa opzione, è necessario creare degli script ad hoc e dei comandi appropriati per configurare il sistema operativo, invece di inviare manualmente i comandi di trasmissione dall’interno del RPi.
Anche questa è una configurazione avanzata, non presente nel progetto originale, che Paolo IV3BVK ha desiderato inserire in questo progetto.
Creazione degli script di avvio per trasmettere un singolo file audio
Creare uno script non è difficile e qui sotto vi sarà possibile capire facilmente cosa andiamo a comandare e il modo corretto per farlo.
Innanzitutto è necessario posizionarsi all’interno della cartella principale “/home/pi”; di seguito ci si sposterà nella cartella che contiene il programma o lo script da eseguire.
Nello script di avvio si può scegliere se far attendere il sistema prima di lanciare il programma o lo script, tramite il comando sleep. Questo può essere necessario se il programma in questione fa uso di driver o della rete internet o deve attendere che il sistema operativo termini di caricare altri programmi necessari al suo funzionamento.
Poiché il comando viene lanciato durante la fase di avvio dell’intero sistema operativo, probabilmente alcuni moduli potrebbero non essere stati ancora caricati, oppure non si è ancora connessi ed autenticati alla rete Wi-Fi, o ancora servizi come server o demoni, potrebbero non essere ancora pronti a lavorare correttamente.
La soluzione è quella di far “dormire” per un tempo a nostra scelta lo script, con l’istruzione sleep, tempo ampiamente sufficiente per evitare le problematiche poc’anzi descritte. In questo esempio di programmazione il valore è stato impostato a 20 secondi.
Terminata l’attesa impostata, verrà eseguito il comando che avvia il programma o lo script, ed esso va dato così come lo si darebbe nel terminale. Il comando sudo è facoltativo, viene utilizzato solo se è richiesto dall’esecuzione del programma specifico.
Iniziare a creare il primo file nella /home/pi/ ; lo script avvio-cw.sh, eseguendo il comando:
nano avvio-cw.sh
al suo interno, scrivere il seguente codice:
cd /
cd home/pi/CubeSatSim
sleep 20
sudo ./PiFmRds/src/pi_fm_rds -audio wav/cw.wav .ps CUBESAT
cd /
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Procedere allo stesso modo per creare lo script avvio-packet.sh:
nano avvio-packet.sh
cd /
cd home/pi/CubeSatSim
sleep 20
sudo ./PiFmRds/src/pi_fm_rds -audio wav/afsk2.wav -ps CUBESAT
cd /
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Autorizzare l’esecuzione dei file
Una volta terminata la scrittura ed aver salvato i file, renderli eseguibili con il comando:
sudo chmod 755 avvio-cw.sh
sudo chmod 755 avvio-packet.sh
Test di funzionamento dei file
Eseguiamo gli script per controllare se il codice viene eseguito correttamente; il programma dovrebbe avviarsi correttamente (tenere in considerazione l’eventuale tempo di ritardo impostato), facendo udire la telemetria via radio.
I due comandi di avvio manuale degli script sono:
sh avvio-cw.sh
sh avvio-packet.sh
Creazione della cartella di log delle esecuzioni
In questa cartella verrà scritto un file di log, in cui verranno riportati gli eventuali errori occorsi durante l’esecuzione dei due script e del programma.
Sempre dall’interno della cartella /home/pi, eseguire il comando:
cd
sudo mkdir logs
Creazione di un testo personalizzato di telemetria in CW
Grazie al programma generaWAV per il RPi (ver. 1.1) appositamente realizzato dall’amico e Socio Radioamatore Massimo IV3FHH, abbiamo la possibilità di creare diversi file audio personalizzati, contenente il testo della telemetria. Sarà sufficiente creare un normale file di testo, che verrà poi convertito in un file audio WAV.
Scaricate il programma generaWAV.zip dall’Archivio di questo sito; copiate il file estratto all’interno della cartella principale /home/pi del vostro RPi.
Per realizzare il testo fisso personalizzato della telemetria, è necessario utilizzare un comune editor di testo per creare il file.
Dall’interno della directory principale /home//pi del RPi, con il comando seguente andremo a creare un nuovo file di testo, che conterrà i caratteri del testo della telemetria:
nano telemetria1.txt
All’interno del file vuoto, potete scrivere ciò che desiderate; nel nostro caso abbiamo inserito:
VVVVV ARI PN JN65HW CUBESATSIM LITE PROJECT
CQ CQ IO3303
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Creare un altro file di telemetria, di nome telemetria3.txt, con questo contenuto:
CQ CQ IO3303 A 001 002 001 V 012 013 012 KKK
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
All’interno del file README_generaWAV trovate le seguenti informazioni per utilizzare il programma nel modo corretto.
## Informazioni del programma generaWAV
## Autore: Massimo Costalonga – IV3FHH
Salve, queste sono le informazioni per utilizzare il programma generaWAV per Raspberry
che traduce un testo in un file wav “modulato” in CW.
Esempio di utilizzo:
generaWAV -v60 -otest.wav ciao : crea il file audio test.wav contenente “ciao” in CW a 60 cpm.
generaWAV -v60 -ocq.wav “cq cq de iq3pn k” : crea il file audio cq.wav con la chiamata.
generaWAV -v60 -fprova.txt -oprova.wav : crea il file audio prova.wav prelevando il testo dal file prova.txt
I parametri di default sono: 40 cpm e testo.wav per il file di uscita.
73 de Massimo – IV3FHH
Per il nostro utilizzo sceglieremo la terza opzione, ovvero quella che ci permette di generare iun file audio prelevando il testo da un file.
Per fare ciò, digitare il seguente comando:
./generaWAV -v60 -ftelemetria1.txt -otelemetria1.wav
./generaWAV -v60 -ftelemetria3.txt -otelemetria3.wav
Dopo una breve elaborazione, all’interno della cartella principale /pi troverete due nuovi file chiamati telemetria1.wav e telemetria3.wav; questi sono i file audio personalizzati che utilizzeremo nel nostro progetto.
Non rimane che spostare i file appena generati nella cartella definitiva e modificare lo script di esecuzione automatica.
Per spostare il file audio nella cartella definitiva, digitare:
mv -f telemetria1.wav /home/pi/CubeSatSim/wav/telemetria1.wav
mv -f telemetria3.wav /home/pi/CubeSatSim/wav/telemetria3.wav
L’opzione -f di mv permette di sovrascrivere il file, se è già presente nella posizione di destinazione.
NOTA: Utilizzeremo questo metodo per creare tutti i testi di telegrafia personalizzati di cui abbiamo bisogno.
Per modificare lo script di esecuzione e far trasmettere il nostro file personalizzato, digitare il comando:
nano avvio-cw.sh
al suo interno, modificare il seguente codice:
cd /
cd home/pi/CubeSatSim
sleep 20
sudo ./PiFmRds/src/pi_fm_rds -audio wav/telemetria1.wav -ps CUBESAT
cd /
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Creazione dello script per generare la telemetria automatizzata
La creazione di questo script non è diversa dal precedente script di avvio, solamente si diversifica per i comandi in esso contenuti. Questo script sostituisce quello precedente di avvio della telemetria in CW.
Sono stati interiti diversi tempi d’attesa per distanziare le varie azioni ed è stato utilizzato un modo diverso per gestire il trasmettitore FM; in questo caso il trasmettitore rimane sempre attivo e gli vengono inviati diversi singoli file audio da trasmettere, sequenzialmente ma in tempi diversi.
Utilizzeremo i precedenti file audio telemetria1.wav e telemetria3.wav, assieme al nuovo file telemetria2.wav che verrà generato ciclicamente dallo script.
Dobbiamo creare due script, uno che prelevi i dati della telemetria reale e lo script di esecuzione generale.
Per creare lo script di prelievo della telemetria, digitare:
nano genera_tel2.sh
al suo interno, inserire il seguente codice:
## genera parte variabile telemetria
d=`date +"%m %h %H.%M"`
t=`/opt/vc/bin/vcgencmd measure_temp`
vc=`/opt/vc/bin/vcgencmd measure_volts core`
tl=$d" "$t" "$vc
echo $tl > vp.txt
./generaWAV -v60 -fvp.txt -otelemetria2.wav
mv -f telemetria2.wav /home/pi/CubeSatSim/PiFmRds/src/
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Una volta terminata la scrittura ed aver salvato i file, renderlo eseguibile con il comando:
sudo chmod 755 genera_tel2.sh
Per creare il nuovo script di esecuzione, digitare:
nano avvio_seq-cw.sh
al suo interno, inserire il seguente codice:
#!/bin/bash
cd /
# attesa di 20sec dall’avvio del RPi prima della prima trasmissione
sleep 20
# avvio della generazione della telemetria variabile”
cd /home/pi/
./genera_tel2.sh
# inizio del ciclo delle quattro trasmissioni telemetriche
# loop infinito della telemetria
while true; do
# rigenerazione della parte variabile della telemetria
cd /home/pi/
./genera_tel2.sh
#avvio delle tre trasmissioni singole
#una di seguito all’altra con pausa di 3sec
cd /home/pi/CubeSatSim/PiFmRds/src/
# trasmissione del primo messaggio fisso con ID RDS IQ3PN-PN
cat telemetria1.wav | sudo ./pi_fm_rds -audio – -ps IQ3PN-PN
sleep 3
# trasmissione secondo messaggio con dati Rasp Pi variabili e con ID CUBESAT
cat telemetria2.wav | sudo ./pi_fm_rds -audio – -ps CUBESAT
sleep 3
# trasmissione terzo messaggio fisso con ID RDS IQ3PN-PN
cat telemetria3.wav | sudo ./pi_fm_rds -audio – -ps IQ3PN-PN
#pausa di 20sec fra una sequenza loop di messaggi ed la successiva
sleep 20
done
cd /
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Autorizzare l’esecuzione del file della telemetria automatizzata
Una volta terminata la scrittura ed aver salvato i file, renderlo eseguibile con il comando:
sudo chmod 755 avvio_seq-cw.sh
Aggiungere l’avviamento automatico dello script a Crontab
Nei sistemi operativi Unix e Unix-like, il comando crontab consente la pianificazione di comandi, ovvero consente la registrazione di questi presso il sistema operativo, per essere poi mandati in esecuzione periodicamente in maniera automatica dal sistema stesso. Lo stesso nome «crontab» si riferisce anche ai file utilizzati dal comando crontab, come «registri» dei comandi pianificati.
Generalmente, crontab usa un demone, chiamato crond, che in quanto tale è costantemente in esecuzione in background e, una volta al minuto, legge i contenuti del registro dei comandi pianificati ed esegue quelli per cui si è esaurito il periodo di attesa. Un comando mandato in esecuzione da crontab viene chiamato cronjob.
Iniziare, utilizzando il comando:
sudo crontab -e
aggiungere alla fine del file “crontab”, la seguente stringa:
@reboot sh /home/pi/avvio_seq-cw.sh
NOTA BENE: Se desideriamo far partire l’altro script della telemetria, quello standard in Packet FM AFSK 1200 baud, inserire il il nome dell’altro script creato (avvio-packet.sh).
Questa istruzione programma il sistema per indicare che ad ogni avvio del Raspberry dovrà essere avviato il launcher che abbiamo specificato nella riga aggiuntiva.
Se si desidera salvare in un file tutto quello che accade nel terminale, bisognerà aggiungere una seconda parte al comando, in questo modo:
@reboot sh /home/pi/avvio_seq-cw.sh > /home/pi/logs/cronlog 2>&1
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Riavvio del Raspberry Pi e collaudo del funzionamento
Bene! Avete terminato, ora è tutto pronto per divertirsi!
Riavviando il sistema, il programma di trasmissione della telegrafia si avvierà automaticamente, dopo pochissimo tempo dall’accensione.
Procedere con il comando di riavvio:
sudo reboot
Una volta effettuato il riavvio del RPi, ripartendo il programma inizierà a girare e a funzionare regolarmente, anche se nessuna finestra video verrà visualizzata e senza doversi connettere via PC al RPi.
In caso di errore
Nel caso in cui il programma trovasse un problema e si bloccasse, è possibile andare a visualizzare l’errore restituito, come se fosse stato aperto in una finestra del terminale. Per far questo, è necessario andare a vedere cosa è stato scritto nel log, connettendosi al RPi via PC e inserendo i comandi seguenti:
cd /
cd logs
cat cronlog
Nel caso vi siano stati errori, ora vi verranno visualizzati a schermo; se tutto fila liscio invece non troverete scritto nulla.
Connessione di rete Ethernet
Trovate l’indirizzo IP privato del vostro RPi, digitando il comando ifconfig
quando non è connesso ad una rete (per esempio, con il WiFi disabilitato o disconnesso e nessuna connessione via cavo Ethernet.) Questo indirizzo assomiglierà a 169.xxx.yyy.zzz, dove xxx, yyy, e zzz sono numeri che vanno da 1 a 255. Annotatevi il numero IP che trovate configurato, vi servirà più avanti!
Connessione di rete WiFi
RPi WiFi dongle
In alcuni casi può essere utile desiderare di comandare il vostro RPi da remoto in modo wireless, ovvero senza alcuncavo connesso ad esso. Nel progetto di Paolo IV3BVK è previsto anche l’utilizzo di un dongle USB WiFI ad hoc, che funziona benissimo con il RPi 1 B+.
La maggior parte dei dongle WiFi hanno sempre funzionato senza problemi sulle varie versioni di RPi, ma per farlo è necessario configurare correttamente il file wpa_supplicant.conf, presente all’interno del sistema operativo. Per trovare il vostro tipo di configurazione seguite le indicazioni presenti nel sito di raspberrypi.org, a seconda del tipo e del numero delle reti WiFi desiderate da configurare sul dispositivo.
In questo progetto, abbiamo utilizzato per comodità l’accesso WiFi tramite l’AP di uno smartphone, connesso con protocollo di sicurezza WPA2 PSK.
Per configurare il file in modo corretto, procedere come segue:
Editare il file wpa_supplicant.conf , che trovate in /etc/wpa-supplicant/ :
sudo nano wpa_supplicant.conf
e all’interno del file (che potrebbe anche essere vuoto…), scrivete questo codice:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=IT
network={
ssid="NOME_DELLA_RETE_WIFI"
psk="password_della_rete_wifi"
key_mgmt=WPA-PSK
}
Chiudere l’editor di testo con CTRL+X e confermare il salvataggio del file.
Giunti a questo punto è necessario riconfigurare l’interfaccia WiFi, in modo che vengano lette le modifiche effettuate; fatelo con il comando:
wpa_cli -i wlan0 reconfigure
Ora il vostro RPi si connetterà automaticamente all’AP dello smartphone, al suo riavvio.
Per visualizzare e controlare la connessione WiFi da terminale, digitare il comando:
iwconfig
Esiste anche la possibilità di effettuare la configurazione e connessione WiFi tramite un programma grafico, che cerca e connette i vari AP WiFi presenti nell’ambiente circostante. Per utilizzare questo sistema, seguire le informazioni presenti nel sito raspberrypi.stackexchange.com, installando il programma wicd-curses .
Istruzioni per accendere il CubeSat Lite
- Connettere l’alimentatore al vostro CubeSat Simulator Lite. Se l’alimentazione proviene da un powerbank, assicuratevi che non ci sia da premere un pulsante di accensione sullo stesso powerbank. Quando il RPi si avvierà, potrete vedere un LED rosso sempre acceso e un LED verde lampeggiare.
- Attendete 10 secondi dall’avvio per poi ascoltare la telemetria in AFSK sulla frequenza di 107.907 MHz NBFM (dando l’apposito comando da terminale…), con una larghezza di banda di 20kHz. (Vedere la sezione di configurazione Ground Station, eccetto la sintonia su 107.907 MHz. Potete utilizzare anche una comune radio FM radio per ascoltare questo segnale).
- Se ricevete la telemetria attraverso un software SDR sul vostro PC, avviate il programma AFSK1200Decoder (con un VBCable configurato) e vedrete iniziare la decodifica della telemetria con il testo “hi hi …”.
Nota: Il VB–CABLE è un virtual audio device che lavora come fosse un cavo audio virtuale connesso tra i vari accessori.
Istruzioni per spegnere il CubeSat Lite
- Per spegnere il vostro RPi in modo corretto, è necessario utilizzare un PC con installato il programma PuTTY e una connessione via cavo Ethernet.
- Disabilitare il WiFi se presente sul computer. Aprire una pagina web e verificare che non sia possibile raggiungere nessun sito
da internet
. Inserire il cavo Ethernet nel RPi e nel PC. Vedrete illuminarsi le luci verde e gialla sullo stampato del RPi o sul connettore Ethernet (dipende dalla versione del RPi).
- Avviare il programma Putty sul PC. Nell’ hostname digitate
169.xxx.yyy.zzz
(l’indirizzo IP che avevate visto e salvato in precedenza) e lasciare la porta configurata sul valore 22. Selezionate il pulsante Open.
- Se è la prima volta che fate questa operazione dal vostro PC, potreste visualizzare un avviso di sicurezza SSH del programma PuTTY, ma questo non è un problema; non preoccupatevi. Selezionate Yes per continuare e vedrete subito visualizzata la finestra nera del terminale del vostro Raspberry Pi.
- Quando su questa finestra apparirà il comando
login as:
digitate pi
seguito da Invio. Per la password:
digitate raspberry
seguito da Invio (tutto in lettere minuscole).
- Una volta entrati nel RPi, al prompt dei comandi
pi@raspberrypi:
digitate il comando:
sudo shutdown now
seguito da Invio.
- Il LED verde lampeggerà per alcuni secondi per poi spegnersi. La trasmissione FM si arresterà. Ora potrete tranquillamente togliere l’alimentazione dal powerbank o scollegare il plug dell’alimentatore, in modo da spegnere definitivamente il Raspberry Pi. Il LED rosso del Raspberry Pi si spegnerà.
PuTTY potrebbe segnalarvi un errore tipo Putty Fatal Error
, ma questo è normale avendo perso la connessione di rete. Potete ora chiudere il programma Putty, scollegare il cavo Ethernet e riaccendere eventualmente la connessione WiFi del PC, spenta in precedenza.
Questo è tutto, vi auguro una buona sperimentazione!!
Potete trovare altre interessanti informazioni sull’argomento e sulla telemetria, consultando la pagina wiki originaria del progetto CubeSatSim Simulator Project wiki.
Fonte: Alan B. Johnston (KU2Y) su github.com
(Tradotto e revisionato per questo sito)
’73 de Paolo Garbin – IV3BVK (K1BVK)