Autonomous Lighting

Giriş

Bu projede PicoBricks ile hava karardığında aydınlatmanın otomatik yandığı sistemlerin çalışma sistemlerini anlamak için ışık miktarı düştüğünde LED’in yanmasını sağlayacağız.

Proje Detayları ve Algoritması

Elektronik sistemlerin verilen görevi, topladığı veriler doğrultusunda karar vererek otomatik olarak yapmasına otonom olma durumu denir. Elektronik sistemlerin çevresinden veri toplamasını sağlayan bileşenlerine sensör (algılayıcı) denir. Ortamdaki ışık seviyesinin hangi düzeyde olduğu, hava sıcaklığının kaç derece olduğu, su akış hızının kaç lt/dk olduğu, ses şiddetinin ne kadar olduğu gibi birçok veri sensörler tarafından toplanarak elektrik sinyalleri olarak yani veri olarak PicoBricks’e iletilir. Picobricks’te birçok sensör yer almaktadır. Sensörlerden verinin nasıl alındığını ve bu verilerin nasıl yorumlanılıp kullanılacağını bilmek, kitap okumanın kelime dağarcığını geliştirmesi gibi proje fikirlerini geliştirecektir.

Bağlantı Diyagramı

../_images/autonomous-lighting.png
../_images/autonomous-lighting1.png

Picobricks modüllerini herhangi bir kablo bağlantısı olmadan programlayabilir ve çalıştırabilirsiniz. Modülleri karttan ayırarak kullanacaksanız modül bağlantılarını verilen konektör kablolar ile yapmalısınız.

Projenin MicroPython Kodu

import time
from machine import Pin, ADC
from picobricks import  WS2812
#define the library

ldr = ADC(Pin(27))
ws = WS2812(6, brightness=0.4)
#define the input and output pins

#define colors
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

COLORS = (RED, GREEN, BLUE)
#RGB color Code

while True:#while loop
 print(ldr.read_u16()) #print the value of the LDR sensor to the screen.

 if(ldr.read_u16()>10000):#let's check the ldr sensor
     for color in COLORS:

         #turn on the LDR
         ws.pixels_fill(color)
         ws.pixels_show()

 else:
     ws.pixels_fill((0,0,0))  #turn off the RGB
     ws.pixels_show()

Tüyo

Eğer kodunuzun adını main.py olarak kaydederseniz, kodunuz her BOOT yaptınızda çalışacaktır.

Projenin Arduino C Kodu

#include <Adafruit_NeoPixel.h>
#define PIN            6
#define NUMLEDS        1
#define LIGHT_SENSOR_PIN 27

Adafruit_NeoPixel leds = Adafruit_NeoPixel(NUMLEDS, PIN, NEO_GRB + NEO_KHZ800);
//define the libraries

int delayval = 250; // delay for half a second

   void setup()
   {
   leds.begin();
   }

   void loop()
   {
   int analogValue = analogRead(LIGHT_SENSOR_PIN);
   for(int i=0;i < NUMLEDS;i++)
   {
   if (analogValue > 200) {
       // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
       leds.setPixelColor(i, leds.Color(255,255,255));
       leds.show(); // This sends the updated pixel color to the hardware.
       delay(delayval);
   }
    else {
      leds.setPixelColor(i, leds.Color(0,0,0));  //white color code.
      leds.show(); // This sends the updated pixel color to the hardware.
   }
 }
 delay(10);
}

Projenin MicroBlocks Kodu

autonomous-lighting2

Not

MicroBlocks ile kodlama yapmak için yukarıdaki görseli MicroBlocks Run sekmesine sürükleyip bırakmanız yeterlidir.