Jeffrey Cross
Jeffrey Cross

Halloween Sound Trigger Raspberry Pi: n ja Arduinon kanssa

[Vimeo: https: //vimeo.com/51950656]

Ihmiset ovat kysyneet minulta mielenkiintoisia sovelluksia Raspberry Pi: lle ja onko Raspberry Pi jonkinlainen Arduino-tappaja. Vastaus toiseen kysymykseen on ei; Itse asiassa se on Arduino augmenter. Tämä blogipostitus vastaa ensimmäiseen kysymykseen toisen kysymyksen kanssa: miten Haunted House -äänitehoste-koneella?

Viime perjantaina julkaistiin uusi versio Raspberry Pi -operaation alkuvaiheesta. Luin Matt Richardsonin luvun Pygame'in käytöstä Pi: n GPIO-nastoilla, jotka sisälsivät yksinkertaisen ääninäytteen soittimen. Sopeutin hänen esimerkkinsä työskentelemään Arduinon kanssa, joka puhuu Pi: n kanssa sarjaliitännästä; tämä luuranko (ahem) koukku voitaisiin helposti sisällyttää jonkinlaiseen Halloween-asennukseen. Päätin käyttää Arduinoa syötteiden lukemiseen, koska se on laatikosta vankempi ja pystyy käsittelemään laajempaa eri panosta. Lisäksi on olemassa monia olemassa olevia Haunted-taloja, jotka herättävät demoja ulos luonnonvaraisesti ja käyttävät Arduinoa.

Ensinnäkin sinun on valmisteltava liipaisupiiri. Seuraavassa esimerkissä käytetään kolmea vaihtokytkintä, mutta voit korvata ne, joilla on minkäänlaista päälle / pois tuloa. Haunted-talossa (tai kuistipohjaisessa asennuksessa) PIR-anturi olisi kätevä, kun se käynnistetään läheisyyden perusteella.

Seuraavassa on kaaviokuva:

10 k: n vastukset voidaan korvata Arduinon omilla sisäisillä vastusvastuksilla, jos tiedät, miten se tehdään.

Liitin Arduinon Raspberry Pi: hen USB-kaapelilla. Vaikka minulla oli Pi koukussa monitoriin, huomasin, että voisin vain kytkeä Arduinon Mac-näppäimistön USB-liitännän kautta ja sain tarpeeksi virtaa siitä töihin. Jos sinulla on vanhempi Raspberry Pi, jolla on polyfuusioita, jotka rajoittavat USB-portin virtaa (tarkista, onko USB-porttien vieressä merkitty 2 vihreää sulaketta, jotka on merkitty ”1104”), saatat tarvita ulkoisen keskittimen tai ajaa Pi-päätä vapauttaa USB-portin.

Siirrä seuraava luonnos Arduinoon:

// PiTalk.ino // Lukee kolme digitaalituloa. Nämä voivat olla mitä tahansa // kytkintä tai (Halloween) PIR-antureita. tavu onState [3] = {0, 0, 0}; // tallenna jokaisen nastan void setup () {Serial.begin (9600); // Avaa sarjayhteys pinMode (2, INPUT); // Aseta nämä kolme nastaa lukemaan pinMode (3, INPUT); // Jokaisella on 10k pullup ulkoinen pinMode (4, INPUT); // niin, että liipaisin on LOW} void loop () {for (int i = 0; i <3; i ++) {// Iteroi nastojen yli, jos (digitalRead (i + 2) == LOW) {// Tarkista, onko laukaista jos (onState [i] == 0) {// Juuri käynnistetty? Serial.write (i + 2); // Lähetä pin-numero onState [i] = 1; // mutta vain kerran}} else {onState [i] = 0; // Ei käynnistetty}} viive (20); }

Voit ladata ohjelman tietokoneellasi, tai voit ladata ja asentaa Arduino IDE: n suoraan Raspberry Pi -ohjelmaan (kuten on kuvattu seuraavassa Raspberry Pi: n käytön aloittamisessa).

Kun Arduino on ohjelmoitu, avaa Leafpad-tekstieditori Raspberry Pi: llä ja anna tämä Python-ohjelma, joka on sovitettu Matt's Soundin näytepelaajasta:

# playSounds.py tuonti pygame.mixer aika tuonti unen sys tuonti exit tuoda sarja pygame.mixer.init (44000, -16, 1, 1024) soundA = pygame.mixer.Sound ("Scream.wav") soundB = pygame .mixer.Sound ("WilhelmScream.wav") soundC = pygame.mixer.Sound ("CastleThunder.wav") soundChannelA = pygame.mixer.Channel (1) soundChannelB = pygame.mixer.Kanava (2) soundChannelC = pygame.mixer .Channel (3) tulostaa "Sampler Ready". serialFromArduino = serial.Serial ("/ dev / ttyACM0", 9600) serialFromArduino.flush () kun True: kokeile: val = ord (serialFromArduino.read ()) print (val) jos (val == 2): soundChannelA.play (soundA) jos (val == 3): soundChannelB.play (soundB) jos (val == 4): soundChannelC.play (soundC) val = 0 uni (.01) paitsi näppäimistöInterrupt: exit ()

Tallenna se playSounds.py-muodossa. Ennen kuin suoritat komentosarjan, sinun on todennäköisesti asennettava Python-sarjamoduuli. Voit tehdä tämän kirjoittamalla:

sudo apt-get asenna python-sarja

Jos käytät uusinta Raspbea, sinulla on luultavasti kaikki, mitä tarvitset tämän käynnistyksen saamiseksi. Avaa LXTerminal ja kirjoita:

python playSounds.py

Jos saat virheen, jota Pygame ei ole asennettu, kirjoita:

sudo apt-get päivitys sudo apt-get install python-pygame

Tarvitset myös joitakin äänitiedostoja toistettavaksi. Valitsin kolme Internet-arkistosta: yleinen huuto, Wilhelm Scream ja klassinen Castle Thunder -näyte.

Kun painat painikkeita, jokainen ääni toistetaan kerran; Pygame-sekoittimella on jopa kaikki kolme samanaikaisesti, jos sinulla on useita trick-or-käsittelijöitä, jotka hyökkäävät kuistiin.

Osake

Jättänyt Kommenttia