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 16:51] – anleitung erweitert thasti | projekte:xplorer:software [2014/05/11 12:15] – [SSTV] 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 | + | * Warten auf GPS-Fix |
* LED an | * LED an | ||
* Testaussendungen (APRS, Pause, SSTV, Pause, APRS) | * Testaussendungen (APRS, Pause, SSTV, Pause, APRS) | ||
Zeile 32: | Zeile 47: | ||
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 20 Sekunden | ||
- | * 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 |
- | * Aussenden Signalton! | + | |
- | ==== offene Fragen | + | ==== Stromverbrauch nach Herunterfahren |
* 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. | * 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. | ||
+ | * 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 | ||
- | ===== Aufsetzen des Produktivsystems ===== | + | ==== Rescue-Modus |
- | ==== Installation des Grundsystems ==== | + | Der Raspberry Pi muss bei einem unerwarteten Reboot nach erfolgtem Missionsstart sofort ein Ausklinken auslösen! |
- | * http:// | + | |
- | * Raspberry Pi starten lassen, IP per DHCP zuweisen -> pi: | + | |
- | * root-Passwort ändern | + | |
- | * rm / | + | |
- | * apt-get update | + | |
- | * apt-get install ntp fake-hwclock | + | |
- | * apt-get install tasksel | + | |
- | * tasksel install standard | + | |
- | * apt-get update && apt-get dist-upgrade | + | |
- | * rpi-update | + | |
==== Vorbereitung Temperatursensor ==== | ==== Vorbereitung Temperatursensor ==== | ||
* apt-get install i2c-tools lmsensors | * apt-get install i2c-tools lmsensors | ||
Zeile 70: | Zeile 79: | ||
* 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