OpenROV Cape Test Program (No Beaglebone required)

I decided to modify the OpenROV 2.4 Arduino source code to create an automatic test program that stimulates each of the cape outputs periodically to see if the Arduino ATmega328 chip and connecting circuitry are operating correctly.  Software has been tested with the cape operating  stand alone.  Hopefully it will run in a OpenROV cape with a Beaglebone attached provided the cape.(TBD)

Hardware Requirements:

OpenROV cape

Servo

LED lights

Battery Pack (12v)

ATmega328 programmer (Arduino Uno will do)

Proceedure:

1) Remove the ATmeta328 chip from the Cape and use an Arduino board to load the Openrov_cape_test.ino with includes.

2)Place the ATmega328 chip back into the Cape and hook up the externals (motors, servo and lights) .

3) Connect the battery power to the Cape. (Typically 12v)

4) Watch motors , servo and light cycle periodically in sequence. Each command level lasts for 2 seconds.

20131130-171808.jpg

Software Files: Download OpenROV_cape_test  folder from my dropbox. In it you will find the following OpenRov_cape_test.ino file.   Just use it instead of OpenRov.ino file.

/* OpenROV_cape_test  Written by Chris Siegert, 11.30.13 , vamfun@yahoo.com, https://vamfun.wordpress.com This program is designed to test the OpenROV Cape.  Program generates commands that cycles motors, tilt servo and lights sequentially.  No Beaglebone is required for the test. Power the cape using the battery input terminals and connect the output devices. All motors are cycled simultaneously with 2 second steps at magnitudes {135,90,45,90}. Motors are left in reset mode. Next the servo is commanded to {170,10,90}Basically full tilt up to full tilt down and back to neutral. The light goes to full brihtness then to half brightness and then off. The device sequencing is then repeated continuously. If running without the Beaglebone, load the sketch and its includes into the ATmega chip using an Arduino project board or programmer.  Then reinsert the chip back into the cape.   If running with the Beaglebone, one might be able to just upload the program using the OPENROV cockpit utility. */

#include <Servo.h>

#include <Arduino.h>

#include “Motors.h”

#include “Command.h”

#include “Device.h”

#include “Timer.h”

Motors motors(9, 10, 11);

Command cmd;

Device vout(“vout”, 0, vout.analog, vout.in);

Device light(“light”, 5, light.analog, light.out);

Timer time;

Servo tilt;   int array[MAX_ARGS];

int case_no=1;   void setup(){

Serial.begin(9600);

pinMode(13, OUTPUT);

tilt.attach(3);

motors.reset();

light.write(0);

time.reset();

delay(3000);//wait for ESC to calibrate }

void loop(){

switch ( case_no)   {

case 1:

Serial.print(“motor”);

Serial.print(”  mag = “);

Serial.println(135);

motors.go(135,135,135);

delay(2000); //cds  set step delay

Serial.print(“motor”);

Serial.print(”  mag = “);

Serial.println(“90”);

motors.go(90,90,90);

delay(2000);

Serial.print(“motor”);

Serial.print(”  mag = “);

Serial.println(“45”);

motors.go(45,45,45);

delay(2000);

Serial.print(“motor”);

Serial.print(”  mag = “);

Serial.println(“90”);

Serial.println();    //motors.reset();

motors.go(90,90,90);

case_no++;

break;

case 2:

Serial.print(“servo” );

Serial.print(”  mag = “);

Serial.println(“170”);

tilt.write(170);

delay(2000);

tilt.write(90);

Serial.print(“servo” );

Serial.print(”  mag = “);

Serial.println(“90”);

delay(2000);

Serial.print(“servo” );

Serial.print(”  mag = “);

Serial.println(“10”);

tilt.write(10);

delay(2000);

Serial.print(“servo” );

Serial.print(”  mag = “);

Serial.println(“90”);

Serial.println();

tilt.write(90);

case_no++;

break;

case 3:

Serial.print(“light” );

Serial.print(”  mag = “);

Serial.println(255);

light.write(255);

delay(2000);

Serial.print(“light” );

Serial.print(”  mag = “);

Serial.println(128);

light.write(128);

delay(2000);

Serial.print(“light” );

Serial.print(”  mag = “);

Serial.println(0);

Serial.println();

light.write(0);

case_no++;

break;

default:

case_no = 1;  //repeat sequence

} //end switch

}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: