User Tools

Site Tools


code

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
code [2014/02/01 00:19]
jgensler8
code [2014/02/15 01:13] (current)
jgensler8
Line 1: Line 1:
-<​code>​ /* +====== Headline ====== 
-  ​read from a software serial connection (Raspberry Pi)+<​code>​ 
 +/* 
 +  ​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>​
code.1391213969.txt.gz · Last modified: 2014/02/01 00:19 by jgensler8