Summary: Code for climbing up the stairs. 
***********************************
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"
Adafruit_MotorShield AFMSb(0x61);
Adafruit_MotorShield AFMSt(0x60);
//Motors on bottom board:
// Stepper Motor on M1 and M2
Adafruit_StepperMotor *BMotor = AFMSb.getStepper(200, 1);
// Stepper Motor on M3 and M4
Adafruit_StepperMotor *FMotor = AFMSb.getStepper(200, 2);
//Motors on top board:
//DC Motor on M1
Adafruit_DCMotor *LMotor = AFMSt.getMotor(1);
//DC Motor on M2
Adafruit_DCMotor *RMotor = AFMSt.getMotor(2);
//Sets lift motor directions
int up = FORWARD;
int down = BACKWARD;
//Sets motor speeds
int liftSpeed = 50;
int moveSpeed = 50;
int count = 0;
void setup() {
  AFMSb.begin(); 
  AFMSt.begin();  
}
void loop() {
  upStep();
  upStep();
  downStep();
  downStep();
}
//function for moving forward
void moveForward(int time){
 
LMotor->setSpeed(moveSpeed);
 
RMotor->setSpeed(moveSpeed);
 
LMotor->run(FORWARD);
 
RMotor->run(FORWARD);
  delay(time);
 
LMotor->run(RELEASE);
 
RMotor->run(RELEASE);
 }
//function for moving backward
void moveBackward(int time){
 
LMotor->setSpeed(moveSpeed);
 
RMotor->setSpeed(moveSpeed);
 
LMotor->run(BACKWARD);
 
RMotor->run(BACKWARD);
  delay(time);  
 
LMotor->run(RELEASE);
 
RMotor->run(RELEASE);
 }
//function for lifting, length in steps
void liftUp(int length){
  while(count <=
length){
   
BMotor->setSpeed(liftSpeed);
   
FMotor->setSpeed(liftSpeed);
   
BMotor->step(1,up,DOUBLE);
   
FMotor->step(1,up,DOUBLE);
    count++;
  }
  count = 0;
}
//function for lifting, length in steps
void liftDown(int length){
  while(count <=
length){
   
BMotor->setSpeed(liftSpeed);
   
FMotor->setSpeed(liftSpeed);
   
BMotor->step(1,down,DOUBLE);
   
FMotor->step(1,down,DOUBLE);
    count++;  
  }
  count = 0;
}
//function for lifting, time in milliseconds
void liftHold(int time){
delay(time);
}
void upStep(){
  //Move up  
  liftUp(200);
  //Tip forward
 
BMotor->step(200,up,DOUBLE);
  //Retract front legs
 
FMotor->step(200,down,DOUBLE);
  //Get on step
  moveForward(2000);
  //Retract rear legs
 
BMotor->step(200,down,DOUBLE); 
}
void downStep(){
  //Deploy rear legs
 
BMotor->step(200,up,DOUBLE);
  //Back up
  moveBackward(2000);
  //Deploy front legs
 
FMotor->step(200,up,DOUBLE);
  //Lower down
  liftDown(200);  
}
***********************************
No comments:
Post a Comment