Microbit – neopixel

Neopixel je viac RGB(môžu svietiť ľubovoľnou farbou) led diód usporiadaných buď do pásiku, kruhu alebo matice:

Zdroj: Wikimedia commons

Neopixel má tri farebné vývody, ktoré sa pripoja na piny 3V (červený), GND (čierny) a PIN 0 (žltý) . Potom je potrebné napísať tento program:

from microbit import *
import neopixel
np = neopixel.NeoPixel(pin0, 64)
while True:
    np.fill ((60, 0, 0))
    np[1] = (0, 60, 0)
    np.show()
    sleep(100)

V príkaze np = neopixel.NeoPixel(pin0, 64) sa určí počet RGB lediek na neopixel pásiku a pin, na ktorom je pásik pripojený. V nekonečnom cykle While True sa nachádza príkaz np.fill ((60, 0, 0)), ktorý zmení farbu všetkych lediek naraz. RGB ledky sa skladajú z 3 minilediek – červenej, zelenej a modrej. Čísla v zátvorke určujú intenzitu (svietivosť) minilediek v poradí červená, zelená a modrá (od 0-nesvieti do 255-maximálna svietivosť). Kombináciou sa dajú vytvoriť rôzne farebné odtiene.

Na stránke https://htmlcolorcodes.com/ si môžete zvoliť ľubovoľný farebný odtieň a jeho rgb kód (v tvare napr. 255, 87, 51 ) skopírovať do programu.

Príkaz np[1] = (0, 60, 0) určuje farbu pre konkrétnu RGB ledky – v zátvorke je poradie ledky (od 0 do počet lediek na neopixel pásiku). Prikaz np.show() pošle dáta do neopixel pásiku.

Úpravou tohto programu môžete zobraziť na neopixel pásiku rôzne zaujímavé svetelné kreácie.

Elektronika – jednoduché zapojenia

Svetielko čo svieti i po vypnutí

Potrebujeme 100 ohmový odpor, 470 microfaradayový elektrolytický kondenzátor (alebo s väčšou kapacitou ak máte) a LEDku. Na zapojenie použite nepájivé pole. Po zapojení 5 voltov z napájacieho zdroja sa rozžiari LEDka. Keď sa odpojí napájanie, LEDka stále trochu svieti lebo je napájaná z kondenzátora, ktorý sa nabil keď bol obvod zapojený do zdroja. Ako dlho dokáže napájať kondenzátor LEDku? Zistíte, že dosť dlho.

———-

Ukazovateľ polarity napájacieho zdroja

Potrebujeme dva 100 ohmové odpory a 2 LEDky – zelenú dajte vľavo a červenú vpravo. Na zapojenie použite nepájivé pole. Po zapojení 5 voltov z napájacieho zdroja sa rozžiari zelená LEDka. Ak zapojíte zdroj opačne -plus na mínus a mínus na plus – rozžiari sa červená LEDka – oznámi tým, že ste zdroj zapojili opačne.

———-

Ukazovateľ úrovne el. napätia

Potrebujeme štyri 100 ohmové odpory a 4 LEDky. Na zapojenie použite nepájivé pole. Nastavte na zdroji 5 voltov a zapojte ho do obvodu. Postupným zvyšovaním el. napätia na zdroji sa budú rozsvecovať LEDky. Len to neprežente – max. 13-15 voltov , lebo inak môžete odpáliť niektoré LEDky – hlavne tie vľavo .

———-

ARDUINO -PROJEKTY

Všetky návody na tejto stránke sa dajú použiť na tvorbu projektov a to ich zlúčením do jedného programu a jedného zapojenia. Náplň projektu je limitovaný len vašou fantáziou, rozsah možností je ohromný – od obyčajných počitadiel prístupov do miestnosti po sofistikovaných robotov.

Tu si teraz môžete pozrieť jeden príklad takého zlúčenia návodov:

Meranie vzdialenosti so zobrazením na displeji

Na vytvorenie tohto projektu potrebujeme zlúčiť 2 návody – merač vzdialenosti a displeje (konkrétne 16×2 číslicový displej). Tie sú k dispozícii na našej stránke.

Zlúčenie programov z týchto návodov je vcelku jednoduché. Z obidvoch programov vytvoríme nový takto(červeným obdĺžnikom vyznačené miesta prepíšeme vyznačeným textom):

Výber z programu na merač vzdialenosti

Výber z programu na displej

Nový program potom vyzerá takto:

float trvanie, vzdialenost;
  #include <Wire.h> 
  #include <LiquidCrystal_I2C.h>
  LiquidCrystal_I2C lcd(0x3F, 16, 2);
  void setup() {
    pinMode(11, OUTPUT);
    pinMode(12, INPUT);
    Serial.begin(9600);
    lcd.begin();
    lcd.backlight();
  }
  void loop() {
    digitalWrite(11, LOW);
    delayMicroseconds(2);
    digitalWrite(11, HIGH);
    delayMicroseconds(10);
    digitalWrite(11, LOW);
    trvanie = pulseIn(12, HIGH);
    vzdialenost = (trvanie*.0343)/2;
    Serial.print("Vzdialenost: ");
    Serial.println(vzdialenost);
    delay(100);
    lcd.setCursor(0, 0); 
    lcd.print("Vzdialenost:"); 
    lcd.setCursor(0, 1); 
    lcd.print(vzdialenost);
    delay(500);
 }

Zlúčenie zapojení z týchto návodov je tiež jednoduché. Z obidvoch zapojení vytvoríme nové takto:

Obidve zapojenia pred zlúčením:

Po zlúčení:

Teraz stačí už len nahrať kód do Arduina a vyskúšať funkčnosť projektu.

Python- príručka 1. časť

Python je jednoduchý programovací jazyk so širokými možnosťami použitia. Táto príručka obsahuje všetky základné programovacie postupy.

Príkazy vstupu a výstupu

Príkaz vstupu je input a zapisuje sa takto:

a=input("zadaj udaj")

Do premennej A sa vloží textový údaj, ktorý zadá užívateľ.

a=int(input("zadaj cislo"))

Do premennej A sa vloží textový údaj prevedený príkazom INT na číslo – bude sa s ním dať počítať.

Príkaz výstupu je print a zapisuje sa takto:

print("ahoj svet")
print(a)

Prvý print vypíše na obrazovku hlášku “ahoj svet” a druhý obsah premennej A.

print("hodnota premennej a je",a)

Tento print je kombinácia výpisu hlášky s obsahom premennej.

Podmienky

Ak chceme vykonať činnosť podľa toho čo je obsiahnuté v premennej potrebujeme príkaz IF.

if a==0:
     print("v premennej a je nula")

Základná podmienka obsahuje IF, potom podmienku (a==0) a príkaz čo sa vykoná ak podmienka platí (print(“v premennej a je nula”) ).

Pre porovnanie dvoch hodnôt sa používa == a pre priradenie hodnoty do premennej sa používa = .

Pozor: Keď napíšete dvojbodku v prvom riadku stlačte ENTER aby sa druhý riadok správne odriadkoval. To isté platí aj pri cykloch.

if a>0:
     print("a je kladne")
else:
     print("a nie je kladne")

Rozšírená predošlá podmienka obsahuje časť ELSE kde je príkaz, ktorý sa vykoná ak neplatí podmienka.

if a>0 and a<10:
              print("a je jednociferne")

Hore je príklad použitia podmienky s príkazom and – príkaz sa vykoná ak platia obidve podmienky.

Cyklus While

Cyklus While slúži na opakovanie jedného alebo viacerých príkazov pokým platí podmienka.

i = 1
while i < 6:
      print(i)
      i += 1 

Do premennej i sa priradí 1. Pokým platí že v premennej i je menšie čislo ako 6 tak sa vykonajú príkazy:

print(i) – vypíše obsah premennej i

i+=1 -zvýši hodnotu v premennej i o jeden

Tieto dva príkazy sa opakuje pokým platí podmienka. Keď sa skončí cyklus na obrazovke budú vypísané čisla 1,2,3,4,5 .

Cyklus FOR

Cyklus For slúži na opakovanie jedného alebo viacerých príkazov zadaný počet krát.

FOR i in range(5):
        print(i)

Cyklus sa opakuje 5 krát , pričom hodnota v premennej i sa mení pri každom opakovaní cyklu a to od 0 do 4 (nie do 5) . Hodnoty v premennej sa vypisujú na obrazovku, takže na konci sú vypísané čísla 0-4

For i in range(5,10):
         print(i)

V tomto cykle sa na rozdiel od predchodzieho hodnota premennej i mení od 5-9.

Polia

Pole je údajová štruktúra do ktorej je možné uložiť viacero údajov rovnakého typu – napríklad čísiel.

a=[0]*5

Horeuvedeným príkazom sa vytvorilo pole A s 5 číslami – nulami.

 print(a[2]) 

Týmto príkazom sa vypíše na obrazovku tretí údaj s pola (počíta sa od nuly – a[0],a[1],a[2]).

for i in range(5):
         a[i]=int(input("zadaj udaj do pola"))

Naplniť celé pole je možné aj s použitím cyklu FOR. Tento naplní pole piatimi číslami.

sucet=0
for i in range(5):
         sucet=sucet+a[i]
print(sucet)

Tento cyklus sčíta 5 čísiel v poli pripočítavaním každého prvku pola k premennej sucet.

pom=a[1]
a[1]=a[2]
a[2]=pom

Tieto 3 príkazy s pomocou premennej pom prehodia údaje v prvom a druhom prvku pola A.

Vitajte na stránke finepine.sk

Táto stránka je venovaná praktickým informáciam a postupom v týchto kategóriach:

Počítače:

-praktické použitie mikrokontroléra Arduino- najjednoduchšie možné vysvetlenie postupu bez “zbytočností” písaných v iných návodoch na Internete. Poviem ako na to, na to čo s toho urobiť použite vašu fantáziu alebo sa inšpirujte na Internete

-Tvorba webu cez PHP, CSS a SQL

-programovanie v Pythone

Hudba:

-na Slovensku menej známi ale výborní speváci(čky) – nech to nie je stále len o počítačoch

….ďalšie zaujímavé články pribudnú neskôr