Jautri skrybėlė ponui Pitonui

andraika post on spalio 3rd, 2017
Posted in avietynas, avietynas: uogienės

Pavadinimas visai nekeistas iš tikrųjų.

Senokai nieko nedariau su avietynu- vasara, kelionės, drugelių gaudymai gėlėtose pievose ir panašiai 🙂 Bet orai eina šaltyn ir norisi kažką veikt viduj, todėl pasidomėjau, ką gero ir naujo interneto prekyvietės siūlo avietynui ir nenusivyliau- turbūt Raspberry Pi metų naujiena- plokštė Sense Hat, sukurta Astro Pi misijai, kurios metu kelios avietės su skrybėlaitėm buvo išsiųstos į TKS mokslo populiarinimo tikslais. Tai kas gi yra toji skrybėlė? ogi sensorių rinkinys su 64 led diodais, išdėstytais 8×8 kvadratu.

Sense Hat

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inertial measurement unit (IMU) , pasiskaitykit nuorodoj patys, kas tas yra, aš per kvailas meškiukas, kad sudėliot sklandžiai 🙂 akselerometras, gyroskopas, magnetoskopas, drėgnumo, temperatūros ir slėgio sensoriai.

Ir kas gi iš to? Ypatingai nieko, bet galima pasižaist su sensoriais. Visų pirma, jei nenorim kurt atskiro failo, tiesiog einam į Python ir sumetam, tarkim, oro drėgnumo kodą-

from sense_hat import SenseHat

sense = SenseHat()

humidity = sense.get_humidity()

print(„Humidity: %s %%rH“ % humidity) # alternatives print(sense.humidity)

gal galima išvestį atvaizduot dioduose, kol kas neišsiaiškinau.

analogiškai temperatūra

from sense_hat

import SenseHat

sense = SenseHat() temp = sense.get_temperature()

print(„Temperature: %s C“ % temp)

# alternatives

print(sense.temp)

print(sense.temperature)

kvailumas tame, kad temperatūros sensorius yra toje pačioje plokštėje kartu su kaistančia elektronika, kur kosmose gal būtų kitaip, pas mane ant stalo temperatūrų skirtumas tarp kambarinio termometro ir skrybėlės- 5 laipsniai Celsijaus.

na ir slėgio kodas

from sense_hat import SenseHat

sense = SenseHat()

pressure = sense.get_pressure()

print(„Pressure: %s Millibars“ % pressure)

# alternatives

print(sense.pressure)

norint pasibovyt su magnetometru, aka kompasu, sumetam šitas komandas

sudo apt-get install octave -y

cd

cp /usr/share/librtimulib-utils/RTEllipsoidFit ./ -a

cd RTEllipsoidFit

RTIMULibCal

atsidariusiame meniu galima rinktis magnetometro kalibraciją ir mojuot aviete ore. man visas smagumas buvo stebėt terminale besikeičiančius skaičiukus..

Čia buvo nuobodžioji dalis. linksmoji yra ta, kad galima bovytis su 64 RGB led’ais ir blykčiot visom kalėdinėm spalvom 🙂 jei, pvz., noriu bėgančio užrašo (sėdėjau minutes 5 ką parašyt ir nesugalvojau, tai įrašau beleką, nes švepluot nesinori, o lietuviškos abėcėlės arba nemoku padaryt arba negalima) „asilas pritvojo vynuogyne“

from sense_hat import SenseHat
sense = SenseHat()

sense.show_message(„asilas pritvojo vynuogyne“)

žinutę galima sukustomaizint, kaip nori, pvz:

from sense_hat import SenseHat

sense = SenseHat()

yellow = (255, 255, 0) # spalvos kodas
blue = (0, 0, 255) # spalvos kodas

message = "Asilas pritvojo vynuogyne"

speed = 0.05 # skrolinimo greitis

sense.show_message(message, speed, text_colour=yellow, back_colour=blue)

jei norim žinutę leist infinity loopu, metam sekantį kodo šmotą pitonui

from sense_hat import SenseHat

sense = SenseHat()

yellow = (255, 255, 0)
blue = (0, 0, 255)

message = „asilas pritvojo vynuogyne“

speed = 0.05

while True:
sense.show_message(message, speed, text_colour=yellow, back_colour=blue)

pabodus stabdom su Ctrl+C ir išvalom komanda sense.clear()



štai, išguglinau, kaip LEDai parodo temperatūrą, slėgį ir oro drėgnumą:

#!/usr/bin/python 
from sense_hat 
import SenseHat import time

ap = SenseHat() 
temp = ap.get_temperature() 
humidity = ap.get_humidity() 
pressure = ap.get_pressure()

print("Temp: %s C" % temp) # Show temp on console
print("Humidity: %s %%rH" % humidity) # Show humidity on console
print("Pressure: %s Millibars" % pressure) # Show pressure on console

ap.set_rotation(180) # Set LED matrix to scroll from right to left

ap.show_message("%.1f C" % temp, scroll_speed=0.10, text_colour=[0, 255, 0])

time.sleep(1) # Wait 1 second

ap.show_message("%.1f %%rH" % humidity, scroll_speed=0.10, text_colour=[255, 0, 0]) 

time.sleep(1) # Wait 1 second

ap.show_message("%.1f Millibars" % humidity, scroll_speed=0.10, text_colour=[0, 0, 255])

ap.clear() # Clear LED matrix

o dar ant plokštės yra mažytis džoistikutis, kurio pagalba galima, pvz., stumdyt pikseliuką po matricą sekančio kodo pagalba-

from sense_hat import SenseHat, ACTION_PRESSED, ACTION_HELD, ACTION_RELEASED
from signal import pause

x = 3
y = 3
sense = SenseHat()

def clamp(value, min_value=0, max_value=7):
return min(max_value, max(min_value, value))

def pushed_up(event):
global y
if event.action != ACTION_RELEASED:
y = clamp(y – 1)

def pushed_down(event):
global y
if event.action != ACTION_RELEASED:
y = clamp(y + 1)

def pushed_left(event):
global x
if event.action != ACTION_RELEASED:
x = clamp(x – 1)

def pushed_right(event):
global x
if event.action != ACTION_RELEASED:
x = clamp(x + 1)

def refresh():
sense.clear()
sense.set_pixel(x, y, 255, 255, 255)

sense.stick.direction_up = pushed_up
sense.stick.direction_down = pushed_down
sense.stick.direction_left = pushed_left
sense.stick.direction_right = pushed_right
sense.stick.direction_any = refresh
refresh()
pause()



tam kartui tiek, bėgu žaist 🙂 visus kodo gabalus galima išsaugot failuose su plėtiniu *.py, kad kiekvieną kartą nekopypeistint. 

 

 

 

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *