Übersetzungen dieser Seite:

Merkur Breakoutboard

Experimente mit modernster Technik erfordern manchmal Finger in Ameisengröße. Um Mini-Funkmodule auch als Mensch in den Griff zu bekommen haben wir dieses Board geschaffen. Das Merkur Board ist ein Arduino und Contiki-OS kompatibles Mikrocontrollerboard mit integriertem 2.4Ghz IEEE802.15.4 Funksender. Der Funkteil unterstützt alle auf 802.15.4 basierenden Funkprotokolle wie 6LoWPAN, ZigBee und RF4ce.Shopbereich

Durch den integrierten Arduino-OSD Bootloader kann das Modul mit einem FTDI USB-Serial Wandler programmiert werden.

HOWTOs

Arduino-IDE mit dem Merkurboard Diese Anleitung beschreibt die Installation der Arduino-IDE und zeigt einige Beispiel mit dem Merkurboard und seiner Funkverbindung.

Erste Schritte mit dem Merkurboard Wir nehmen das Merkurboard in Betrieb. Eines als USB-Router und das zweite Merkurboard als Funkknoten. Danach pingen wir den Knoten an und kommunizieren über unseren Browser mit dem Knoten.

Erste Schritte mit Contiki-Programmierung Wir definieren neue Ressourcen im Contiki und schalten/lesen Pins.

Merkurboard im Rasperry Wir stecken das Merkurboard in einen Rasperry und nehmen es in Betrieb.

Server-Client Demonstration Ein Merkurboard sendet durch drücken eines Schalters einem Zweiten Merkurboard eine Coap Meldung Led Toggle

AVR-Motes-in-Cooja Simulation des Funkknotens über den Cooja Simulator

IP-Anbindung

Die Integration in das eigene IP-Netz erfolgt über einen RaspyEdge-Shield oder einen 6LoWPAN-Edge-Router. Dieser verbindet unsern 6LoWPAN-Merkur mit unserem IP-Netz um ihn über eine IPv6 Adresse ansprechen zu können.

Auf Applikationsebene wird das COAP Protokoll eingesetzt.

COAP-Resourcen

Resource GET POST Comments
/.well-known/core X X Well-Known URIs
/p/model X - Model Name
/p/sw X - Software Version
/p/name X X Name
/a/led X X Status LED
/s/button X - Config Button
/s/cputemp X - CPU Temperature
/s/battery X - Battery Status

Coap-Clients

Mit Hilfe des Copper-Add-On spricht der Mozilla Browser das Coap Protokoll. Auf der Kommandozeile kann z.B. die libcoap helfen. Durch Eingabe einer Coap URI kann auf den Sensorknoten zugegriffen werden:

CoAP senden und empfangen am PC/RaspberryPi/Server

Coap on Android

Beispiele

 
 coap-client -m get coap://[aaaa::221:2eff:ff00:264e]:5683/.well-known/core
 coap-client -m get coap://[aaaa::221:2eff:ff00:264e]:5683/s/battery

Firmware

Das Modul ist Contiki-OS und Arduino kompatibel. Der Arduino-Bootloader ist vorprogrammiert. Contiki OS beinhaltet einen sehr kleinen IP Stack uIP genannt welcher eine Ipv6 und eine 6LoWPAN Implementierung beinhaltet. Das Betriebssystem ist in C geschrieben und wird mithilfe von Make gesteuerten Cross-Compilern für die jeweilige Hardwareplattform übersetzt.

Images findest du hier:

http://www.open-entry.com/osdomotics/osd-bin/osd-20130225/

Die Source Codes findest du auf Github:

https://github.com/osdomotics/osd-contiki

Debian

Installation der Toolchain

apt-get install avr-libc binutils-avr gcc-avr gdb-avr simulavr avrdude doxygen

OSD-Contiki besorgen:

https://github.com/osdomotics/osd-contiki/archive/master.zip

Entpacke es in deinem Home Directory.

cd ~/osd-contiki/examples/osd/er-rest-example-merkurboard
./run.sh
sudo ./flash.sh      

Mit run.sh werden die Sourcen übersetzt und ein Flash und ein Eprom Image erzeugt. Mit dem flash.sh Script werden die Images mit Hilfe von Avrdude über einen 3.3V USB-Serial-Wandler in das Merkurboard gespielt.

Die Dokumentation im Order doc wird durch eingabe von make erzeugt.

cd ~/osd-contiki/doc
make
~/osd-contiki/doc/html/index.html

Cooja Simulator

apt-get install openjdk-7-jdk openjdk-7-jre ant libncurses5-dev build-essential binutils-msp430 gcc-msp430 msp430-libc
cd ~/osd-contiki
git submodule update --init
ant run

Links:

http://blog.toubiweb.com/install-java-on-debian/

Hardware

Pinouts

SV1 SV3 SV2
Interrupt COM Arduino/Contiki AVR Pin GND NC VCC RXD TXT DTR Pin AVR Arduino/Contiki COM Interrupt
1 2 3 4 5 6






Merkurbourd
SV2:13 PB4 D14 PCINT4
TxD0 D0 PE1 SV1:01 SV2:12 PB3 D13 MISO/SPI PCINT3
PCINT9 RxT0 D1 PE0 SV1:02 SV2:11 PB1 D12 SCK/SPI PCINT1
D2 PE3(AIN1) SV1:03 SV2:10 PB2 D11 MOSI/SPI PCINT2
INT4 D3 PE4 SV1:04 SV2:09 PB0 D10 SS/SPI PCINT10
INT5 LED1 D4 PE5 SV1:05 SV2:08 PD1 D9 SDA/i2c INT1
AREF AREF SV1:06 SV2:07 PD0 D8 SCL/i2c INT0
JTAG TDI D15/A0 PF7 SV1:07 SV2:06 PD2 D7 RxD1 INT2
JTAG TD0 D16/A1 PF6 SV1:08 SV2:05 PD3 D6 TxD1 INT3
JTAG TMS D17/A2 PF5 SV1:09 SV2:04 PE6/T3 D5 LED2 INT6
JTAG TCK D18/A3 PF4 SV1:10 SV2:03 RSTN RESET
GND SV1:11 SV2:02 PF1 A5/D20
3V3 SV1:12 SV2:01 PF0 A4/D19

COM Angabe, welchen Kommunikationsmodus (I2C, UART, SPI, LED) über die Pins gefahren werden.
Arduino/Contiki Pin-Belegung für den Arduino-Mode und Contiki OS
AVR Angabge der Pin-Belegung am AVR-Mikroprozessor
Interrupts INT; Interrupts,
PCINT: Interrupts, die im Deep-Sleep-Modus angesprochen werden können,
JTAG: Programmierports (nur während des Bootloaders aktiv, danach standardmäßog deaktiviert)
Pin Angabe der Hardware-Pins der Stecker am Merkur-Board

Contiki Sensoren/Aktoren

Name File PIN AVR Funktion
Battery battery-sensor.c .h Interner Spannungssensor
Button button-sensor.c SV1:4 PE4/INT4 Konfigurationsbutton
DHT11 dht11.c .h SV2:4 PE6 Feuchte/Temperatur Sensor
DS1820 ds1820.c .h SV1:4 PE4 1-Wire Temp Sensor

de/projekte/merkur.txt · Zuletzt geändert: 2014/07/11 08:38 von harald42