Changeset 3e2ff28 in pyramid


Ignore:
Timestamp:
06/09/14 14:08:17 (7 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master
Children:
f897b6d
Parents:
ed8d11b
Message:

1.4.2

  • Servo control added
  • PWM Pin 7 used by default for servo
File:
1 edited

Legend:

Unmodified
Added
Removed
  • firmware/Puzzlebox_Pyramid/Puzzlebox_Pyramid.ino

    red8d11b r3e2ff28  
    2828Original Author: Hao Zhang <hz@puzzlebox.info> 
    2929 
    30 Last Modified 2013-11-21 
     30Last Modified 2014-06-09 
    3131by Steve Castellotti <sc@puzzlebox.info> 
    3232 
    3333*/ 
    3434 
    35 #include <Wire.h> //For I2C communication with RGB LED Panel 
    36 #include <PWM.h> //For sending 38kHz Infrared to fly Orbit helicopter 
    37  
     35#include <Wire.h>  // For I2C communication with RGB LED Panel 
     36#include <PWM.h>   // For sending 38kHz Infrared to fly Orbit helicopter 
     37#include <Servo.h> // Servo control http://arduino.cc/en/Reference/Servo 
    3838 
    3939// ADK 
     
    5757#define IR_frequency 38400 
    5858byte _IR_period = 40; 
     59 
     60// Servo control 
     61#define SERVO_PIN 7 
     62Servo servoMotor;  // create servo object to control a servo 
     63                   // a maximum of eight servo objects can be created 
     64int pos = 0;       // variable to store the servo position 
    5965 
    6066// Global variables for controlling Orbit helicopter 
     
    104110        "PuzzleboxPyramid", 
    105111        "Puzzlebox Pyramid", 
    106         "1.4", 
     112        "1.4.2", 
    107113        "http://pyramid.puzzlebox.info", 
    108114        "0000000000000000" 
     
    214220         
    215221        } 
     222 
     223 
     224        //////////Servo Motor/////////// 
     225        servoMotor.attach(SERVO_PIN); 
    216226         
    217227//      selectInput(); // Determine method for Pyramid control 
     
    409419                                         
    410420                                         
    411                                         if (poorQuality != 0) 
     421                                        if (poorQuality != 0) { 
    412422                                                setColorWheel(0,255,0); // Green 
     423 
     424                                          // Reset servo if EEG connection lost 
     425                                          if (servoMotor.attached()) { 
     426                                            pos = 0; 
     427                                            servoMotor.write(pos);  
     428                                          } 
     429                                        } 
    413430                                         
    414431                                         
     
    459476                                         
    460477                                        } 
     478 
     479 
     480                                        // Servo Control 
     481                                        if (servoMotor.attached()) { 
     482                                           
     483                                          // pos = (int) attention / (100 / 180); 
     484                                          pos = attention; 
     485                                          servoMotor.write(pos); 
     486                                           
     487                                          //#if DEBUG_OUTPUT                                                                            #if DEBUG_OUTPUT 
     488                                                Serial.print("servoMotor: "); 
     489                                                Serial.print(pos, DEC); 
     490                                                Serial.print("\n"); 
     491                                          //#endif 
     492                                           
     493                                        } 
    461494                                 
    462495                                 
     
    19481981// ################################################################ 
    19491982 
     1983void sweepServo() { 
     1984  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
     1985  {                                  // in steps of 1 degree 
     1986    servoMotor.write(pos);              // tell servo to go to position in variable 'pos' 
     1987    delay(15);                       // waits 15ms for the servo to reach the position 
     1988  } 
     1989  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
     1990  {                                 
     1991    servoMotor.write(pos);              // tell servo to go to position in variable 'pos' 
     1992    delay(15);                       // waits 15ms for the servo to reach the position 
     1993  } 
     1994} 
     1995 
     1996// ################################################################ 
     1997 
    19501998void parseSerialInput() { 
    19511999         
     
    19952043                        case 'h':  parseHop(); break; 
    19962044                        case 'm':  manualSlide(); break; 
     2045                        case 'S':  sweepServo(); break; 
    19972046                } 
    19982047        } 
Note: See TracChangeset for help on using the changeset viewer.