Inhaltsverzeichnis
Einleitung
Diese Seite enthält allgemeine wie auch detaillierte Informationen zur Jennic based Remote Control (JbRC).
Idee
Die Idee hinter dem Projekt JbRC ist eine eigens für den MikroKopter entwickelte Fernsteuerung, welche eine große Anzahl von Kanälen wie auch eine kabellose Debug-Verbindung mit integriertem Display und USB-Verbindung zum PC beinhalten soll.
Funk-Module
Allgemeines
Nach Beurteilung einer Menge an Kriterien fiel die Entscheidung auf die Jennic JN5139-M002 Module. Diese auf IEEE 802.15.4 und ZigBee basierten Module unterstützen eine weitere von Jennic zur Verfügung gestellte Layer, JenNet genannt, welche dem Entwickler eine Menge Arbeit bezüglich Netzwerk-Betrieb und Konfiguration abnimmt.
Die JN5139-Module sind relativ günstige Komplettmodule für den Betrieb in JenNet, ZigBee oder IEEE 802.15.4 Netzwerken.
Sie enthalten zusätzlich zum kompletten RF-Teil den eigentlichen JN5139 und 128kB Flash für die Anwendung.
Technische Details JN5139-M002
MCU
- 32-Bit low-power RISC Processor with 32MIPS
- 192kB ROM for System-Code (Bootloader, Protocol-Stack)
- 96kB RAM
- MAC ID on-Chip
- AES Encryption
- 4-Input 12bit ADC
- 2 11bit DACs
- 2 Comparators
- 2 Application Timers/Counters
- 2 UARTS
- SPI
- TWI
- 19 GPIOs (21, of which 2 are not connected on High-Power modules)
Transceiver
- 2.4GHz IEEE 802.15.4 compliant
- 128bit AES security processor
- MAC accelerator with packet formatting, CRCs, address check, auto-acks, timers
- Integrated power management and sleep oscillator for low power
- On-chip power regulation for 2.2V to 3.6V battery operation
- Deep sleep current 0.2μA
- Sleep current with active sleep timer 1.3μA
- Receiver sensitivity -100dBm
- Transmit power +19dBm
Hardware
Empfänger
Hinweis
Obwohl "Empfänger" unpassend ist (beide Einheiten senden und empfangen), wird bei dieser Bezeichnung wohl jeder vermuten, dass es sich hier um die fliegende, und beim "Sender" um die benutzerseitige Einheit handelt.
Technische Details
Der Empfänger besteht aus einem JN5139-M02 Modul und einem ATmega32, welcher die Steuerung weiterer Komponenten übernimmt
(z.B. Cam, Beleuchtung, OSD)
Anschlüsse
- JTAG für ATmega32: Haben alle meine Prototypen
Extension zu FC : Signal JbRC <-> FC.UART1, Verbindung FC.Extension <-> NC.SV8
Extension zu NC : Verbindung FC.Extension <-> NC.SV8
NC Debug : NC.Debug <-> JbRC
OSD : NC.Debug <-> eagle_OSD, ATmega32 <-> eagle_OSD (OSD-Steuerung)
- PORTA : ATmega32.PortA (Erweiterung)
I2C (JP1) : ATmega32.I2C (Erweiterung/eagle_CamControl)
Schema
Sender
Technische Details
Der Sender besteht aus einem JN5139-M02 Modul und einem STM32F103 (ARM CORTEX-M3 von ST), welcher
- Die AD-Wandlung der Stickdaten
- Den USB-Slave Stack
- Die Steuerung des Displays
- Debuggen bzw. Einstellungen des Kopters ermöglicht
- Die Daten zur kabellosen Übertragung packetiert (Steuerung Kopter, Cam, Beleuchtung, Debugging usw)
Anschlüsse
- JTAG für STM32 : Haben alle meine Prototypen
- PD_LOW : Port D Lower-Byte von STM32 (für Schalter etc).
- PD_HIGH : Port D Higher-Byte von STM32 (für Schalter etc.)
- JOY1X _1Y _2X _2Y _3X _3Y: Spannungsteiler der Joysticks (Analog)
- AIN : Weiterer Analog-Input
- V+ : Batterien (Versorgung, wird gemessen)
USB : Verbindung zum PC für Software-Updates ALLER Kopter-Komponenten, Verbindung zum KopterTool usw.
- Beeper : Steuerausgang für Piepser (Alarme usw.)
- Display : SPI-Schnittstelle zum 2.1" Display inkl. PWM für Backlight
Schema
Software
Entwicklungsumgebungen
JN5139
Code::Blocks IDE http://www.jennic.com/support/software/
STM32
Rowley CrossStudio for ARM 2.0
ATmega32
AVR Studio
Änderungen an den FC-Sources
Hier passiert nur wenig. Mit dem DSL-Protokoll als Grundlage und einigen Makefile-Änderungen ist es möglich, die Firmware mit Unterstützung für den JN5139-Empfänger zu kompilieren, ohne groß in die Sources einzugreifen. Dieser Punkt ist erledigt, wobei die Anpassungen von neueren FC-Sources überschaubar bleiben.
Software Empfänger
JN5139
Obwohl ich ursprünglich geplant habe, eigene Software für die Jennic-Module zu schreiben, halte ich von dieser Idee nach intensiven Übungen mit den Ressourcen hierfür nicht mehr viel. Es soll Leute geben, die Code::Blocks IDE für verschiedene Systeme empfehlen, vor denen ziehe ich den Hut, doch ich habe zu große Probleme mit so ziemlich allem hier. Momentan sehe ich hier 2 Lösungen: entweder werde ich die von Jennic angebotene Wireless-Serial Software, oder aber AT-Jenie (ein serial command line interface) verwenden. Bei AT-Jenie würde die Kommunikation ausschließlich über einen UART ablaufen, wobei ein Header bestimmt, was das Modul zu tun hat.
ATmega32
Software Sender
STM32
JN5139
Siehe Software/Empfänger/JN5139
Status
Hardware
Die Prototypen wurden hergestellt und getestet.
Software
Da ich neu bin (war) im Bereich der STM32 Microcontroller, und zugleich auch noch eine Ausbildung am laufen habe, sind die Fortschritte nicht unbedingt sofort ersichtlich.
Das Konzept des ganzen Projekts ist noch nicht digital verfügbar, da es auf einem großen Stück Papier an der Wand hängt...
Momentan ist die Software für den STM32 am Entstehen. Um den Einstieg zu erleichtern, habe ich diverse Cortex-M3 Workshops besucht.
Impressum
Fragen, Ideen, Kritik bitte per Mail an: lukepatrick(at)dunwell.info