AVR Ethersex: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 37: Zeile 37:
* Linux mit Programmierumgebung [[AVR_Eclipse|AVR-gcc]] - Eclipse nicht nötig  
* Linux mit Programmierumgebung [[AVR_Eclipse|AVR-gcc]] - Eclipse nicht nötig  
* Linux Live-CD: http://www.ethersex.de/index.php/Live_CD
* Linux Live-CD: http://www.ethersex.de/index.php/Live_CD


===Ethersex Download===
===Ethersex Download===
Terminalfenster öffnen und ins persönliche Dokumenteverzeichnis wechseln:
cd Dokumente
Download mittels git Versionsverwaltungstool (dabei wird ein Unterverzeichnis ethersex angelegt):
git clone git://github.com/ethersex/ethersex.git
===Ethersex konfigurieren===
Im folgenden wird die Konfiguration für eine per Netzwerk und Webbrowser ansteuerbare Steckdosenleiste beschrieben. Mit dem standardmäßig verbauten ATMega32 können nur Basisfunktionen von Ethersex genutzt werden, da dieser nur 32KB Flashspeicher bietet. Für umfangreichere Projekte ist ein ATMega644 empfehlensert und für folgende Konfiguration Voraussetzung.
Ins Ethersex-Verzeichnis wechseln:
cd ~/Dokumente/ethersex
Konfigurationstool starten:
make config
Folgendes graphisches Konfigurationsprogramm wird angezeigt:
:[[Bild:Ethersex1.png]]
* Standardkonfiguration auswählen:
** '''''Load a Default Configuration'''''
** Im folgenden Menü mit der Space-Taste den Eintrag '''''Pollin AVR Net-IO''''' auswählen
* Analog dazu folgende Optionen aktivieren:
|-General Setup
|  |-Target MCU:ATmega644
|-Network
|  |-Hostname: beliebig - z.B. Steckdose
|  |-Ethernet (ENC28J60) support
|  |  |


IN ARBEIT
IN ARBEIT

Version vom 30. März 2010, 16:23 Uhr

Allgemeines zu Ethersex

Auszug aus dem Ethersex-Wiki (http://www.ethersex.de): Ethersex ist eine universelle Plattform um Mikrocontroller per IP-Protokoll anzusprechen und stellt eine solide Basis für eigene Entwicklungen dar. Ethersex wurde im August 2007 von stesie als alternative Firmware für fd0s Etherrape ins Leben gerufen. Namensgebend war seinerzeit die Erweiterung um IPv6-Unterstützung. Seither hat sich jedoch viel getan, sodass inzwischen nicht mehr nur die Etherrape-Hardware als Plattform unterstützt wird, sondern auch diverse andere Atmega Hardware Projekte. Der Code ist inzwischen weitgehend stabil und wird auch im professionellen Umfeld eingesetzt.

Hier nur einige Features, die mit Ethersex genutzt werden können (vollständige Featureliste siehe Ethersex-Wiki): - Bootloader um via Netzwerk neue Software aufzuspielen - Webinterface - Telnet Interface - Ansteuerung von Funksteckdosen - Ein- Ausgangsporterweiterungen via 74HC165 bzw. 74HC595 CMOS-Schieberegister - SD-Kartenansteuerung als Datenlogger - Auslesen von One-Wire Temperatursensoren (DS1820) - usw.

Lauffähig ist Ethersex auf folgenden AVR/Ethernetboards:


Pollin AVR Net-IO

Pollin bietet ein recht funktionelles und preiswertes AVR- Board incl. Ethernetschnittstelle sowohl als Bausatz (ca 20€) als auch als Fertiggerät (ca 28€) an.

Die meisten Ein-Ausgangspins sind über einen 25 poligen SUB-D Stecker und einen Wannenstecker (EXT) herausgeführt. Desweiteren ist eine RJ45-Netzwerkbuchse und eine 9 polige SUB-D Buchse (Serielle Schnittstelle) vorhanden. Zu guter Letzt ist noch ein 10 poliger Wannenstecker (ISP) vorhanden, um den Mikrocontroller zu programmieren.

Aufgrund dieser Ausstattung eignet sich das AVR Net-IO ideal, sowohl um in die Ethersex Programmierung einzusteigen (Experimentierplattform) als auch um damit eigene Projekte zu realisieren.

Einziger kleiner Makel des Boards: Es ist "nur" mit einem ATMega32 Controller ausgestattet, der nur 32Kb Flash bietet. Damit ist das Flash bereits beinahe vollständig mit einer Ethersex-Basis-Version ausgelastet. Dieser Controller kann gegen den pinkompatiblen ATMega644 ersetzt werden. Damit können dann zahrlreiche weitere Ethersex Module - wie z.B. Ansteuereung von Funksteckdosen, genutzt werden.

Ethersex Software

Voraussetzungen

Ethersex kann ohne größeren Aufwand nur mit Linux compiliert werden. Es gibt eine Möglichkeit mit cygwin und WinAVR Ethersex unter Windows zu compilieren, die hier aber nicht näher besprochen werden soll. Für Windows-User gibt es aber eine spezielle Linux Live-CD, die sämtliche Software und Compiler bereits enthält, ohne ein Linux installieren zu müssen.

Voraussetzungen:


Ethersex Download

Terminalfenster öffnen und ins persönliche Dokumenteverzeichnis wechseln:

cd Dokumente

Download mittels git Versionsverwaltungstool (dabei wird ein Unterverzeichnis ethersex angelegt):

git clone git://github.com/ethersex/ethersex.git


Ethersex konfigurieren

Im folgenden wird die Konfiguration für eine per Netzwerk und Webbrowser ansteuerbare Steckdosenleiste beschrieben. Mit dem standardmäßig verbauten ATMega32 können nur Basisfunktionen von Ethersex genutzt werden, da dieser nur 32KB Flashspeicher bietet. Für umfangreichere Projekte ist ein ATMega644 empfehlensert und für folgende Konfiguration Voraussetzung.

Ins Ethersex-Verzeichnis wechseln:

cd ~/Dokumente/ethersex

Konfigurationstool starten:

make config

Folgendes graphisches Konfigurationsprogramm wird angezeigt:

Ethersex1.png
  • Standardkonfiguration auswählen:
    • Load a Default Configuration
    • Im folgenden Menü mit der Space-Taste den Eintrag Pollin AVR Net-IO auswählen
  • Analog dazu folgende Optionen aktivieren:
|-General Setup
|   |-Target MCU:ATmega644
|-Network
|   |-Hostname: beliebig - z.B. Steckdose
|   |-Ethernet (ENC28J60) support
|   |   |


IN ARBEIT


Optimierung Windows Zugriff

Beim Zugriff auf das Webinterface mittels Windows fällt ein deutlich langsamers Ansprechverhalten als unter Linux auf. Dies liegt daran, dass Ethersex TCP/IP Pakete versendet, die weniger Nutzdaten enthält, als in ein Paket passen würde. Windows wartet in so einem Fall 200ms bis es mit einem ACK antwortet. Ethersex wiederum wartet auf ein positives ACK, bis es das nächste Paket sendet. Dies führt zu den deutlichen Verzögerungen gegenüber Linux, das ankommende Pakete sofort mit einem ACK beantwortet. Man kann aber auch Windows das selbe Verhalten wie Linux beibringen. Dazu sind zwei Registrierungseinträger erforderlich:

  • Regedit öffnen
  • Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<GUID> auswählen. <GUID> GUID ist dabei die GUID der Netzwerkkarte (erkennt man am einfachsten an der IP).
  • TcpAckFrequency (Typ DWORD) = 1 setzen
  • TcpDelAckTicks (Typ DWORD) = 0 setzen
Bulbgraph.png Hinweis:
Die beiden Schlüssel vom Typ DWORD evtl. neu anlegen, falls diese noch nicht existieren sollten