Tarkade seadmete ehitamise ring 11.10.21

MAJA VALVUR LED lampidega

Maja valvur annab LED lampidega märku kui keegi liiga lähedale tuleb. Lähemal kui 2 meetrit hakkab põlema punane tuli, kaugemal kui 2,5 meetrit põleb roheline tuli ja vahepeal kollane tuli.

Kaugust mõõdab ultrasonic andur.

Skeemil on lisaks ultrasonicule kolm erinevat värvi LED lampi ja kolm takistit – 220 Ohmi.

Programmikoodi loop tsüklis on määratud kaugused, mis juhtudel erinevat värvi lambid põlema hakkavad.

#define LED_RED 6
#define LED_YELLOW 5
#define LED_GREEN 3

#define TRIGGER 10
#define ECHO 11

float average = 0;

void setup() {
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int count = 0;
  for (int i = 0; i < 5; i++) {
    float tmp = distance();
    if (tmp != 0 && tmp < 300) {
      average += tmp;
      count++;
    }
    delay(10);
  }
  if (count > 0 && average > 0) {
    average /= count;
    if (average < 250 && average >= 200)
      yellow();
    else if (average < 200 && average > 0)
      red();
    else
      green();
    Serial.print(average);
    Serial.println(" cm");
  } else {
    Serial.println("Ohtu pole :)");
    green();
  }
  average = 0;
}

float distance() {
  digitalWrite(TRIGGER, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGER, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER, LOW);
  long duration = pulseIn(ECHO, HIGH, 250000);
  return duration * 0.0343 / 2;
}

void red() {
  digitalWrite(LED_YELLOW, LOW);
  digitalWrite(LED_RED, HIGH);
  digitalWrite(LED_GREEN, LOW);
}

void yellow() {
  digitalWrite(LED_YELLOW, HIGH);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_GREEN, LOW);
}

void green() {
  digitalWrite(LED_YELLOW, LOW);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_GREEN, HIGH);
}

Tabasalu Unicorn Squad 11.10.21

KERAROBOTID

Kerarobotid, mida tunnis kasutasime olid Sphero Bolt robotid. Viis ümmargust palli veeresid meil mööda koridori erinevates suundades. Selgus, et Drive režiimiga juhtides see kõige lihtsam ei olnudki ja vastu seina põrkamisi oli ikka päris palju.

Vaatamata sellele oli lõbu palju ja lisaks niisama juhtimisele katsetati ka plokkidega programmeerimist. Selle abiga sõitis robot ikkagi sinna suunas kuhu sooviti ja tuli ka ilusti tagasi.