diff --git a/src/arduino/shift_lights/shift_lights.ino.orig b/src/arduino/shift_lights/shift_lights.ino.orig deleted file mode 100644 index 4bd7cd6..0000000 --- a/src/arduino/shift_lights/shift_lights.ino.orig +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include "../../monocoque/simulatorapi/simdata.h" - -#define BYTE_SIZE sizeof(SimData) - -#define LED_PIN 7 -#define NUM_LEDS 6 - -CRGB leds[NUM_LEDS]; -SimData sd; -int maxrpm = 0; -int rpm = 0; -int numlights = NUM_LEDS; -int pin = LED_PIN; -int lights[6]; - - -void setup() { - - Serial.begin(9600); - FastLED.addLeds(leds, NUM_LEDS); - FastLED.setMaxPowerInVoltsAndMilliamps(5, 500); - FastLED.setBrightness(40); - for (int i = 0; i < numlights; i++) - { - leds[i] = CRGB ( 0, 0, 0); - lights[i] = 0; - } - FastLED.clear(); - - sd.rpms = 0; - sd.maxrpm = 6500; - sd.altitude = 10; - sd.pulses = 40000; - sd.velocity = 10; -} - -void loop() { - - int l = 0; - char buff[BYTE_SIZE]; - - if (Serial.available() >= BYTE_SIZE) { - Serial.readBytes(buff, BYTE_SIZE); - memcpy(&sd, &buff, BYTE_SIZE); - rpm = sd.rpms; - maxrpm = sd.maxrpm; - - } - - - while (l < numlights) - { - lights[l] = 0; - l++; - } - l = -1; - int rpmlights = 0; - while (rpm > rpmlights) - { - if (l>=0) - { - lights[l] = 1; - } - l++; - rpmlights = rpmlights + (((maxrpm-250)/numlights)); - } - - l = 0; - FastLED.clear(); - while (l < numlights) - { - - if (l >= numlights / 2) - { - leds[l] = CRGB ( 0, 0, 255); - } - if (l < numlights / 2) - { - leds[l] = CRGB ( 0, 255, 0); - } - if (l == numlights - 1) - { - leds[l] = CRGB ( 255, 0, 0); - } - if (lights[l] <= 0) - { - leds[l] = CRGB ( 0, 0, 0); - } - FastLED.show(); - l++; - } -} diff --git a/src/arduino/simwind/simwind.ino b/src/arduino/simwind/simwind.ino new file mode 100644 index 0000000..64d424f --- /dev/null +++ b/src/arduino/simwind/simwind.ino @@ -0,0 +1,51 @@ +#include +#include "../../monocoque/simulatorapi/simdata.h" + +#define BYTE_SIZE sizeof(SimData) +#define KPHTOMPH .621317 + + +Adafruit_MotorShield AFMS = Adafruit_MotorShield(); + +Adafruit_DCMotor *myMotor1 = AFMS.getMotor(1); +Adafruit_DCMotor *myMotor2 = AFMS.getMotor(3); + +SimData sd; +int velocity = 0; + +void setup() { + Serial.begin(9600); + if (!AFMS.begin()) { + Serial.println("Could not find Motor Shield. Check wiring."); + while (1); + } + sd.rpms = 0; + sd.maxrpm = 6500; + sd.altitude = 10; + sd.pulses = 40000; + sd.velocity = 10; + + myMotor1->setSpeed(0); + myMotor1->run(FORWARD); + + myMotor2->setSpeed(0); + myMotor2->run(FORWARD); +} + +void loop() { + char buff[BYTE_SIZE]; + + if (Serial.available() >= BYTE_SIZE) + { + Serial.readBytes(buff, BYTE_SIZE); + memcpy(&sd, &buff, BYTE_SIZE); + velocity = sd.velocity; + } + int v = ceil(velocity * KPHTOMPH); + if (v >= 255) + { + v = 255; + } + myMotor1->setSpeed(v); + myMotor2->setSpeed(v); +}