projekte:xplorer:software
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
projekte:xplorer:software [2014/02/02 14:07] – thasti | projekte:xplorer:software [2014/05/11 12:17] – [Stromverbrauch nach Herunterfahren] thasti | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Software ====== | ====== Software ====== | ||
+ | |||
+ | Die Software für das Projekt wird bei [[https:// | ||
+ | |||
+ | ===== Signalverarbeitung ===== | ||
+ | Da die Erzeugung des IQ-Basisbandsignals direkt im Raspberry Pi passieren sollte, mussten einige Module zur Signalverarbeitung geschrieben werden. Diese umfassen die APRS- und SSTV-Erzeugung, | ||
===== Bestandteile ===== | ===== Bestandteile ===== | ||
Die Software besteht aus kleinen Modulen, die zentral von einer Ablaufsteuerung koordiniert werden. | Die Software besteht aus kleinen Modulen, die zentral von einer Ablaufsteuerung koordiniert werden. | ||
- | * Ablaufsteuerung | + | * Ablaufsteuerung |
- | * PiFM (Python-Wrapper) | + | * LO-Steuerung (Trägerfrequenzerzeugung durch Einstellung des SI570) - C |
- | * APRS (Python-Wrapper) | + | * APRS-Erzeugung |
- | * Robot36 (Python-Wrapper) | + | * Robot36-Erzeugung |
+ | * FM-IQ-Modulation (Mono-NF zu Stereo-IQ) - C | ||
+ | * Sprachsynthese (Aneinanderreihen von Zahlen-WAVs mit Pause) - Python | ||
+ | * Audioplayer für Stereo-IQ-Daten (aplay) - builtin | ||
+ | * Resampling von Audiodateien (resample) - builtin | ||
+ | * Konvertieren der Webcambilder zu 320x240 für Robot36 (convert) - builtin | ||
+ | * gpsd für Aufnahme von GPS-Daten | ||
- | ==== PiFM ==== | + | ==== IQ-Modulation |
- | * übergebene WAV-Datei über HF aussenden | + | * mono-Audiodatei frequenzmodulieren (Frequenzhub und Mittenfrequenz einstellbar) |
- | * **TODO** hinterher HF abschalten | + | * stereo-Audiodatei ausgeben |
+ | |||
+ | ==== LOCTL / LOCTL570 ==== | ||
+ | | ||
==== APRS ==== | ==== APRS ==== | ||
- | | + | * übergebene Position (Lat, Lon, Höhe, Temperatur) in WAV schreiben |
- | * via PiFM versenden | + | * sollte aus Performancegründen in C reimplementiert werden, stellte sich aber als nicht nötig heraus. |
+ | ==== SSTV ==== | ||
+ | * übergebene Bilddatei in Robot-36 kodierte WAV wandeln | ||
- | ==== Robot36 ==== | ||
- | * übergebene Bilddatei in wav wandeln | ||
- | * via PiFM versenden | ||
==== Ablaufsteuerung ==== | ==== Ablaufsteuerung ==== | ||
+ | Parameter T bestimmt die Missions-Steigzeit. Er muss global veränderbar sein. | ||
+ | |||
Im Vorbereitungsbetrieb: | Im Vorbereitungsbetrieb: | ||
* Start der Software | * Start der Software | ||
- | * Warten auf GPS Fix | + | * Status-LED an |
- | * LED an | + | * Warten auf GPS-Fix |
- | * Testaussendungen (APRS, Pause, SSTV, Pause, APRS) | + | * Status-LED blinken |
- | * LED blinken | + | |
* 1 Minute warten | * 1 Minute warten | ||
- | * Missionsstart (LED aus) | + | * Missionsstart (SSTV-Aussendung beginnt) |
Im Missionsbetrieb: | Im Missionsbetrieb: | ||
- | * Speichern aktuelle Positionsinformation | + | * PA an |
- | * Aussendung | + | * Beginn SSTV-Aussendung auf 145.200 (36 Sek), währenddessen: |
- | * 1 Bild speichern | + | * neues Webcambild |
- | * Ansage 3xLAT, 3xLON auf 145.200 MHz (10 Sekunden) | + | * SSTV, APRS und Ansage für nächste Aussendungen erzeugen |
- | * Aussendung | + | * Aussendung APRS auf 144.800 (3 Sek) |
- | * Pause (10 Sekunden) | + | * Aussendung |
- | * Aussendung APRS (3 Sek) | + | * PA aus |
- | * Pause 20 Sekunden | + | * Pause, bis 1min vorbei ist |
- | * nach X Minuten (je nach Version) | + | * nach T wird die Nutzlast abgesprengt |
- | * nach X + TBD Minuten wird der Raspberry Pi heruntergefahren | + | * nach 2*T wird nur noch aller 5 Minuten |
+ | * nach 3*T wird der Raspberry Pi heruntergefahren | ||
Absprengung: | Absprengung: | ||
+ | * Aussendung Signalton | ||
* Mikrotaster abfragen | * Mikrotaster abfragen | ||
- | | + | |
- | * wenn offen: Heizung für ?? Sekunden an | + | * wenn offen: Heizung für 5 Sekunden an |
- | + | ||
- | ==== offene Fragen ==== | + | |
- | * Muss man den Raspberry Pi von Spannung trennen, oder braucht er nach Herunterfahren nur noch wenig Strom? --> scheinbar ist es so, dass er nach dem runterfahren noch mehr strom braucht - also besser anlassen. | + | |
- | + | ||
- | ===== Aufsetzen des Produktivsystems ===== | + | |
- | ==== Installation des Grundsystems ==== | + | |
- | * 2014-01-07-wheezy-raspbian.img auf SD-Karte übertragen | + | |
- | * Raspberry Pi starten lassen, IP per DHCP zuweisen -> pi: | + | |
- | * Ausführen von raspi-config | + | |
- | * Camera Support on | + | |
- | * Expand Filesystem | + | |
- | * mit aptitude alle X-Server-bezogenen Pakete entfernen | + | |
+ | ==== Stromverbrauch nach Herunterfahren ==== | ||
+ | * Muss man den Raspberry Pi von Spannung trennen, oder braucht er nach Herunterfahren nur noch wenig Strom? | ||
+ | * Raspberry + IQ-Mixer + Soundkarte | ||
+ | * Pon = 10V*0,23A = 2,3W | ||
+ | * Poff = 10V*0,09A = 0,9W | ||
+ | * Verringerung der aufgenommenen Leistung auf unter die Hälfte | ||
+ | Das Problem wurde schlussendlich nicht in Software, sondern durch die Kopfschusselektronik gelöst. Damit wird der Raspberry Pi hart vom Akku getrennt, was die Lebensdauer des Peilsenders enorm vergrößert. | ||
+ | ==== Rescue-Modus ==== | ||
+ | Der Raspberry Pi muss bei einem unerwarteten Reboot nach erfolgtem Missionsstart sofort ein Ausklinken auslösen! | ||
==== Vorbereitung Temperatursensor ==== | ==== Vorbereitung Temperatursensor ==== | ||
* apt-get install i2c-tools lmsensors | * apt-get install i2c-tools lmsensors | ||
Zeile 65: | Zeile 78: | ||
* i2cdetect -y 1 --> Anzeige des LM75 | * i2cdetect -y 1 --> Anzeige des LM75 | ||
* echo lm75 0x48 > / | * echo lm75 0x48 > / | ||
- | * |
projekte/xplorer/software.txt · Zuletzt geändert: 2014/05/11 12:18 von thasti