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
|
Schaltvarianten
http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.htmlBild 0-1: http://microcontrollerkits.blogspot.de/2015/05/arduino-esp8266-iot-control-thingspeak.html
Bild 0-2: http://www.instructables.com/id/noobs-guide-to-ESP8266-with-Arduino-Mega-2560-or-U/
Bild 0-3: http://www.whatimade.today/esp8266-and-the-water-heater/