Pith - drone_hat
drone_hat/drone_hat.ino [2.4 kb]
Modified: 17:42:35 58 026 (16 May 026)
14 Days Ago
// vgmlr
#include <Servo.h>
#include "FastLED.h"
Servo doors;
int closed = 5;
int openned = 40;
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
#define PIN 4
const int up = 3; // relay
const int launch = 6;
const int button = 7;
const int level = 8;
const int down = 10;
const int power = 12;
int buttonstate;
int flystate = 0;
void setup() {
  FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  doors.attach(11);
  doors.write(closed);
  pinMode(up, OUTPUT);
  pinMode(launch, OUTPUT);
  pinMode(button, INPUT);
  pinMode(level, OUTPUT);
  pinMode(down, OUTPUT);
  pinMode(power, OUTPUT);
  digitalWrite(up, LOW);
  digitalWrite(launch, LOW);
  digitalWrite(level, LOW);
  digitalWrite(down, LOW);
  digitalWrite(power, LOW);
  delay(500);
}
void loop() {
  buttonstate = digitalRead(button);
  if (buttonstate == HIGH) {
    if (flystate == 0) {
      launchit();
    } else if (flystate == 1) {
      land();
    } else {
      // error
    }
  } else {
    Sparkle(0x00, 0x00, 0xff, 0);
  }
}
void launchit() {
  doors.write(openned);
  delay(1000);
  doors.write(closed);
  digitalWrite(power, HIGH);
  delay(300);
  digitalWrite(power, LOW);
  delay(300);
  digitalWrite(up, HIGH);
  delay(750);
  digitalWrite(up, LOW);
  delay(300);
  digitalWrite(down, HIGH);
  delay(300);
  digitalWrite(down, LOW);
  delay(300);
  digitalWrite(launch, HIGH);
  delay(300);
  digitalWrite(launch, LOW);
  flystate = 1;
}
void land () {
  digitalWrite(launch, HIGH);
  delay(300);
  digitalWrite(launch, LOW);
  delay(300);
  digitalWrite(power, HIGH);
  delay(1500);
  digitalWrite(power, LOW);
  flystate = 0;
}
void Sparkle(byte red, byte green, byte blue, int SpeedDelay) {
  int Pixel = random(NUM_LEDS);
  setPixel(Pixel, red, green, blue);
  showStrip();
  delay(SpeedDelay);
  setPixel(Pixel, 0, 0, 0);
}
void showStrip() {
#ifdef ADAFRUIT_NEOPIXEL_H
  // NeoPixel
  strip.show();
#endif
#ifndef ADAFRUIT_NEOPIXEL_H
  // FastLED
  FastLED.show();
#endif
}
void setPixel(int Pixel, byte red, byte green, byte blue) {
#ifdef ADAFRUIT_NEOPIXEL_H
  // NeoPixel
  strip.setPixelColor(Pixel, strip.Color(red, green, blue));
#endif
#ifndef ADAFRUIT_NEOPIXEL_H
  // FastLED
  leds[Pixel].r = red;
  leds[Pixel].g = green;
  leds[Pixel].b = blue;
#endif
}
void setAll(byte red, byte green, byte blue) {
  for (int i = 0; i < NUM_LEDS; i++ ) {
    setPixel(i, red, green, blue);
  }
  showStrip();
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)