Projektas #4: Saul?gr?ža

Panaudodami „Maker Control Kit“ komplektuojam? robotikos rinkini? valdymo plokšt?s ir „Maker Kit 1“ komplektuojamo robotikos rinkinio komponentus, sukurkite savo nuosav? saul?gr?ž?, kuri sukasi ieškodama šviesos.

Šio projekto esm? yra analoginis šviesos jutiklis, kuris kei?ia savo elektrin? varž? priklausomai nuo aptinkamo šviesos kiekio. D?l jo saul?gr?ža užfiksuos šviesos nebuvim? ir pasisuks stengiantis j? surasti. Ži?r?kite, kaip ji pasisuka kaip tikra saul?gr?ža!

SUD?TINGUMO LYGIS: Pradedantiesiems.

PRATIMO TRUKM?: 60 min.

MEDŽIAGOS:

  • 1 x analoginis šviesos jutiklis
  • 1x vykdomasis variklis
  • 1x „4in1 Build & Code“ plokšt?
  • 1x USB – Mikro USB kabelis
  • Kompiuteris
  • Saul?gr?žos trafaretas
  • Kartonas ar kita medžiaga, skirta konstrukcijai
  • Klijai
  • 1x tamsus plastikinis puodelis

Kas yra šviesos jutiklis?

Analoginis šviesos jutiklis yra rezistorius, kuris kei?ia savo elektrin? varž?, priklausomai nuo jam tenkan?io šviesos kiekio. Jis taip pat vadinamas fotorezistoriumi arba fotovarža.

JUNGTYS:

  1. 1. Prijunkite šviesos jutikl? prie „4in1 Build & Code“ plokšt?s analogin?s jungties A0.
  2. 2. Prijunkite vykdom?j? varikl? prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 9.

Perži?r?kite kabeli? spalvas ir „4in1 Build & Code“ plokšt?s kontakt? spalvas, kad žinotum?te kaip sujungti. Kiekvienas kabelis tur?t? b?ti prijungtas prie jo spalvos:

STRUKT?ROS SUK?RIMAS:

Medžiagos, kurias iš esm?s naudosite yra kartonas ir plastikinis puodelis. Jei turite kit? medžiag?, kurias galima panaudoti projektui atlikti, galite jas irgi ?traukti. Nor?dami sukonstruoti konstrukcij?, parsisi?skite saul?gr?žos trafaret? ir greito sukonstravimo vadov?. Atlikite nurodytus veiksmus.

?statykite šviesos jutikl? ? tams? plastikin? puodel? ir priklijuokite prie pagrindo. Apatin?s puodelio dalies šone padarykite ang? pro kuri? ištrauksite šviesos jutiklio kabel? ? išor?.

Tada išpjaukite saul?gr?žos paveiksl?, priklijuokite j? ant kartono ir iškirpkite. Ant kit? kartono gabal? nupaišykite ir iškirpkite ?vairias dalis, kurios sudarys saul?gr?žos pagrind?. Sud?liokite saul?gr?ž? ir jos pagrind?.

Tada nupieškite ir išpjaukite pagrind?, prie kurio bus prijungti vykdomasis variklis ir jungtis tarp vykdomojo variklio ir saul?gr?žos. Sukonstruokite vykdomojo variklio pagrind? ir prijunkite j? prie saul?gr?žos.

PROGRAMOS KODAS:

Programa grindžiama šviesos jutiklio rodmenimis. Nustatytas ver?i? intervalas yra nuo 0 iki 800. Remiantis šiuo šviesos jutiklio intervalu, vykdomasis variklis pasisuks nuo 0° kampo iki maksimalaus 180º kampo taip, kad šviesos jutiklio 0 vert? sutapt? su vykdomojo variklio pad?timi ties 0º. Panašiai vert?s, šviesos jutiklio vert?s, kurios yra didesn?s nei 800, sutaps su vykdomojo variklio pad?timi ties 180º.

Šiuos veiksmus galite atlikti naudodami „Arduino“ ir „Bitbloq“ programin? ?rang?, taip pat kit? suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Žemiau pateikiamas programin?s ?rangos kodas, reikalingas kiekvienai programinei ?rangai.

 „Arduino“ kodas

  1. Parsisi?skite „Arduino“ programin? ?rang?  ir atlikite ?diegimo proces?.
  2. Paleiskite program? ir nukopijuokite toliau pateikt? kod?:
    #include <Servo.h> // SERVOMOTOR LIBRARY
    Servo Motor; // SERVOMOTOR VARIABLE
    int PortLight = A0; // Port connected to the light sensor
    int Degree, LightB; // Degree variable motor degrees // LightB variable light sensor value
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);
      Motor.attach (9); //Port connected to the servomotor
      Degree = 15; 
      Motor.write (Degree); // Servomotor to 15º
    }
    
    void loop() {
      // Put your main code here, to run repeatedly:
      LightB = analogRead(PortLight); // Light sensor reading values
      Serial.println(LightB); // Show light sensor values on screen
      if(LightB < 100) // If Light is less than 100
      {
       Degree = 15; // Degrees = 15
      }
      if((LightB > 100)&(LightB < 200)) // If Light is less than 200 and greater than 100
      {
        Degree = 36; // Degrees = 36
      }
      if((LightB > 200)&(LightB < 300)) // If Light is less than 300 and greater than 200
      {
        Degree = 57; // Degrees = 57
      }
      if((LightB > 300)&(LightB < 400)) // If Light is less than 400 and greater than 300
      {
        Degree = 78; // Degrees = 78
      }
      if((LightB > 400)&(LightB < 500)) // If Light is less than 500 and greater than 400
      {
        Degree = 99; // Degrees = 99
      }
      if((LightB > 500)&(LightB < 600)) // If Light is less than 600 and greater than 500
      {
        Degree = 120; // Degrees = 120
      }
      if((LightB > 600)&(LightB < 700)) // If Light is less than 700 and greater than 600
      {
        Degree = 140; // Degrees = 140
      }
      if((LightB > 700)&(LightB < 800)) // If Light is less than 800 and greater than 700
      {
        Degree = 160; // Degrees = 160
      }
      if(LightB > 800) // If Light is greater than 800
      {
        Degree = 180; // Degrees = 180
      }
      Motor.write (Degree); // Set the servomotor at the corresponding angle.
    }
    
  3. Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos  dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.

Kodas skirtas suderinamai vaizdinei programavimo programinei ?rangai, naudojan?i? blokus

  1. Parsisi?skite programin? ?rang? ir atlikite ?diegimo proces?.
  2. Paleiskite program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
  3. Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.

„BitBloq“ kodas

  1. Parsisi?skite „BitBloq“ programin? ?rang?.
  2. Paleiskite „BitBloq“ program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
    • Aparatin? ?ranga

    • Programin? ?ranga

  3. Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.

PRATIMO REZULTATAS:

Projekto rezultatas - sistema matuos šviesos kiek?, kuris tenka šviesos jutikliui. Priklausomai nuo ši? ver?i? ji pasuks vykdom?j? varikl? tam tikru laipsni? skai?iumi, imituojant tikr? saul?gr?žos jud?jim?.