Tarkade seadmete ehitamise ring 18.10.21

Topsi hoidja

ARDUINO

Majavalvur koos heliga

Seekord lisame majavalvuri lampide juurde ka väikese kõlari ehk buzzeri. See hakkab häält tegema siis kui keegi ligidale tuleb.

Programmikoodi ülesse tuleb lisada define:

#define BUZZER 9

Ja lambi värvide funktsioonide juurde, kas teeb häält või ei.

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

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

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

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);
}

Tarkade seadmete ehitamise ring 27.09.21

RGB LED

RGB lED on lamp, mille värve on võimalik muuta. Lambi peal on tuvastatud 16,7 miljonit erinevat värvi.

R – Red, punane
G – Green, roheline
B – Blue, sinine

Värvikoodid

Kuna värvide koode on palju, siis on võimalik neid otsida internetist erinevatelt lehtedelt.

Üks võimalik koht on: htmlcolorcodes.com

Programmi jaoks sobiv värvikood on näha üleval ääres RGB järel. Numbrid tähendavad punase, rohelise ja sinise värvi tooni tugevust. Numbrite vahemik on 0 kuni 255.

255, 0, 0 – punane värv

0, 255, 0 – roheline värv

0, 0, 255 – sinine värv

Tinkercad

Skeeme on eelnevalt mugav valmis teha Tinkercad keskkonnas. Seal saab proovida ka programmikoodi ja näha, kas see töötab.

www.tinkercad.com/

RGB LED lambi ühendamise skeem

VILKUVAD RGB LEDID

Tarkade seadmete ehitamise ring 20.09.21

Valgusfooriga ristmik

Kui ristmikul on palju valgusfoore, siis iga foor töötab kindla tsükliga. Selleks tuleb kõigepealt kirja panna mitu sekundit valitud värvi tuli põleb ja kui midagi vilgub, siis kui kiiresti ja mitu korda. Vali, kas sa kasutad kolme värvi tuld või hoopiski kahte, mis on jalakäijatele mõeldud.

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

void setup() {
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(LED_RED, OUTPUT);
}

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

Ringitunnis valminud valgusfoori tsüklid nägid välja järgmised:

Tarkade seadmete ehitamise ring 13.09.21

Animatsiooniseadme ehk pilditrumli ehitamine

Esimeses ringitunnis võtsime ette lihtsama ülesande ja ehitasime valmis animatsiooniseadme ehk pilditrumli. Pilditrummel ehk zoetrope on silinder, mille sees on joonistused ja külgedel väikesed avaused. Kui seda keerutada ja läbi avade vaadata, siis on näha animatsiooni. Ladinakeelne sõna animatio tähendabki hingestamist ja elustamist. Ehk siis pilt ärkab ellu.

Joonistamine on kunst ja liikumine füüsika. Animatsioon liidab need kaks ja äratab objektid ellu.

Animatsiooniseadme ehitamiseks on vaja Arduino Unot, maketeerimislauda, servo mootorit, potentsiomeetrit ja juhtmeid. Lisks on trumli ehitamiseks vaja paberit, pliiatseid, cd plaati ja ühendustükki cd plaadi ja servo mootori kinnitamiseks (näiteks 3D prinditud mudel).

#include <Servo.h> 
Servo myservo;    
 
void setup() {
  myservo.attach(9); 
  Serial.begin(9600);
} 
 
void loop() {
  int analogValue = analogRead(A0);
  int speed_min = 84;
  int speed_max = 180;
  int map_val = map(analogValue,0,1023,speed_min,speed_max);

  Serial.println(map_val);
  myservo.write(map_val);
}

Vaatamata sellele, et arvutid ei tahtnud meiega seekord eriti koostööd teha, saime paari arvuti abiga programmikoodid ikkagi Arduinole peale laetud ja kõigi seadmed hakkasid lõbusalt keerlema.