User Tools

Site Tools


code

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
code [2014/02/01 00:17]
jgensler8 created
code [2014/02/15 01:13] (current)
jgensler8
Line 1: Line 1:
 +====== Headline ======
 +<​code>​
 /* /*
-  ​read from a software serial connection (Raspberry Pi)+  ​SoftwareSerial to ttyAMA0
 */ */
  
 #include <​SoftwareSerial.h>​ #include <​SoftwareSerial.h>​
 +
 +#define PULSE_A 3
 +#define PULSE_B 11
 +#define DIR_A 12
 +#define DIR_B 13
  
 SoftwareSerial mySerial(8, 9); // RX, TX SoftwareSerial mySerial(8, 9); // RX, TX
 +char serialIn;
 +int movementTime = 1000;
 +int basicPower = 50;
  
 void setup()  ​ void setup()  ​
 { {
 +  //serial communication
   Serial.begin(4800);​   Serial.begin(4800);​
   while (!Serial) {   while (!Serial) {
Line 15: Line 26:
   Serial.println("​Started"​);​   Serial.println("​Started"​);​
   mySerial.begin(9600);​   mySerial.begin(9600);​
 +  ​
 +  //set the motor pins
 +  pinMode( PULSE_A, OUTPUT);
 +  pinMode( PULSE_B, OUTPUT);
 +  pinMode( DIR_A, OUTPUT);
 +  pinMode( DIR_B, OUTPUT);
 +  ​
 +  digitalWrite( PULSE_A, LOW);
 +  digitalWrite( PULSE_B, LOW);
 +  digitalWrite( DIR_A, LOW);
 +  digitalWrite( DIR_B, LOW);
 +  ​
 +  /*
 +  analogWrite( PULSE_A, 100);
 +  analogWrite( PULSE_B, 100);
 +  */
 } }
  
 void loop() void loop()
 { {
-  if (mySerial.available()) +  if (mySerial.available()){ 
-    ​Serial.write(mySerial.read());​+    ​serialIn = mySerial.read()
 +    Serial.print( serialIn); 
 +    if( serialIn == '​+'​ ){ 
 +      goForward( movementTime,​ basicPower);​ 
 +    } 
 +    else if( serialIn == '​-'​){ 
 +      //​goReverse( movementTime,​ basicPower);​ 
 +    } 
 +    else if( serialIn == '>'​){ 
 +      turnRight(movementTime,​ basicPower);​ 
 +    } 
 +    else if( serialIn == '<'​){ 
 +      turnLeft(movementTime,​ basicPower);​ 
 +    }  
 +  }
   if (Serial.available())   if (Serial.available())
     mySerial.write(Serial.read());​     mySerial.write(Serial.read());​
 } }
  
 +void goForward(int time, int power){
 +  digitalWrite( PULSE_A, HIGH);
 +  digitalWrite( PULSE_B, HIGH);
 +  delay(time);​
 +  analogWrite( PULSE_A, power);
 +  analogWrite( PULSE_B, power);
 +  //​delay(time);​
 +  analogWrite( PULSE_A, 0);
 +  analogWrite( PULSE_B, 0);
 +  digitalWrite( PULSE_A, LOW);
 +  digitalWrite( PULSE_B, LOW);
 +}
 +
 +/*
 +//as far as we know, this will never work...
 +void goReverse( int time, int power){
 +  digitalWrite( PULSE_A, HIGH);
 +  digitalWrite( PULSE_B, HIGH);
 +  delay(time);​
 +  analogWrite( PULSE_A, power);
 +  analogWrite( PULSE_B, power);
 +  //​delay(time);​
 +  analogWrite( PULSE_A, 0);
 +  analogWrite( PULSE_B, 0);
 +  digitalWrite( PULSE_A, LOW);
 +  digitalWrite( PULSE_B, LOW);
 +}
 +*/
 +
 +void turnLeft(int time, int power){
 +  digitalWrite( PULSE_A, HIGH);
 +  delay(time);​
 +  analogWrite( PULSE_A, power);
 +  //​delay(time);​
 +  analogWrite( PULSE_A, 0);
 +  digitalWrite( PULSE_A, LOW);
 +}
 +
 +void turnRight(int time, int power){
 +  digitalWrite( PULSE_B, HIGH);
 +  delay(time);​
 +  analogWrite( PULSE_B, power);
 +  //​delay(time);​
 +  analogWrite( PULSE_B, 0);
 +  digitalWrite( PULSE_B, LOW);
 +}
 +</​code>​
code.1391213827.txt.gz · Last modified: 2014/02/01 00:17 by jgensler8