kramann.info
© Guido Kramann

Login: Passwort:










EmbSyst
1 day_by_day
2 Eingebettete_Systeme
..2.1 Softwareentwicklung
....2.1.1 AgileSoftwareentwicklung
....2.1.2 Verhalten
....2.1.3 Entwurfsmuster
....2.1.4 FuzzyRegler
....2.1.5 Uebung
..2.2 Arduino
....2.2.1 Uebung1
..2.3 Android
....2.3.1 UML
......2.3.1.1 Volumenberechnung
......2.3.1.2 UML_Klassendiagramm
......2.3.1.3 Konstruktor
......2.3.1.4 Statische_Variable
....2.3.2 bluej
....2.3.3 Threads
....2.3.4 Interfacedesign
....2.3.5 Android
......2.3.5.1 Getting_Started
......2.3.5.2 App
......2.3.5.3 Beispielprojekt
........2.3.5.3.1 Richtlinien
........2.3.5.3.2 Anforderungen
........2.3.5.3.3 Layout
........2.3.5.3.4 Projekt_einrichten
........2.3.5.3.5 Refactoring
........2.3.5.3.6 Icon
........2.3.5.3.7 Icon2
........2.3.5.3.8 Kurzanleitung
........2.3.5.3.9 Architektur
........2.3.5.3.10 Anwendungsklasse
......2.3.5.4 Threads
......2.3.5.5 Activities
......2.3.5.6 Was_ist_wo
......2.3.5.7 Regelungssysteme
........2.3.5.7.1 Servo
........2.3.5.7.2 Fahrzeug
......2.3.5.8 ADB_Apps
......2.3.5.9 Veroeffentlichen
......2.3.5.10 Einzelheiten
........2.3.5.10.1 Bildschirmaufloesung
........2.3.5.10.2 Parameter
........2.3.5.10.3 Permission
........2.3.5.10.4 Latenzzeit
......2.3.5.11 Tonerkennung
........2.3.5.11.1 Wahrscheinlichkeitsrechnung
........2.3.5.11.2 Kovarianz_Scilab
........2.3.5.11.3 Java_Threads
........2.3.5.11.4 Java_Reflection
....2.3.6 Processing
......2.3.6.1 Installation
......2.3.6.2 Erste_Schritte
......2.3.6.3 Mechatronik
......2.3.6.4 Bibliotheken
......2.3.6.5 Uebung
......2.3.6.6 Snippets
........2.3.6.6.1 Dateioperationen
........2.3.6.6.2 Bilder
........2.3.6.6.3 GUI
........2.3.6.6.4 Text
........2.3.6.6.5 PDF
........2.3.6.6.8 Maus
........2.3.6.6.10 Zeit
........2.3.6.6.13 Animation
........2.3.6.6.15 Simulation
......2.3.6.7 Referenzen
....2.3.7 Android_Processing
......2.3.7.1 Basics
......2.3.7.2 Einrichten
......2.3.7.3 Crossplattform
......2.3.7.4 sinus
......2.3.7.5 sample
......2.3.7.6 analyse
......2.3.7.7 synthese
......2.3.7.8 Hilfsapps
......2.3.7.9 Eigene_Library
....2.3.8 Processing_VR
....2.3.9 Shapes3D
....2.3.10 TextToSpeech
....2.3.11 Internetprogrammierung
......2.3.11.1 Codegenerierung
......2.3.11.2 PHP_Programmierung
......2.3.11.3 PHP_OOP
......2.3.11.4 Java
......2.3.11.5 UDP
......2.3.11.6 Internetkontrolle
........2.3.11.6.1 Kamerabild
....2.3.12 OSC
......2.3.12.1 Datenaustausch
......2.3.12.2 i2audiolab
......2.3.12.3 Ardour
....2.3.13 Netzwerkprogrammierung
....2.3.14 JNI
....2.3.15 Erweitern
......2.3.15.1 sprich
......2.3.15.2 spiel
....2.3.16 thbvr
....2.3.17 Reflection
....2.3.18 Script
....2.3.19 Java3D
3 Echtzeitprogrammierung
..3.1 Echtzeit
..3.2 Korrektheit
..3.2 Semaphoren
..3.3 Hardware
..3.5 Synchronprogramm
..3.6 Zustandsmaschine
..3.7 Arduino
....3.7.1 Uebung
....3.7.2 RTOS
....3.7.3 Scheduler
....3.7.4 Semaphor
......3.7.4.1 Laufkatze
......3.7.4.2 Java
......3.7.4.3 Semaphor
....3.7.5 Messages
..3.8 Android
....3.8.2 Threads
......3.8.2.1 Java
......3.8.2.2 Synchronisierung
..3.9 Petrinetze
....3.9.1 Installation
....3.9.2 Test
4 KI
..4.1 Unueberwachtes_Lernen
..4.2 Agentensysteme
....4.2.1 Architekturen
......4.2.1.1 Verhalten
......4.2.1.2 Entwurfsmuster
....4.2.2 SUMO
......4.2.2.1 GettingStarted
......4.2.2.2 Antrieb
......4.2.2.3 Sensoren
......4.2.2.4 Zeitbasis
......4.2.2.5 Fernsteuerung
......4.2.2.6 Umsetzung_Fernst
......4.2.2.7 Fernsteuerung3
......4.2.2.10 Umsetzung
......4.2.2.11 Sockelsoftware
......4.2.2.12 Plan
......4.2.2.13 Lernen
........4.2.2.13.1 Parameter
........4.2.2.13.2 Identifikation
........4.2.2.13.3 Java
..4.3 Genetische_Algorithmen
....4.3.1 Heuristiken
....4.3.2 Genalgorithmus
..4.4 Kalmanfilter
....4.4.1 Vorarbeit
....4.4.2 Minimalversion
....4.4.3 Beispiel
5 Bildverarbeitung
..5.1 Gestalttheorie
..5.2 Bildverarbeitung
6 Technische_Systeme
..6.1 Kulturgeschichte
..6.2 Technikphilosophie
..6.3 Anthropozaen
7 Literatur
kramann.info
© Guido Kramann

Login: Passwort:




SUMO-Roboter über W-LAN fernsteuern

(EN google-translate)

(PL google-translate)

Besucher sollen mit einem ferngesteuerten SUMO gegen einen autonomen SUMO antreten, indem sie Ersteren über W-LAN fernsteuern.

Das verwendete Modul ESP8266 setzt die W-LAN-Schnittstelle seriell gegenüber einem Mikrocontroller um.

Er benötigt eine Stromversorgung von 3,3 Volt, die entweder über einen Spannungsregler bereitgestellt werden kann, oder an einem Arduino abgegriffen werden kann.

Links

https://developer.mbed.org/teams/ESP8266/ #pdf ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf - Schnellstart #pdf wlan_ESP8266_01_4.pdf wlan_ESP8266_01_4.pdf - Verbindung herstellen. #pdf 4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf 4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf - Befehls-Beschreibung.
//#define BAUDRATE 9600
#define BAUDRATE 115200
//#define BAUDRATE 57600

void initTimer1()
{
  TCCR1B &= ~(1<<WGM13); //Mode 4
  TCCR1B |= (1<<WGM12);
  TCCR1A &= ~(1<<WGM11);
  TCCR1A &= ~(1<<WGM10);
    
  //Vorteilung 1: 16000000Hz
  TCCR1B &= ~(1<<CS12);
  TCCR1B &= ~(1<<CS11);
  TCCR1B |= (1<<CS10);
    
  //f = fclk/(2*N*(OCR1A+1))
  //OCR1A = (fclk/(f*2*N))-1
  //OCR1A = 8000000/440 - 1 ==  18181
  //KORRIGIERT:
  //********************************
  //OCR1A = 4000000/440 - 1 ==  9091
  //OCR1A = 16000000/(f*4*N) - 1 ==  9091
  //********************************
  //OCR1A=9091;  //0,5Hz == 4 Schläge!
//  OCR1A=132;  //0,5Hz == 4 Schläge!
  OCR1A=264;  //0,5Hz == 4 Schläge!
  
  //Toggle auf OC1A:
  TCCR1A &= ~(1<<COM1A1);
  TCCR1A |=  (1<<COM1A0);
  pinMode(9,OUTPUT);      
}


void setup() 
{
    //Motortest bei D11, D12:
    //pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
  
    //digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
  
    analogWrite(11,15);
  
    initTimer1();
    //PB2 sicher deaktivieren, da als toter Pin für IR-Anode benötigt:
    DDRB &= ~0b00000100;

    //TSOP 31230 aktivieren:
    //Spannungsversorgung IR-Sensor:
    pinMode(22,OUTPUT);  //A4
    pinMode(23,OUTPUT);  //A5  
    digitalWrite(22,LOW);
    digitalWrite(23,HIGH);
    

    Serial.begin(BAUDRATE);  //Kabelverbindung
    Serial1.begin(BAUDRATE); //Infrarot-Verbindung
    
}

void loop() 
{
     //Zeichen weiterleiten zur IR-Diode:
     while(Serial.available())//Senden
     {
           Serial1.write(Serial.read());
     }
     while(Serial1.available()) //Empfangen
     {
           Serial.write(Serial1.read());
     }
}

Code 0-1: Seriell weiterleiten. Baudrate testen!

Mögliches Vorgehen

  1. Tests: PHP-Skript auf Apache-Server ansprechen
  2. Datenaustausch zwischen Table und Arduino über PC-Server
  3. Datenaustausch über Servlet
  4. Datenaustausch über UDP
  5. Verwendung eines Smartphones als W-LAN-Spot

Schaltvarianten

http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html
http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html

Bild 0-1: http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html

http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/
http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/

Bild 0-2: http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/

http://www.whatimade.today/esp8266-and-the-water-heater/
http://www.whatimade.today/esp8266-and-the-water-heater/

Bild 0-3: http://www.whatimade.today/esp8266-and-the-water-heater/