Table of Contents
Part 3: Communicating with the Arduino
The following is the code you will need to follow Part 3 of the Wi-Fi Car tutorial series.
code_3_1
//wifi-car video tutorial //code_3_1 // //created 2012 //by Nille void setup() { Serial.begin(9600); pinMode(4, OUTPUT); //M1 pinMode(5, OUTPUT); //E1 pinMode(6, OUTPUT); //E2 pinMode(7, OUTPUT); //M2 } void loop() { char i; if (Serial.available()) { i = Serial.read(); //read switch (i) { case 'w': //forward Serial.println("forward"); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); break; case 's': //back Serial.println("back"); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); break; case 'a': //left Serial.println("left"); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); break; case 'd': //right Serial.println("right"); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); break; case 't': //stop Serial.println("stop"); digitalWrite(5, LOW); digitalWrite(6, LOW); break; default: break; } } }
CarJoyChuck
//wifi-car video tutorial //CarJoyChuck // //created 2012 //by Nille #include <math.h> #include <stdlib.h> #include "Wire.h" #include "WiiChuck.h" WiiChuck wii = WiiChuck(); int joyX; int joyY; void setup() { wii.init(); Serial.begin(9600); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { if (true == wii.read()) { joyX = wii.getJoyAxisX(); joyY = wii.getJoyAxisY(); digitalWrite(5, LOW); digitalWrite(6, LOW); if(joyY > 240 || joyY < 10) { digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); } if(joyY < 65 && joyY > 45) { digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); } if(joyX > 240 || joyX < 10) { digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(4, LOW); digitalWrite(7, HIGH); } if(joyX < 65 && joyX > 45) { digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(4, HIGH); digitalWrite(7, LOW); } Serial.print("joystick:"); Serial.print(joyX, DEC); Serial.print(","); Serial.print(joyY, DEC); Serial.println(" "); } delay(200); }
CarAccelChuck
//wifi-car video tutorial //CarAccelChuck // //created 2012 //by Nille #include <math.h> #include <stdlib.h> #include "Wire.h" #include "WiiChuck.h" WiiChuck wii = WiiChuck(); int AccelX; int AccelY; void setup() { wii.init(); Serial.begin(9600); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { if (true == wii.read()) { AccelX =wii.getAccelAxisX(); AccelY = wii.getAccelAxisY(); digitalWrite(5, LOW); digitalWrite(6, LOW); if(0 == wii.getButtonZ()) { if(AccelY > 170) { digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); } if(AccelY < 110) { digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); } if(AccelX > 190) { digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(4, LOW); digitalWrite(7, HIGH); } if(AccelX < 120) { digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(4, HIGH); digitalWrite(7, LOW); } } Serial.print("accel:"); Serial.print(AccelX, DEC); Serial.print(","); Serial.print(AccelY, DEC); Serial.println(" "); } delay(500); }