Simulatore CubeSat SIM

Abbiamo pensato di presentarvi anche questo progetto, assieme alle altre proposte che troverete visitando questo sito.

Abbiamo desiderato riprendere il progetto descritto nel 2019 in questo articolo (che trovate descritto anche nel sito della Sezione ARI di Pordenone APS), apportando per questa edizione le opportune modifiche e miglioramenti. In questa realizzazione è stato utilizzato un dispositivo Raspberry Pi versione 0 W, in quanto il  suo precedente e semplice modello versione Pi 1 B+ ha fatto la sua storia.

Di seguito, vi spieghiamo l’evoluzione e la realizzazione di questo progetto, realizzato a più mani.

Questo progetto, già nel 2019 aveva riscosso molto interesse allo stand radioamatoriale della Sezione ARI di Pordenone; pensando a questo e dedicandoci all’argomento satelliti, ci è venuta l’idea di ripresentare questo progetto completamente rielaborato ed aggiornato.
Perché non costruirne uno assieme, per poi studiarne il funzionamento del sistema e relazionarlo agli ospiti interessati, durante i due giorni della fiera?

Il progetto originale

Questo progetto no-profit è sponsorizzato dalla  Radio Amateur Satellite Corporation, AMSAT®

Per praticità, ho tradotto l’articolo originale, scritto dal Dr. Alan Johnston, (KU2Y), allora 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 e semplice dispositivo di simulatore.
Le informazioni originali su questo progetto, sono descritte in inglese, e le trovate disponibili sul suo sito a questo link.

Licenza utilizzata

Il progetto originale è stato distribuito con la licenza CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.

Realizzazione pratica

Nel nostro caso, disponendo di  un Raspberry Pi (qualsiasi modello va bene, noi abbiamo utilizzato il Raspberry Pi 0 W), non avete nulla da costruire in più, oltre ad una piccola e semplice antenna filare di qualche centimetro. Se poi lo vorrete alloggiare all’interno di un contenitore che assomigli ad un satellite CubeSat, tutto sarà ancora più bello e veritiero!
Nell’immagine seguente vedete il modello realizzato nel 2019 per queste dimostrazioni (calcolo e realizzazione del cubeSAT SIM, di Franco IU3ADL), attraverso i dati forniti nel progetto originale.

Bellissimo cubeSAT SIM, realizzato da Franco IU3ADL

Nel nostro caso dovrete scaricare ed installare diverso software nel Raspberry e poi collegare ad un pin del connettore GPIO una piccola antenna filare auto costruita di 10 – 15 cm. per iniziare ad ascoltare e fare le prime prove con il simulatore satellitare. Questa piccola antenna vi permetterà di ricevere a distanza il segnale radio FM della telemetria, attraverso una comune radio analogica FM stereo, con sistema RDS.

Per ovvie ragioni, alcuni  alcuni dati telemetrici (tensione batteria e temeperatura CPU) di questo modello sono reali, mentre gli altri saranno simulati, in quanto il Raspberry non ha tutti sensori ad hoc installati al suo interno; nella descrizione dell’articolo verrà data la possibilità di creare anche un testo di simulazione personalizzato in CW da far trasmettere al dispositivo.

Scheda Raspberry Pi 0 W con cover

NOTA: La costruzione dell’antenna esterna può essere realizzata utilizzando un qualsiasi filo semi rigido o il connettore centrale di un cavo coassiale RG/58U; l’antenna viene connessa al pin GPIO 4 (GPCLK0) tramite un comune connettore per jumper; il filo viene fatta uscire dal contenitore del RPi attraverso un foro aggiuntivo realizzato sulla scatola, oppure attraverso la finestra del connettore GPIO (se utilizzate questo tipo di coperchio del contenitore). In altro modo, potete effettuare un piccolo foro vicino al connettore della GPIO. L’ingombro dell’antenna può essere ulteriormente ridotto, utilizzando un filo semi rigido e avvolgendolo a spirale esternamente al contenitore del Rpi .

L’alimentazione al Raspberry viene fornita tramite un comodo power bank per telefono cellulare con connessioni USB; al suo posto si potrebbero installare dei piccoli pannelli solari che vadano a ricaricare delle piccole batterie al Litio, posizionate affianco al dispositivo. Ma non è questo il caso…

Installazione del sistema operativo

Il vostro Raspberry Pi (che da ora in poi chiameremo per comodità RPi) funziona installando il suo Sistema Operativo Raspbian; per l’installazione, seguire le informazioni descritte nel loro sito. Potete utilizzare una memoria SD di capacità da 8 GB a salire…

NOTA: Dato che questo dispositivo ha il dispositivo WiFi già a bordo, una volta installato il sistema operativo nella memoria SD, ricordatevi di aggiungere il file wpa_supplicant.conf alla partizione di boot, presente nella memoria SD (effettuate la stessa procedura che si utilizza per l’installazione del sistema pi-star – WiFi Builder).
NOTA: Per attivare fin dal primo avvio il server SSH interno al Rpi, sarà sufficiente aggiungere un file di testo vuoto di nome ssh direttamente nella partizione boot della SD, utilizzando lo stesso lettore di SD utilizzato per la scrittura 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. Effettuando queste due procedure, dopo l’avvio la prima connessione con il vostro RPi si potrà effettuare via SSH tramite la connessione WiFi.

Se non desiderate effettuare a mano tutte queste particolari procedure sopra descritte, utilizzate direttamente il programma Raspberry Pi Imager, che trovate descritto e potete scaricare  da questo link. Utilizzando questo software, potrete comodamente gestire in modo grafico tutte le opzioni sopra descritte.

Identificazione dell’indirizzo IP del RPi

Una volta acceso il vostro RPi, attendete la sua iniziale configurazione e connessione alla vostra rete WiFi di casa (la prima volta, attendendo circa 3 – 5 minuti); poi dovrete trovare l’indirizzo IP che gli è stato assegnato dal servizio DHCP dal vostro router ADSL.  Per scoprire quale indirizzo IP gli è stato assegnato, sarà necessario utilizzare un programma di port scanning.

Noi abbiamo utilizzato il programma Nmap; è un software libero distribuito con licenza GNU GPL da Insecure.org, creato per effettuare il 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.

Se utilizzate un PC con Linux le cose sono più semplici, 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 gli indirizzi che troverete visualizzati ci sarà l’IP che è stato assegnato dal router al vostro RPi.

Nel caso usiate un dispositivo smartphone Android, vi consiglio di utilizzare l’App Network Analyzer. Una volta scaricata e installata l’App, dovrete collegare il vostro smartphone alla stessa 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 nuovo RPi.

Connessione via SSH al Raspberry Pi

Il sistema più semplice per connettervi, sia da PC con Linux o con Windows, è quello di 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 è già impostato per utilizzare la porta 22 (come dalla figura sopra).

Una volta connessi al Rpi in SSH, vi apparirà la finestra di terminale di login, dove dovrete inserire le credenziali di accesso.
Inserite le credenziali di default, utente (login as:) pi e password: raspberry  .

Il nome dell’utente sarà sempre pi mentre la password potrà essere modificata seguendo le indicazioni che trovate in fondo all’articolo. Non sarà necessario creare altri utenti d’accesso al sistema.

Installazione del software del progetto

Una volta connessi via WiFi al vostro RPi con connessione SSH, procedete iniziando con l’espansione e l’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 il programma.

 

Poi, con questo comando, scaricate il software originale CubeSatSim da GitHub, da internet.

git clone https://github.com/alanbjohnston/CubeSatSim.git

 

Spostatevi all’interno della cartella CubeSatSim, con il comando:

cd CubeSatSim

ed installate un file aggiuntivo della libreria del RPi, 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, scaricate il software PiFmRds da Internet.

git clone https://github.com/ChristopheJacquet/PiFmRds.git

 

Entrate nella cartella PiFmRds/src, con il comando:

<

p style=”text-align: justify;”>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 programma permette di far generare al Raspberry Pi una modulazione radio in modalità FM, con la generazione dei dati RDS (Radio Data System); tutto questo in tempo reale. Il programma prevede la trasmissione del segnale radio in modalità mono o stereo.

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 radio VHF.
Trovate tutte le informazioni su: https://github.com/ChristopheJacquet/PiFmRds

Il software è compatibile con qualsiasi versione originale del Raspberry Pi (era previsto originariamente per la versione 1 (inizialmente era la sola originale); successivamente è stato possibile utilizzarlo anche nelle successive versioni del Raspberry Pi 2, 3 e 4).

Il programma Pi-FM-RDS viene utilizzato utilizzando questa sintassi per le 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 poter 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; vedere 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 il programma PS cambia e avanza durante l’esecuzione del programma Pi-FmRds, iniziando dal valore 00000000. Il valore della variabile PS cambia una volta al secondo.

Nel nostro caso, utilizzando una comune radio FM portatile (con integrata la visualizzazione dati RDS), andremo ad utilizzare la variabile  -ps nel comando di esecuzione di trasmissione dei file audio (ad esempio:  -ps CUBESAT).

Iniziare a trasmettere con il CubeSat SIM

Se siete arrivati fino a qui senza errori, la programmazione di base del progetto è completata.
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 potete 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 avete 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. Successivamente vedremo assieme come realizzare un file audio di telemetria personalizzato, con la trasmissione in CW e con l’invio dei dati RDS. 
Per creare il file audio personalizzato con modulazione FM AFSK packet 1200 baud, si possono trovare diverse alternative.  Il metodo più veloce e semplice da utilizzare, è quello di registrare l’audio proveniente da un modem packet avente le stesse caratteristiche, o trovare un file audio già pronto, cercando in Internet.
Successivamente vedremo anche come realizzare delle trasmissioni distinte di file audio diversi.

Ricezione del segnale

Questo sistema (utilizzando la configurazione iniziale), trasmette sulla frequenza FM di 107,90 MHz.  Sintonizzate il vostro ricevitore FM su quella frequenza per iniziare a ricevere il segnale proveniente dal vostro Simulatore CubeSat Lite!  Desiderando riceverlo in altro modo, potete anche utilizzare un ricevitore SDR, installato nel vostro PC.

E se su questa frequenza ricevete dei disturbi e/o interferenze di altre stazioni radio o dispositivi elettrici, a  voi vicini?
Se avete delle altre stazioni radio che occupano la frequenza FM di 107,90 MHz.  (e potrebbe benissimo accadere…), allora vi basterà configurare il programma e utilizzare una frequenza che vi risulti libera (ad esempio: 107,50 MHz.); per far questo inserirete sul vostro Raspberry il valore corretto dell’opzione del programma, per modificare e spostare la frequenza di trasmissione.
Quindi, in fondo al comando, aggiungerete:

sudo ./PiFmRds/src/pi_fm_rds -audio wav/cw.wav -freq 107.5

Configurazione avanzata

Anche nel progetto originale americano è stata prevista una piccola configurazione avanzata di programmazione di questo 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 noi, in quanto desideriamo 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 non lo fa di default. Desiderando scegliere questa possibilità, è necessario creare degli script ad hoc e dei comandi appropriati per configurare il sistema operativo, in modo da non essere obbligati ad inviare manualmente i comandi di avvio delle varie trasmissioni.
Anche questa è una configurazione avanzata, non presente nel progetto originale, che abbiamo desiderato inserire in questo progetto.

Creazione degli script di avvio per trasmettere un singolo file audio

Creare uno script linux non è difficile e qui sotto riuscirete a capire facilmente cosa andrete 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 modificare / 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. Questa pausa può essere necessaria se il programma in questione fa uso di driver o della rete internet o debba attendere che il sistema operativo  termini di caricare altri programmi necessari al suo funzionamento.

Poiché il comando di avvio del programma viene lanciato durante la fase di avvio del sistema operativo, probabilmente alcuni moduli necessari al suo funzionamento potrebbero non essere stati ancora caricati, oppure non si è ancora connessi ed autenticati alla rete WiFi, o ancora servizi come servizi o demoni linux potrebbero non essere ancora pronti per 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 sleep è stato impostato a 20 secondi.
Terminato il tempo di attesa impostato, verrà eseguito il comando che avvia il programma o lo script, ed esso va inviato così come lo si farebbe nel terminale. Il comando amministrativo sudo è facoltativo, verrà utilizzato solo se è richiesto dall’esecuzione del programma specifico.

Iniziate a creare il primo file nella /home/pi/ ; lo script si chiamerà  script avvio-cw.sh, eseguendo il comando:

nano avvio-cw.sh

al suo interno, scrivete il seguente codice:

<

p style=”text-align: justify;”>cd /
cd home/pi/CubeSatSim
sleep 20
sudo ./PiFmRds/src/pi_fm_rds -audio wav/cw.wav .ps CUBESAT
cd /

Chiudete l’editor di testo con CTRL+X e confermate il salvataggio del file.

Procedete 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 /

Chiudete l’editor di testo con CTRL+X e confermate il salvataggio del file.

Autorizzare l’esecuzione dei file

Una volta terminata la scrittura ed aver salvato i file, rendeteli eseguibili con il comando:

sudo chmod 755 avvio-cw.sh

sudo chmod 755 avvio-packet.sh

Test di funzionamento dei file

Eseguite gli script per controllare se il codice viene eseguito correttamente; il programma dovrebbe avviarsi correttamente (tenere in considerazione l’eventuale tempo di ritardo impostato nel comando sleep), facendo udire l’identificativo CW e 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, avete 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 andrete a creare un nuovo file di testo, che conterrà i caratteri del testo della telemetria:

nano telemetria1.txt

All’interno del file vuoto, scrivete ciò che desiderate venga trasmesso; nel nostro caso abbiamo inserito:

VVVVV IV3 RADIOLAB PN JN65HW CUBESATSIM LITE PROJECT   CQ CQ  IV3RADIOLAB

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 IV3RADIOLAB  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 -o test.wav ciao : crea il file audio test.wav contenente “ciao” in CW a 60 cpm.
generaWAV -v60 -o cq.wav “cq cq de iq3pn k” : crea il file audio cq.wav con la chiamata.
generaWAV -v60 -f prova.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

 

Generazione dei files audio

Per il vostro utilizzo sceglierete la terza opzione, ovvero quella che vi permette di generare un file audio, prelevando il testo da un file.
Per fare ciò, digitare il seguente comando:

./generaWAV -v60 -f telemetria1.txt -otelemetria1.wav

./generaWAV -v60 -f telemetria3.txt -otelemetria3.wav

Dopo una breve elaborazione, all’interno della cartella principale /home/pi/ troverete due nuovi file nominati telemetria1.wav e telemetria3.wav; questi sono i file audio personalizzati che utilizzerete nel vostro progetto.

Non vi 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, digitate:

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, nel caso fosse già presente nella posizione di destinazione.

NOTA: Utilizzerete questo metodo per creare tutti i testi di telegrafia personalizzati di cui avrete bisogno.

 

Modifica dello script di avvio della telegrafia

Per modificare lo script di esecuzione e far trasmettere il vostro file personalizzato, digitate il comando:

nano /home/pi/avvio-cw.sh

al suo interno, modificate il seguente codice:

cd /
cd home/pi/CubeSatSim
sleep 20
sudo ./PiFmRds/src/pi_fm_rds -audio wav/telemetria1.wav -ps CUBESAT
cd /

Chiudete l’editor di testo con CTRL+X e confermate 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.

NOTA: Sono stati inseriti 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.
Utilizzerete i precedenti file audio telemetria1.wav e telemetria3.wav, assieme al nuovo file telemetria2.wav che verrà generato ciclicamente, in automatico, dallo script.

Dovete 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 reale del Rpi (temperatura e tensione della batteria), digitate:

nano genera_tel2.sh

al suo interno, inserite 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 -f vp.txt -o telemetria2.wav

mv -f telemetria2.wav /home/pi/CubeSatSim/PiFmRds/src/

 

Chiudete l’editor di testo con CTRL+X e confermate il salvataggio del file.

Una volta terminata la scrittura ed aver salvato i file, rendetelo eseguibile con il comando:

sudo chmod 755 genera_tel2.sh

 

Per creare il nuovo script di esecuzione, digitate:

nano avvio_seq-cw.sh

al suo interno, inserire il seguente codice:

#!/bin/bash

cd /
# attesa di 20 secondi dall’avvio del RPi prima di attivare la 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 3 secondi
cd /home/pi/CubeSatSim/PiFmRds/src/

# trasmissione del primo messaggio fisso con ID RDS IV3RADIOLAB PN
cat telemetria1.wav | sudo ./pi_fm_rds -audio – -ps IV3RADIOLAB PN
sleep 3

# trasmissione secondo messaggio con dati Rasp Pi variabili e con ID IV3RADIOAB CUBESAT
cat telemetria2.wav | sudo ./pi_fm_rds -audio – -ps IV3RADIOLAB CUBESAT
sleep 3

# trasmissione terzo messaggio fisso con ID RDS IV3RADIOLAB PN
cat telemetria3.wav | sudo ./pi_fm_rds -audio – -ps IV3RADIOLAB PN

#pausa di 20 secondi fra una sequenza loop di messaggi ed la successiva
sleep 20

done
cd /

 

Chiudete l’editor di testo con CTRL+X e confermate il salvataggio del file.

Aubilitare l’esecuzione del file della telemetria automatizzata 

Una volta terminata la scrittura ed aver salvato i file, rendetelo 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 e l’esecuzione di vari comandi automatizzati da far eseguire al 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.

Iniziate, utilizzando il comando:

sudo crontab -e

aggiungete alla fine del contrenuto del file, la seguente stringa:

@reboot sh /home/pi/avvio_seq-cw.sh

NOTA BENE: Se desiderate far partire l’altro script della telemetria (quello standard in Packet FM AFSK 1200 baud), moodificate il comando inserendo 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

Chiudete l’editor di testo con CTRL+X e confermate il salvataggio del file.

Riavvio del Raspberry Pi e collaudo del funzionamento

Bene! Avete terminato, ora è tutto pronto per iniziare a divertirsi!
Riavviando il sistema, il programma di trasmissione della telegrafia si avvierà automaticamente, dopo pochissimo tempo dall’accensione (dipende dal tempo di sleep che avrete impostato).
Procedere con il comando di riavvio del Rpi:

sudo reboot

Una volta effettuato il riavvio del RPi, ripartendo il programma si avvierà e a funzionare regolarmente, in modalità autonoma e senza doversi connettere in SSH via PC al RPi.

Cambio della password dell’utente pi

Per avere una maggior sicurezza di accesso al vostro Rpi, potete cambiare la password di accesso dell’utente pi, utilizzando il seguente comando:

passwd

Il sistema vi chiderà di confermare, per due volte, la stessa password.

Che fare 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 nuovamente in SSH al RPi via PC, e inserendo i comandi seguenti:

cd /
cd logs
cat cronlog

Nel caso vi siano stati errori, ora li vedrete descritti sul vostro schermo; se tutto ha funzionato regolarmente, non troverete scritto nulla.

Connessione di rete Ethernet

Potete trovare l’indirizzo IP privato assegnato al 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.

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 alcun cavo di rete connesso ad esso. Nel progetto originario è previsto anche l’utilizzo di un dongle USB WiFI ad hoc, che funziona benissimo con qualsiasi versione del RPi. Questi dispositivi si trovano facilmente in commercio.

La maggior parte dei dongle WiFi hanno sempre funzionato senza problemi sulle varie versioni di RPi. Per configurare le varie connessioni WiFi, è 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 del modem/router della rete di casa, aggiungendo poi l’AP di uno smartphone, connesso con protocollo di sicurezza WPA2 PSK.

Per configurare il file in modo corretto, procedere come segue, editando 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
}

network={
ssid=”cellulare_Paolo”
psk=”password_dello_smartphone”
}

 

Chiudete l’editor di testo con CTRL+X e confermate 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, al suo riavvio, si connetterà automaticamente all’AP dello smartphone, se n on trova l’AP della rete di casa.
Per visualizzare e controlare la connessione WiFi da terminale, digitare il comando:

iwconfig

C’è 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 SIM

  1. Connettere l’alimentatore al  vostro CubeSat Simulator Lite (Rasspberry Pi). 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 il LED verde sempre acceso e che lampeggia durante il funzionamento.
  2. Attendete 10 secondi dall’avvio per poi ascoltare la telemetria in AFSK sulla frequenza FM che avete selezionato, il segnale ha una larghezza di banda di 20 kHz. .
    Potete utilizzare un ricevitore SDR ma anche una comune radio FM per ascoltare questo segnale.
  3. 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. 
    Nota: Il VBCABLE è un software virtual audio device che lavora come fosse un cavo audio virtuale connesso tra i vari accessori del PC.

Istruzioni per spegnere il CubeSat SIM

  1. Per spegnere il vostro RPi in modo corretto, è necessario utilizzare un PC con installato il programma PuTTY e una connessione WiFi o via cavo Ethernet.
  2. Avviare il programma Putty sul PC. Nell’ hostname digitate 169.xxx.yyy.zzz (l’indirizzo IP che avevate visualizzato e salvato in precedenza) e lasciare la porta configurata sul valore 22. Selezionate il pulsante Open.
  3. 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.
  4. 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).
    Se avete già modificato la password, utilizzerete quella che avete previsto.
  5. Una volta entrati nel RPi, al prompt dei comandi pi@raspberrypi: digitate il comando:
    sudo shutdown now   seguito da Invio.
  6. Dopo un po’ di tempo il LED verde dell’alimentazione lampeggerà per alcuni secondi per poi spegnersi definitivamente. La trasmissione FM si sarà già arrestata. Ora potrete tranquillamente sconnettere l’alimentazione dal powerbank o scollegare il plug dell’alimentatore, in modo da spegnere definitivamente il Raspberry Pi.
    PuTTY potrebbe segnalarvi un errore tipo Putty Fatal Error, ma questo è normale avendo perso la connessione di rete con il Rpi. Potete ora chiudere il programma Putty.

Questo è tutto, vi auguriamo una buona sperimentazione!! Potete trovare altre interessanti informazioni sull’argomento e sulla telemetria, consultando la pagina wiki originaria del progetto CubeSatSim Simulator Project wiki.

Se desiderate ulteriori informazioni riguardanti gli argomenti descritti in questo articolo, contattateci agli indirizzi descritti (o tramite il modulo) che trovate nella nostra pagina Contatti.  

’73 de il gruppo IV3 RadioLab

Fonte del testo originale: Alan B. Johnston (KU2Y) su github.com
(Liberamente tradotto e revisionato  da noi per questo sito)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

IN EVIDENZA

Scopri di più da IV3 Radiolab

Abbonati ora e continua a leggere e avere accesso all'archivio completo.

Continua a leggere il sito