Portál AbcLinuxu, 1. května 2025 04:54
Bylo nebylo, byl jsem kdysi na výstavě perníkových chaloupek. Již v dřívější době mně uchvátily a výstava mně jen přemluvila k činům.
Z našeho receptu na perník vylézá obří a různě tlustý perník. Mám známé, kteří mají recept takového toho tenkého, ze kterého jde i dělat krásné detailní chaloupky aj. věci. To mně ale nezajímá, jelikož mým cílem nikdy nebylo mít chaloupku plnou detailů, vše přesné na milimetry, aby dospělí udělali WOW. Já prostě nechtěl stavět chaloupku pro dospělé, ale pro děti. Tj. něco pořádně kýčovitého, velkého, co děti ohromí. Něco, co je nenechá chladnými, něco, na co když půjdou děti s kladivem a rozmlátí to po 10min, mi toho nebude líto.
Byla mým prvotním počinem. Hned mně napadlo, že dám na střechu lentilky a kolem a kolem další věci. Nicméně foto už nedohledám.
Napadlo mně, že bych mohl postavit vedle chaloupky i kadibudku a z ní nechat čouhat nohy, jakoby ježibaba byla uvnitř.
V této verzi jsem přihodil osvětlení pro chaloupku (bílá dioda) a pro kadibudku (červená dioda). Moc jsem se s tím nepáral, koupil 3V diody s pořádným výkonem, spájel dvě 1,5V baterie k sobě, přihodil vypínač, který jsem umístil pod stůl a hotovo. Když přišly děti, tajně jsem pod stolem přepínal diody a říkal : "Teď je ježibaba v kadibudce, teď v chaloupce" a děti z toho byly k uvytržení. To pár let vydrželo, ale koho by bavilo u toho stát.
2016 (už je od dětí okousaná, prostě pozdě vyfoceno)
Ruční přepínání diod začala být nuda, někdo tam musí stát, vypínač je jak pěst na oko (děti ho najdou, což není špatné, ale nechovají se k tomu nejlépe), navíc děti stárnou a už to není tak lákavé. Proto jsem si řekl, že pohybové čidlo by mohlo být řešením. A když už pohybové čidlo, tak proč né rovnou i nějaký zvukový doprovod? Rozhodl jsem se pro kadibudku sestavit orchestr z tohoto legendárního výběru : Výběr efektů zvuků prdů
a pro chaloupku jsem se rozhodl vykrást hlášky ježibaby z Mrazíka.
Mám asi 3ks RPi4, které ale využívám. Kolegovi se domá válelo RPi 1B, pro které už nemá využití, takže jsem do něj naladil Raspbian Buster (mimochodem, to je paráda, tak starý hw a aktuální debian, prostě parádní support RPi hw) a malý python script dořešil zbytek. Návodů na zapojení pohybového čidla a ovládání GPIO je na netu tuna, takže dát věci do provozu je pro laika otázkou několika hodin.
Výsledkem prvních testů je toto: Perníková chaloupka v4.0 - pracovní verze
A v nasazení to vypadá takto: Perníková chaloupka v4.0 - ostrá verze
Cca postup pro Raspbian viz.
# source : # https://maker.pro/raspberry-pi/tutorial/how-to-interface-a-pir-motion-sensor-with-raspberry-pi-gpio # https://thepihut.com/blogs/raspberry-pi-tutorials/raspberry-pi-gpio-sensing-motion-detection # playsound - nefunguje na rpi a s pygame byl také drobný problém, proto byl nakonec použit mpg321 # https://raspberrypi.stackexchange.com/questions/7088/playing-audio-files-with-python # nainstalujeme pár pythoních věcí apt-get install python3-pip python3-camera rpi.gpio python-pygame python3-gst-1.0 mpg321 # vytvoříme si script su - pi cd mkdir scripts cd scripts nano pir.py
V "pir.py" máme :
#!/usr/bin/env python3 import RPi.GPIO as GPIO import time import random import os GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN) #Read output from PIR motion sensor GPIO.setup(3, GPIO.OUT) #LED output pin GPIO.setup(5, GPIO.OUT) #LED output pin jagaLOClist = ['Home','WC'] jagaWClist = ['prd01.mp3','prd02.mp3','prd03.mp3','prd04.mp3','prd05.mp3'] jagaHOMElist = ['jaga01.mp3','jaga02.mp3','jaga03.mp3','jaga04.mp3,'jaga05.mp3'] while True: i=GPIO.input(11) GPIO.output(3, 0) #Turn OFF Home LED GPIO.output(5, 0) #Turn OFF WC LED if i==0: #When output from motion sensor is LOW print ("No motion detect",i) time.sleep(0.1) elif i==1: #When output from motion sensor is HIGH print ("Motion detect before gingerbread cottage",i) result = random.choice(jagaLOClist) #random choose if is jaga in WC or HOME if result=="Home": GPIO.output(3, 1) #Turn ON White LED in Home print ("Jaga is Home") jagaHOMEmp3result = random.choice(jagaHOMElist) #random choose mp3 for HOME time.sleep(1.2) os.system("mpg123 " + jagaHOMEmp3result) time.sleep(1.2) if result=="WC": GPIO.output(5, 1) #Turn ON Red LED on WC print ("Jaga is on WC") jagaWCmp3result = random.choice(jagaWClist) #random choose mp3 for WC time.sleep(1.2) os.system("mpg123 " + jagaWCmp3result) time.sleep(1.2)
Mp3 soubory jsou ve stejném adresáři jako skript, tj. "/home/pi/scripts/". Sleepy mezi rozsvícením led a spuštěním mp3 a následně naopak mám kvůli tomu, aby to vypadalo víc přirozeně (nejdřív někam ježibaba přijde, rozsvítí se světlo a až následně po chvilce začne mluvit). Poté už stačí skript naladit jako službu:
# vytvoříme systemd unitu nano /etc/systemd/system/gingerbread_cottage.service [Unit] Description=Gingerbread cottage After=systemd-user-sessions.service [Service] User=pi Type=forking WorkingDirectory=/home/pi/scripts ExecStart=/home/pi/scripts/pir.py Restart=always RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target # zapneme, aby byla po startu systemctl daemon-reload systemctl enable gingerbread_cottage.service systemctl start gingerbread_cottage.service
Jak vidíte z videoukázek výše, random generátor pro zvolení, zda je ježibaba v chaloupce, nebo v kadibudce, funguje uspokojivě. Ale náhodný výběr ze seznamu zvuků nefunguje moc dobře. Náhoda je velmi slabá a dost často se přehrává to samé. Jelikož ale dělám věci na poslední chvíli, tak už na nápravu nezbyl čas. Skript upravím tak, že bude docházet k přehrávání jednotlivých seznamů mp3 postupně podle seznamu stále dokola, aby se zvuky tolik neopakovaly jako nyní. RPi jsem si nepřipojil k netu, takže nápravu nyní udělat nemohu.
Na příští rok mám v plánu už nějaké krokové motůrky, případně písty a rád bych pár věcí trochu rozpohyboval. Když si chaloupku opět nenechám na poslední chvíli, tak by to mohlo klapnout a v5.0 by mohla spatřit světlo světa :).
A jak jste na tom vy? Hrajete si? Pochlubte se :).
Zdar Max
Tiskni
Sdílej:
miniaturní živočišný formy se tam oběvěj časem samy od sebe. aspoň teda mě perníček užíraj moli když se jako včas perníčky nesní a to mololapka nemololapka ;D
si myslim že to je jako hlavní problém těhletěch velkejch perníkovejch věcí u nás protože jak je to jako každýmu líto sníst tak se to nakonec vyhodí plný molích pavučinek a bobků :'(
nůůůůůůůůůůdddááááááááááááááááá :D :D
teda jako doufám že to neni jako neni tabulkovej layout na internetový stránky!!!! je to prej fuj řikal náš šišlavej jouda na výpočetku a prej se to nemá dělat i když to supr funguje ;D
supr chaloupka jako :D :D
krokový motorky a písty jsou overkill si myslim. strč tam takový ty malililinkaťoučký serva a driver hele ;D
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.