kramann.info
© Guido Kramann

Login: Passwort:










5.5 SUMO-Roboter über W-LAN fernsteuern

5.5 (EN google-translate)

5.5 (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 5.5-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 5.5-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 5.5-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 5.5-3: http://www.whatimade.today/esp8266-and-the-water-heater/