В
- Il server sarà basato su Raspberry Pi 3
Sarebbe interessante sollevare in aria un server composto da una sola unità, ma il suo peso + il peso dell'UPS... Tutto ciò richiederebbe una notevole forza di sollevamento. E perché, se sulla base di un Raspberry Pi 3 compatto fosse possibile implementare un server abbastanza decente, con una potenza di calcolo diverse centinaia di volte maggiore della macchina su cui si divertì Tim Berners-Lee nel 1991.
- Lanciamo il server in una mongolfiera
Avevamo l'idea di sollevare il server su una sonda a elio, ma poi il server non avrebbe funzionato a lungo prima che il pallone esplodesse ad alta quota in un'atmosfera rarefatta e l'intera struttura cadesse a terra. Volevo espandere la "finestra" del tempo di trasmissione a un'ora e mezza. E poi hanno deciso di usare un palloncino. La durata del volo è di due ore. Inoltre, nonostante il volo non sia del tutto controllabile, nella cesta può essere presente il nostro ingegnere che, in caso di malfunzionamento, può velocemente, sul posto, “accenderlo e spegnerlo”.
- Utilizzeremo le comunicazioni cellulari come rete di trasporto
Le moderne antenne WiFi possono "perforare" distanze piuttosto lunghe, ma per questo sarebbe necessario costruire un complesso di comunicazioni che non sia molto inferiore nei suoi parametri a una stazione radar militare. E per 1,5-2 ore di comunicazione, non ha senso costruire un sistema del genere, perché all'altitudine del pallone le comunicazioni cellulari devono funzionare stabilmente.
Dopo aver formulato questi “postulati”, il progetto non sembrava più irrealizzabile e presto abbiamo iniziato a lavorare in tutte e tre le direzioni contemporaneamente.
Prima di tutto ci siamo rivolti ai ragazzi di
Quindi abbiamo tirato fuori il Raspberry Pi 3, che giaceva sul comodino del nostro amministratore, e abbiamo iniziato a configurarlo.
Collegata la fotocamera:
E lo abbiamo testato sul nostro "Semyon":
Semyon è molto comodo come modello e assistente: non chiede cibo, non è distratto dal telefono, è sempre di ottimo umore e con un ampio sorriso su tutto il casco. Naturalmente non abbiamo bisogno di una tuta spaziale per il volo, ma crea la giusta atmosfera in ufficio.
Lo schema del progetto è il seguente:
Per i test a terra viene utilizzata la Powerbank; per il lancio serve qualcosa di più affidabile.
Forse l'hardware più interessante è una scheda per ricevere dati da tutti i sensori:
Ragazzi di
L'abbiamo lanciato, configurato e dopo un paio di settimane di programmazione e squat con i tamburelli, siamo riusciti a ottenere i dati di telemetria e una foto di Semyon da una fotocamera grandangolare:
I dati di telemetria vengono trasmessi su una riga nel seguente formato:
Questo codice converte quindi la stringa in un array e invia i dati al sito:
$str = 'N:647;T:10m55s;MP.Stage:0;MP.Alt:49;MP.VSpeed:0.0;MP.AvgVSpeed:0.0;Baro.Press:1007.06;Baro.Alt:50;Baro.Temp:35.93;GPS.Coord:N56d43m23s,E37d55m68s;GPS.Home:N56d43m23s,E37d55m68s;Dst:5;GPS.HSpeed:0;GPS.Course:357;GPS.Time:11h17m40s;GPS.Date:30.07.2018;DS.Temp:[fc]=33.56;Volt:5.19,0.00,0.00,0.00,0.00,0.00,0.00,0.00';
parse_str(strtr($str, [
':' => '=',
';' => '&'
]), $result);
print_r($result);
Descrizione di alcuni dati:
- N:2432; — numero del pacchetto dati, sempre in aumento
- T:40m39s; — tempo dal momento in cui il controllore di volo viene acceso
- MP.Stadio:0; — fase di volo (0 — a terra o a una distanza inferiore a 1 km, 1 — salita, 2 — volo stazionario in quota, 3 — discesa)
- MP.Alt:54; — altitudine barometrica in metri dal livello del mare — dovrebbe essere visualizzata
- MP.VVelocità:0.0; — velocità verticale in metri al secondo con filtro mediano
- MP.AvgVSpeed:0.0; — velocità verticale in metri al secondo con filtro di media
- Baro.Press:1006.49; — pressione barometrica in millibar
- Baro.Alt:54; - altitudine secondo il barometro
- Baro.Temp:36.99; - temperatura del barometro stesso
- Coordinazione GPS:N56d43m23s,E37d55m68s; — coordinate attuali
- GPS.Casa:N56d43m23s,E37d55m68s; — coordinate del punto di partenza
- GPS.Alt:165; — Altitudine GPS in metri
- GPS.Dst:10; — distanza dal punto di partenza in metri
- DS.Temp:[fc]=34.56; - sensore di temperatura sulla scheda
Come appare l'output:
Array
(
[N] => 647
[Т] => 10m55з
[MP_Stage] => 0
[MP_Alt] => 49
[MP_VSpeed) => 0.0
[MP_AvgVSpeed] => 0.0
[Baro Рrеss] => 1007.06
[Baro_Alt] => 50
[Baro_Temp] => 35.93
[GPS_Coord] => N56d43m23s,E37d55m68s
[GPS_Home) => N56d43m23s,E37d55m68s
[Dst] => 5
[GPS_HSpeed] => 0
[GPS_Course] => 357
[GPS_Time] => 11h17m40s
[GPS_Date] => 30.07.2018
[DS_Temp] => [fс] ЗЗ.56
[Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00
)
Cosa fare se la comunicazione cellulare “cade”? In questo caso abbiamo una seconda scheda; nel modem vengono inserite due SIM card (uno slot alla volta):
Può passare automaticamente a un canale di riserva se quello principale smette improvvisamente di rispondere.
Cosa succede se entrambe le reti cellulari non sono più disponibili?
(Ragazzo da
In questo caso avremo un localizzatore GPS indipendente che invierà un segnale sulla sua posizione. Tieni presente che lo fa non tramite una rete cellulare, la cui disponibilità su lunghe distanze non è garantita da nessuno, ma tramite un satellite.
Sì, il localizzatore GPS è leggermente più grande di quello impiantato sotto la pelle di James Bond. Poiché la nostra competizione dipende dalle coordinate del server volante, questa parte dei dati ricevuti dal tabellone sarà la più importante. Ma di questo parleremo nel prossimo post. Prossimamente, segui il nostro blog!
Crediamo così tanto nel successo dell'intera impresa che abbiamo addirittura indetto un concorso per chi all'improvviso vorrà indovinare dove si fermerà la pallina. Dettagli nel ns
Fonte: habr.com