Samsung_01A2021 Samsung_01A2021 Samsung_01A2021 Advertisement

Súprava modulov Grove pre Raspberry Pi programovateľná v Pythone

Mikrokontroléry
0

Ak ešte nemáte dostatok skúseností so zapojovaním elektronických obvodov a chcete si vyskúšať fungovanie čidiel a displejov a ďalších komponentov pripojených k vývojovým doskám, riešením sú modulové stavebnice Grove. Sú k dispozícii pre všetky populárne mikrontrolérové vývojové dosky - Arduino, Raspberry PI, či BBC micro:bit. V tomto článku a videu predstavíme  možnosti stavebnice Grove pre vývojovú dosku Raspberry PI. Cena stavebnice je okolo 40 eur.

Predstavenie stavebnice a príklady sú vo videu

Hlavným problémom u mnohých začínajúcich záujemcov o IoT a programovanie je, že sa boja, aby to nezapojili zle a nezničili elektronické obvody. A práve pre túto skupinu sú určené modulové stavebnice Grove na rýchlu tvorbu prototypov. Každý modul má jednu funkciu, napríklad meranie teploty, vlhkosti, meranie vzdialenosti ultrazvukom, zobrazovanie údajov na displeji a podobne.

Potrebné moduly stačí pripojiť základnej doske Base Shield a ste pripravení na testovanie svojich nápadov.

Jediné, na čo je potrebné dávať pozor je, aby ste moduly s analógovým rozhraním pripojili do analógových konektorov, moduly vyžadujúce digitálne vstupy a výstupy do digitálnych konektorov, ktoré využívajú komunikačnú zbernicu je potrebné pripojiť do zásuvky príslušného komunikačného rozhrania I2C, UART a servomotory do konektorov označených PWM

Aby ste mohli jednoducho programovať aj zložitejšie komponenty ako je sedemsegmentový displej, či ultrazvukový snímač vzdialeností potrebujete do Raspberry Pi doinštalovať knižnice pre programovací jazyk Python. Postup je vo videu.

Príklady sme robili na Raspberry Pi 400, čo je mikropočítač v klávesnici, takže stačilo pripojiť monitor a myš. A ešte povoliť rozhranie I2C.

Zostava Raspberry Pi 400. Pre zaujímavosť vľavo je notebook s grabberom AverMedia na zachytenie deja na obrazovom výstupe Raspberry do videa

Aby ste mohli jednoducho programovať aj zložitejšie komponenty ako je sedemsegmentový displej, či ultrazvukový snímač vzdialeností potrebujete do Raspberry Pi doinštalovať knižnice pre programovací jazyk Python. Postup je vo videu. Na inštaláciu knižníc z Githubu je potrebné zadať z konzolovej aplikácie na Raspberry príkazy

curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s –

git clone https://github.com/Seeed-Studio/grove.py

Programy v Pythone môžete zadávať v niektorom z vývojových prostredí, napríklad Thoony Python, či Mu.

Námetom prvého príkladu je blikanie LED diódou na jednom z modulov.

import time
from grove.grove_ryb_led_button import GroveLedButton
 
def main():
    ledbtn = GroveLedButton(5)
 
    while True:
        ledbtn.led.light(True)
        time.sleep(1)
 
        ledbtn.led.light(False)
        time.sleep(1)
 
if __name__ == '__main__':
    main()

Vľavo servomotor a senzor intenzity osvetlenia, vpravo senzor teploty a vlhkosti a LCD displej na zobrazovanie nameraných hodnôt

V ďalšom príklade budeme simulovať zaťahovanie žalúzií podľa osvetlenia, takže použijeme senzor intenzity osvetlenia a servomotor

import time
 
from grove.grove_servo import GroveServo
from grove.grove_light_sensor_v1_2 import GroveLightSensor
 
def main():
    servo = GroveServo(12)
    sensor = GroveLightSensor(0)
 
    while True:
        angle = sensor.light * 180 / 1000
        print('osvetlenie {}, uhol {} stupňov.'.format(sensor.light, angle))
        servo.setAngle(angle)
 
        time.sleep(1)
 
if __name__ == '__main__':
    main()

 

Keď už riešime simuláciu smarthome, tak budeme simulovať rozsvietenie svetla pri priblížení. Na spínanie použijeme relé a na meranie vzdialenosti ultrazvukový snímač.  Ultrazvukový merač vzdialenosti indikuje vzdialenosť predmetu, napríklad ruky od snímača. Vzdialenosť za meria na základe oneskorenia ultrazvukového signálu, ktorý sa od predmetu odrazí.  Možno vás prekvapí, že modul sa pripája len na jeden digitálny vstup. Funguje tak, že jeho elektronika generuje obdĺžnikový signál a šírka signálu závisí od nameranej vzdialenosti. 

import time
 
from grove.grove_relay import GroveRelay
from grove.grove_ultrasonic_ranger import GroveUltrasonicRanger
 
def main():
    sensor = GroveUltrasonicRanger(5)
    relay = GroveRelay(16)
 
    while True:
        distance = sensor.get_distance()
        print('{} cm'.format(distance))
 
        if distance < 20:
            relay.on()
            print('relé zapnuté')
 
            time.sleep(1)
 
            relay.off()
            print('relé vypnuté')
 
            continue
 
        time.sleep(1)
 
if __name__ == '__main__':
    main()

 

A ešte príklad na meranie teploty a vlhkosti so zobrazovaním nameraných hodnôt na dvojriadkovom LCD displeji

import time
 
from seeed_dht import DHT
from grove.display.jhd1802 import JHD1802
 
def main():
    lcd = JHD1802()
    sensor = DHT('11', 5)
 
    while True:
        humi, temp = sensor.read()
        print('teplota {}C, vlhkost {}%'.format(temp, humi))
 
        lcd.setCursor(0, 0)
        lcd.write('teplota: {0:2}C'.format(temp))
 
        lcd.setCursor(1, 0)
        lcd.write('vlhkost: {0:5}%'.format(humi))
 
        time.sleep(1)
 
if __name__ == '__main__':
    main()

To bolo niekoľko príkladov, tieto a mnohé ďalšie sú na wiki stránke výrobcu https://wiki.seeedstudio.com/Grove_Base_Kit_for_Raspberry_Pi/

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články
Grove for Raspberry Pi Raspberry Pi 400

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať