Jeffrey Cross
Jeffrey Cross

Isä / tytär Vadelma Pi-pohjainen valtion julisteprojekti

Tyttäremme koulussa kaikki 2. luokkalaiset koottivat ”valtion hallituksen” projektin. Heille annetaan satunnaisesti valtio (tyttäremme tapauksessa Vermont) ja opiskelijat työskentelevät koottavan julisteen kolmikerroksiselle pahvikappaleelle. Olen kuullut, että projekteissa on usein 3D-näkökohtia, kuten eläimet ja tuotteet, ja useiden vuosien varrella on ollut painikkeita, joilla voit toistaa asioita kuten valtion laulu. Aivotimme mahdollisia elementtejä, joita voisimme sisällyttää pöydälle ja miettiä ääntä, valoa ja jopa ajatella EL-johtoisia animoituja jokia. Halusin varmistaa, että jos valitsimme yksityiskohtaisemman suunnittelun, että tyttäremme todella harjoittaa suurinta osaa työstä ja että me dokumentoimme sen, niin käytin flip-videotallentinta filmin suurimman osan prosessista. Elektroniikan kannalta tyttäremme hyppäsi melko nopeasti oppineen juottamaan New Yorkin viimeisimmässä Maker Fairessa. Hän on rakentanut pari sarjaa sen jälkeen. Perma-Protossa oli kohtuullisen paljon juottamista. Alla olevassa videossa näkyy tyttäremme, joka työskentelee Perma-Proto- ja painopöydissä.

Halutun äänen ja valon elementtien saamiseksi meidän oli valittava sopiva ohjain. Keskustelin siitä, olisiko parasta suositella Arduino-pohjaista suunnittelua tai käyttää Raspberry Pi -ohjelmaa. Arduino-lähestymistapa voi käyttää Arduino- ja Wave Shield -yhdistelmää. Sen etuna olisi nopea käynnistys ja sammutus, ja sillä olisi selkeä keskeytymätön ääni.Raspberry Pi olisi mahdollisesti halvempi, koska se voisi toistaa äänen omasta tiedostojärjestelmästään, sillä on verkottuminen (malli B) ja se voi käyttää Adafruitin WebIDE-sivustoa, joka yksinkertaistaisi tyttäremme Python-pohjaisia ​​ohjelmointitehtäviä (Arduino ei on ollut Python). Pi voisi tehdä monitehtäviä, mikä helpottaisi jotakin asiaa, mutta tekisi sileän äänen toistamisen haastavammaksi. Koska hanke olisi paikalla koulussa loppuvuonna, myös energianhallinta oli tärkeää - niinpä siro auto-shutdown olisi välttämätöntä. Olin tehnyt monia aikaisempia hankkeita Arduino / Wave Shield -yhdistelmällä, joten halusin todella nähdä, kuinka hyvin se voitaisiin tehdä Raspberry Pi: n kanssa. WebIDE auttoi minua vakuuttamaan, että tyttäremme olisi helpompi työskennellä (ja hän on juuri aloittanut työnsä Python for Kidsin kautta).

Aloitimme karkea käsitys siitä, miten ajattelimme, että asiat tulisivat yhteen. Ensinnäkin meidän pitäisi olla valtion ääriviivat. Yksi tavoitteista oli välttää paljon johtoja ja yhteyksiä kolmikerroksen takana. Tämän saavuttamiseksi valtion rajapiirin tulisi olla erillinen kappale. Se oli tyytyväinen myös 3D-ulkoasun luomiseen valtiolle. Olisi voinut käyttää vaahtolevyä, mutta ajattelin, että vuosineljänneksen vaneri pääsi paremmin ja mahdollistaa tarkemmat leikkaukset. Suunnitelmana oli käyttää todellisia valtion rajatietoja gC-koodin tuottamiseksi CNC: lle. Suunnittelemme myös LEDien tarkan sijainnin ja porataan reiät puun niissä paikoissa. Legenda olisi myös puuta ja siinä olisi reikiä LEDille ja painikkeille. Toivon, että RGB-LEDien yksi osa voidaan ohjata valtion ja legendalevyjen takapuolelle ja osua kaikkiin reikiin. Aiomme käyttää yhteensä 50 LEDiä, 15 legenda ja 35 karttaa. Kuten kävi ilmi, meidän olisi pitänyt säätää reikiä jonkin verran, mutta teimme melko hyvin hukkaan vain 2 säikeellä, joka ei saavuttanut reikää, ja jouduimme lisäämään vielä 2 kompensoitavaksi, jotka oli kytketty lankaan loppuun (halusimme säilyttää kaksi 25 LED-säiettä, joita käytimme ehjänä).

Muita suunnitelmamme osia sisälsi langattoman kauko-ohjaimen käytön 8: n painikkeen lisäksi, joita aiottiin käyttää laudalla. Koska kauko-vastaanotin toimi 5 volttia, tarvitsimme ottaa käyttöön tasonmuuntimen käytettäväksi 3,3 voltin Raspberry Pi: n kanssa. Tarvitsimme sitten kytkinmoduulin, joka voisi laukaista täyden tehon hetkellisen kytkimen puristimesta samalla kun käytettiin hyvin vähän virtaa kytkimen valvomiseksi. Tarvitsimme myös Pi: n äänen vahvistamista pienelle joukolle kaiuttimia. Koska Pi-ääni ei ole aina sileä ja sillä on satunnaisia ​​napsautuksia ja ponnahtumia (jopa jonkin verran suodatusta) - tämä voi aiheuttaa ongelmia, jos vahvistin ajetaan samasta tarjonnasta kuin Pi, koska se voi piirtää tarpeeksi virtaa Pi: n kaatamiseksi. Joten vahvistimella olisi oltava oma voima, joka voitaisiin kytkeä, kun päävirta nousi. Joten kaikki tarvittavat laitteet koostuivat seuraavista:

  • Raspberry Pi Malli B (Rev 1)
  • Adafruit täysikokoinen Perma-Proto Raspberry Pi -leivänpaneelin piirilevy
  • Raspberry Pi GPIO -kaapelikaapeli
  • 2 viivaa 25 12 mm: n leveää tasaista digitaalista RGB-LED-kuvapistettä (ja 2 LED-levyä, jotka on otettu toisesta WS2801-pohjaisesta 20 RGB-LED-ketjusta Sparkfunilta, kun tarvitsin 52)
  • 4-nastainen JST SM -liitinsarja (liitettäväksi / irrotettavaksi LED-säikeestä ja meidän tapauksessamme kiinnittää pari ylimääräistä LEDiä ketjun loppuun)
  • Pyöreät kosketusnäppäimet
  • Stereo 3.7W D-luokan audiovahvistin
  • 4-kanavainen kaksisuuntainen logiikkatason muunnin (valinnaiselle RF: lle)
  • Yksinkertainen RF M4 -vastaanotin - 315 MHz: n hetkellinen tyyppi (valinnaiselle RF: lle)
  • Keyfobin RF-kaukosäädin - 315 MHz (valinnaiselle RF: lle)
  • 4 D-solun akkukoteloa (yhdistetty alla olevaan 1 D-Cell-pidikkeeseen)
  • 1 D-solun akkukotelo
  • 4 AA-kennon akkukotelo (muunnetaan 3-kennoiseksi pidikkeeksi johtimella yhteen solun asemista)
  • 2 Dual Mini Boards (kaksi painike-aluetta)
  • Oikean kulman äänisovitin (sopii Pi: n äänilähtöön)
  • Stereo Mini Plug
  • 5mm laajakulmainen punainen LED
  • Koko M Koaksiaalinen DC-virtapistoke (hauskaa varten kiinnitin poistettuun pistokkeeseen Poista ennen lentoa -tunnisteen, jotta voit selvittää, että pistoke irrotetaan, kun haluat käyttää sitä)
  • Panel-Mount koko M koaksiaalinen virtaliitin
  • 2 2 tuuman paperikotelo Midrange Tweeters (4 ohmia)
  • Pololu Step-Down Voltage Regulator (5 volttia, 3,5 ampeeria)
  • Pololu-painike Virtakytkin SV
  • 5VDC SPDT Micro -rele
  • 9 2-paikkainen PCB-liitin
  • Board Edge -asennussarja (Pi-mallille B Rev 1, koska sillä ei ole asennusreikiä)
  • # 8 5/8 ″ Pyöreät päänruuvit (kun lokasuojalevyt alla kiinnitetään pahviin puuhun)
  • 1/8 "x 1" lokasuojat
  • # 4 Koneen ruuvit, pesurit, mutterit (Perma-Proto- ja akkukoteloiden kiinnittämiseen)
  • # 8 x 1/2 ″ Sheet Metal Screws (työstää edellä esitetyn laudan reuna-asennussarjan ruuvien sijasta 1/4 ″ vanerin läpi - ehkä pesukoneella tai kahdella, jotta niiden pituus vähenee)

Käytimme modulaarisia 6-johtimisia modulaarisia puhelimia, joissa oli liitäntä napin paneeleihin. Legendapaneelissa käytettiin kaikkia 6 johtinta 5 painikkeelle ja löydimme 6-johtimisen modulaarisen puhelinkaapelin paikallisessa Radio Shackissä (tämä on vaikeampaa tulla kuin 4-johtimella). Virta- ja muille painikkeille käytimme vielä kahta 4-johtimista moduulikaapelia. Halvimmat liittimet olivat 10-paketteja Home Depotissa, mutta modulaarinen kaapeli, jota meillä oli ollut, oli himmennetty, joten se ei ollut aivan niin helppoa kuin pelkkä lävistystyökalu - meidän täytyi työskennellä varmistaaksemme, että se otti yhteyttä - joskus jotkut lanka, jossa se tuli kanavan läpi. Saattaa olla helpompaa, joskin hieman kalliimpaa vain käyttää RJ45- ja CAT5-kytkentäkaapeleita.

Alla on esitetty kolmikerroksen keskiosan alareunaan asennettu valmis ohjauslaatikko.

Nyt kun olemme tarkastelleet yleiskatsausta rakennusmateriaaleista ja kun otetaan huomioon kyseiset materiaalit, keskustellaan joitakin tärkeimpiä vaiheita yksityiskohtaisesti.

LED-sijoittelun suunnittelu

Tärkeä osa hanketta oli suunnitella kaikkien LED-levyjen sijoittamista kartalle sekä mitä värejä niiden pitäisi olla eri tuotteiden merkitsemiseksi legendalle. Koska LEDit voivat muuttua mihin tahansa väriin, yksittäisiä LED-valoja voidaan käyttää eri tuotteiden eri aikoina ilmoittamiseen eri väreillä. Joten suunnittelussa voitaisiin säilyttää LED-valoja käyttämällä yhtä LEDiä edustamaan jokaista valtion aluetta. Tässä on video tyttäremme suunnitteluprosessista, mukaan lukien värivalinta ja RGB-arvon määrittäminen:

Valtion leikkaaminen CNC: llä

Meidän tapauksessamme meillä oli pieni CNC-kone, jota voisimme käyttää valtion ääriviivojen leikkaamiseen (puun laserleikkaus olisi ollut helpompaa). Koska valtion haluttu koko oli suurempi kuin CNC, suunnitelma oli leikata se 4 kappaleeseen ja liittyä yhteen. Viime kädessä kaikki tuli alas, miten luoda CN-koodin g-koodi. Tämä saavutettiin sekoittamalla joitakin Python- ja Java-koodeja ja se voidaan sovittaa muihin valtion rajoihin. Tässä voidaan ladata miljoona asteikon US-valtion rajoja. Olen myös tehnyt paikallisen kopion statep010_nt00798.tar.gz 2012 -rajatiedostosta täältä. Arkistotiedostossa on muodon muotoinen tiedosto, jossa on kaikkien valtioiden rajatiedot. Yksinkertaisen Python-ohjelman avulla voidaan kopioida leveys- ja pituusarvot tietyn tilan rajalle seuraavasti:

tuoda muotoilun tuonti sys r = shapefile.Reader ("statep010.shp") sr = r.shapeRecords () s: lle: jos s.record [3] == 'Vermont': muoto = sf = open ("vermont. txt ", 'w') pt: lle muotoon.muoto.pisteet: f.write (str (pt [0])) f.write (", ") f.write (str (pt [1])) f. kirjoita ("n") f.close ()

Yllä oleva Python-ohjelma tarvitsee asennettavaksi Python-muotoisen laajennuksen. Se löytää haluttuun tilaan liittyvän tietueen, tässä tapauksessa Vermont, ja kirjoittaa leveys- ja pituusarvot tilojen ääriviivoista ASCII-tietokantaan, jonka nimi on vermont.txt ja jota käytetään seuraavassa ohjelmassamme. Seuraava ohjelmakokonaisuus (kirjoitettu Java-muodossa ja saatavilla vermont.jarissa) luo g-koodin projektin eri osille. Nämä kaikki antavat graafisen esikatselun osista, joita ne leikkaavat. Ensimmäinen ohjelma (nimeltään Plot.java) kuvaa tilarajan vermont.txt-tiedostosta, mutta käyttää myös resurssitiedostoja, joissa on valojen sijainti (kuten interpoloitu Vermont-tuotekartasta) ja jotkut kaupungin paikat (lat / lonista) ) auttaa ymmärtämään, mihin kaupungin etiketit sijoitetaan. Reiät ovat suunnilleen mittakaavassa, mikä antoi meille käsityksen siitä, olivatko ne liian lähellä valtion neljänneksen reunaa tai rajoja. Joitakin polygoneja leikkauksia käytettiin Javaissa tuottamaan 4 pienempää polygonia niiden osien tilaan, joita tarvitsimme leikata erikseen. Käännimme leikattuja rajoja, kunnes he eivät ylittäneet mitään valoaukkojen sijainteja, mutta silti pitivät valtion neljännekset riittävän pieninä leikkaamaan CNC: tä. Loppujen lopuksi ohjelma tuottaa 4 g-kooditiedostoa, joista toinen on jokaiselle tilan neljännekselle (vermont1.nc, vermont2.nc, vermont3.nc ja vermont4.nc).

Alla olevassa videossa on esimerkkejä LED-valojen leikkaamista pilottisäleistä ja leikattavista rajoista:

Leikkaus Otsikkokirjeet

Käytimme myös CNC: tä leikkaamaan yksittäisiä kirjeitä Vermontille. Kokeilin NCPlotia, joka toimi melko hyvin g-koodin tuottamiseksi kirjaimille. Minun piti tilata leikkaukset uudelleen "R" - ja "O" -kirjeissä, koska löysin hieman liian myöhään, että se ei leikannut reikiä ennen kuin se leikkaa itse kirjainrajan. Tässä on leikattujen ja hiottujen nimikirjojen video:

Legendan suunnittelu / leikkaus

Lajittelimme legendapaneelin siten, että se mahtuu 15 tuotetietoon, joissa oli riittävästi LED-reikiä. Se oli myös sovitettava keskikartongin paneeliin valtion oikeassa alakulmassa. Ensisijaiset ohjauspainikkeet sijaitsevat myös alareunassa olevassa legendapaneelissa. Niinpä enimmäkseen CNC: tä käytettiin kaikkien LEDien legendaaristen reiän reikien poraukseen sekä 5 painikkeeseen ja paneelin suorakulmaisen reunan leikkaamiseen.

Ja tässä on leikattu legendapaneeli:

Puun osien liimaus / hionta / maalaus

Valtion neljä neljäsosaa kappaletta liimattiin puun liimalla. Nämä liittymät olivat suoria reunoja pitkin. Takana olevia saumoja pitkin käytettiin ohuita puupaloja saumojen vahvistamiseksi (ne oli leikattava pois pari reikää dremelillä). Valtio, kirjaimet ja legendakappaleet olivat kaikki hiottu ja maalattu. Valtion jokit ja vesialueet maalattiin sinisellä glitterimaalilla. Tässä on kuva maalausprosessista:

Ennen kuin veden ominaisuudet on maalattu, kuten edellä esitetyssä videossa, ne jäljitettiin käyttäen projisoitua peitettä alla olevan kuvan mukaisesti:

LEDien kiinnittäminen

Kaikki LED-reiät porattiin niin, että LEDit ulottuvat reikien läpi ja litteät osat, jotka sisälsivät IC: itä, ovat tasaisesti vasten puuta takapuolella. Kuumasulaliima pitää kunkin LEDin paikallaan. LED-ketju alkaa legendapaneelin alareunasta, jossa LEDit täyttävät kaikki reiät alhaalta ylöspäin ja sitten ne siirtyvät karttaan, jossa ne kulkevat 35 reiän läpi. Muutamassa tapauksessa LED ei päässyt reikään ja se oli ohitettava (koska emme halunneet leikata kahta 25 LED-säikettä). Keskustelin siitä, että kirjoittaisin todellakin koodin, jotta voit etsiä parhaan tavan peittää reiät vähäisimpien ohitettujen LEDien avulla (tuttu algoritmien ongelma) - mutta puuttuva 2 ei ollut niin huono. Tämän seurauksena meidän on koottava 2 LED-laajennus (käyttäen toista JST-pistoketta sarjasta) ja lisättävä se ketjuun. Alla olevassa kuvassa on ylhäältä katsottuna näkymä kartongista, josta näet kartonkikerroksen, asennuskappaleet ja kartiokerroksen.

painikkeet

On 4 aluetta, joilla painikkeita tarvitaan: legendapaneelin alareunassa on ”päällä” -painike valtion alareunassa (joka sisältää tehon merkkivalon) ja kappaleen ja linnun vasemmalla puolella olevat painikkeet. yläosassa. Kaikki nämä on tuettu pienillä proto-levyillä, joiden painikkeet ja ledit ulottuvat joko puun tai pahvin läpi ja jotka on sulatettu kuumasulatettaviksi. 5 legendaaripainiketta yhdistetään yhdellä 6-johtimella modulaarinen puhelinjohto. Virtapainike / led on kytketty 4 johtimen modulaariseen puhelinjohtoon ja sitten lintu- ja kappalepainikkeet käyttävät yhdessä toista 4 johtimen moduulijohtoa.

Levyjen kiinnittäminen kartonkiin Tri-Fold

Sekä valtion että legendalevyjen puupalat on liimattu niihin takana, jotta LED-säikeille (ja painikkeille) jää tilaa niiden takana, mutta pahvin edessä. Lokasuojalevyt ja puupultit tulevat kartongin takapuolelle näihin puulohkoihin, jotka pitävät levyt tukevasti pahvilla.

Ohjauskotelon kotelon suunnittelu

Elektroniikkaohjauslaatikko on kiinnitetty keskimmäisen pahvipaneelin pohjaan takana. Laatikko on 24 ″ pitkä (sopii yhteen keskimmäisen kolmikerroksen kanssa). Elektroniikka, paristot ja kaiuttimet on sijoitettu lineaarisesti koko 24 ″: n pitkin. Helpompaa pääsyä varten käytetään akryyli- liukupintaa, joka voi avata täysin elektroniikan ja paristojen saatavuuden takaamiseksi. Itse komponentit on myös asennettu liukuvaan 1/4 tuuman vaneri- alustaan, joka on asennettu hieman laatikon pohjan yläpuolelle. Laatikon pohja voi siis olla tasainen ilman, että levyn ja akkujen eri kiinnitysruuvit ovat alttiina. On myös kätevää siirtää elektroniikka ulos. Laatikon toisessa päätykappaleessa on sekä verkkopistoke että ulkoinen virtaliitin. Alun perin käytimme ulkoista tehoa, mutta kun akun virtapiiri oli täysin paikoillaan, joka tuli paljon helpommaksi ja emme koskaan käyttänyt ulkoista virtaa uudelleen kehityksen aikana. Virtaliitäntä on kytketty niin, että akkuvirta katkeaa, kun ulkoista virtaa käytetään (mutta hyppääjä on poistettava, jos haluat antaa säädetyn 5 voltin tehon ulkoisen pistokkeen kautta - muuten sisäinen 5 voltin säädin tarvitsee hieman korkeamman jännitteen - kuten 5 ”D” -solua tarjoavat, kun se on akussa. Ulkoiseen virtaliitäntään sijoitettu nukke toimii tehokkaana turvallisuutena, joten järjestelmä ei vahingossa käynnisty kuljetuksen aikana. Ilmailuyhteisöä kohtaan osoittautui järkevästi liittää "Poista ennen lentoa" -bändi nukkeulokkeeseen osoittamaan selkeästi sen tarkoitusta (ja olen äskettäin nähnyt vanhempieni tyttäremme kouluissa poistamalla pistokkeen ilman, että tarvitsisi selitystä, jotta se saataisiin kokeilemaan ).

Alla olevassa kuvassa näkyy kotelon loppu, kun verkkoliitäntä on poistettu. Tämä osoittaa alareunan, johon komponentit on liitetty. Pi-aluksella voit nähdä piirilevyn leikkeet, jotka pitävät sitä pohjassa. Kiinnittimien avulla käytettiin sopivan syvyydeltään metallilevyjä, jotta 1/4 ″ vanerilevyn kiinnitys olisi mahdollista. Kaiutin on normaalisti kuvan keskellä. Hyvin lyhyt RJ45-uros-mies-kaapeli luotiin sillan poistamiseksi Pi: n ja naaras-naaras-RJ45: n välillä, jota käytettiin päätepaneelissa olevana verkkoliitäntänä.

Ohjauslaatikko on kiinnitetty kartonkiin käyttäen samoja lokasuoja- ja puukruuveja kuin tila ja legenda, paitsi että ne tulevat levyn etupuolelta ja peitetään tarroilla ja vaahteranlehdillä. On kolme ruuvia, yksi vasemmalla, yksi keskellä ja toinen oikealla. Laatikossa on johdotusreikä, joka tulee ulos legendan alapuolelta. 6-johtiminen modulaarinen johto ja 4-nastainen JST kulkevat kyseisen reiän läpi. Tässä on leike, jossa on tytär, joka hiontaa ohjauskotelon kappaleita ennen asennusta:

Yksi hauska yksityiskohta oli luoda ääni- / tuuletusreiät akryyli- liukukanteen koteloon. Vermont.jar: n sisältämä AcrylicTop-luokka luo venttiilien reikien g-koodin. Koska nämä olivat tuuletusaukkomalleja, koodin ei tarvitse itse käyttää fontin merkkien lyöntejä. Koodi antaa merkit pieneksi kuvaksi ja sen jälkeen iteroi kuvan pikselit sen määrittämiseksi, missä pikselit täytetään. Niiden sijainti skaalataan ja muunnetaan halutulla tavalla kannen sijaintia ja sijaintia varten.

Tässä on video siitä, miten ääni / tuuletusreiät leikattiin akryylissä:

Niiden akryylien kanssa, joita leikattiin, materiaalit pyrkivät sulamaan myllypinnalle. Siksi otimme käyttöön taukoja, jotta bitti voidaan harjata pois, kun jokainen reikäryhmä oli porattu. Tämä ratkaisi ongelman (ensimmäisessä liikkeessämme reiät kasvoivat asteittain, kun materiaali kertyi bittiin).

Ohjelmisto

Pi toimii Occidentalis-jakelu Adafrukselta (0,2 tästä kirjoituksesta). Hanke toteutetaan yhdestä Python-rutiinista, joka on kehitetty Adafruitin WebIDE: n avulla. Python-rutiini- ja datatiedostojen lisäksi pari muuta muutosta oli tehtävä koodin suorittamiseksi palveluna ja automaattisen sammutuksen suorittamiseksi. Kun käytät WebIDE-tiedostoa, Vermont-ohjelman käynnissä olevat tiedostot sijaitsevat / usr / share / adafruit / webide / repositories / my-pi-projects / Vermontissa Pi: ssä. Vermont.py on pääohjelma. Tämän suorittamiseksi palveluna, kun Pi käynnistyy, / etc / init.d / vermont-tiedosto lisättiin seuraavasti:

#! / bin / sh # /etc/init.d/vermont tapaus "$ 1" alussa) echo "Käynnistä vermont" sudo /usr/share/adafruit/webide/repositories/my-pi-projects/Vermont/Vermont.py 2> & 1 & ;; stop) echo "pysäyttää vermont" # tappaa sovelluksen, jonka haluat pysäyttää LP_PID = `ps auxwww | grep Vermont.py | head -2 | awk '{print $ 2}'` tappaa -9 $ LP_PID ;; *) echo "Käyttö: /etc/init.d/vermont {start | stop}" exit 1 ;; esac exit 0

Muista käyttää “update-rc.d vermont default -asetuksia” rekisteröidäksesi palvelun käynnissä boot.

Jos käytät IDE: tä, kannattaa ehkä tehdä "/etc/init.d/vermont stop" kuoressa varmistaaksesi, että palvelu ei ole käynnissä, kun suoritat toisen IDE: stä. Koska koodissamme oli ajoitettu automaattinen sammutus, meidän oli oltava varovaisia ​​asettamaan aikakatkaisu korkeammaksi tai olemaan suorittamatta koodia hyvin pitkään kehityksen aikana tai se saattoi sulkea, jos emme olisi osuneet mihinkään painikkeeseen. Automaattisen sammuttamisen käyttämiseksi laitamme Pi: n shutdown.py-komentosarjan seuraavasti:

#! / usr / bin / python tuo RPi.GPIO GPIO GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) GPIO.output (4, True)

Koska meidän hallitus käyttää GPIO # 4 -linjaa kertomaan Pololu-kytkimelle virran katkaisemiseksi, tämä komentosarja katkaisee virran välittömästi. Mutta haluamme ensin siro sulkeutumisen, joten muutimme haltroutiinia vetoamaan siihen, kun pyydettiin virtaa. Pysäytysskriptiä muutetaan sisällyttämällä shutdown.py-puhelu "Nyt pysähtyy" -rivin ja todellisen pysäytyspuhelun välillä:

... log_action_msg "Nyt pysähtyy" / usr / bin / python /home/pi/shutdown.py halt -d -f $ netdown $ poweroff $ hddown ...

Soitto välittömästi välitettävän sulkemisen suorittamiseksi virrankatkaisulla on sitten "shutdown -h nyt". Tämän tekee hakemuksemme, kun käyttäjä osuu "Pois" -painikkeeseen.

Tässä on luettelo Vermont.py-sovelluksen täydellisestä luettelosta. Lisäksi lukuisia wav-tiedostoja tallennettiin käytettäväksi ja ne sijaitsevat alihakemistossa, joka on nimeltään "ääni" pää "vermont" -hakemiston alla. Tiedostot tallennettiin / muokattiin / yhdistettiin erinomaisella Audacity-työkalulla. Jotkut alkuperäiset kappaleet ja äänet olivat MP3-muodossa. Vaikka Pi voi pelata näitä hienoja MPG321: llä, havaittiin, että suorituskyky oli hieman parempi, jos ne muunnetaan WAV-muotoon. MPG321-työkalua voidaan itse käyttää Pi: n muuntamiseen. Sitten käytimme yhtenäisesti aplay-työkalua WAV-tiedostojen toistamiseen. Useimmiten ääni toistetaan asynkronisesti ja se keskeytetään tahallisesti, jos toista ääntä täytyy toistaa. Tämä toteutetaan puhelun tavoin, kuten:

os.system ("killall aplay; aplay mysound.wav &")

Periaatteessa tämä tappaa kaikki nykyiset aplay- ja taustakuvat uuden. Synkroninen versio jätti vain merkin ja estäisi, kunnes ääni toistetaan. Teemme sen muutamissa paikoissa logiikan yksinkertaistamiseksi.

Kyky taustakierrokselle äänen avulla antaa meille mahdollisuuden äänestää painikkeita ja aiheuttaa LED-muutoksia äänen toiston aikana (vaihtoehto olisi ollut käyttää keskeytyksiä palvelupainikkeisiin). Joissakin paikoissa yksinkertaistimme taustan taustalla olevaa ääntä yhdistämällä leikkeet yhdeksi tiedostoksi (usein nimellä "combo"). Tämä välttää tarve taustalla toisto-operaatioita.

Sovelluksessa on 4 toimintatilaa, joita ohjaa ”Mode” -painike: manuaalinen, automaattinen, tietokilpailu ja asetukset. Manuaalisessa tilassa ylös- ja alas-nuolia ja valintaa voidaan käyttää korostamaan legendan elementtejä ja näyttämään, missä ne ovat kartalla. Paina -näppäintä, kun haluat valita kohteen sisältävän äänen. Automaattinen tila siirtyy automaattisesti läpi legendan. Valinta toimii edelleen, mutta ylhäältä tai alaspäin siirtyminen siirtyy takaisin manuaaliseen tilaan. Tietovisa-tila kysyy käyttäjiä Vermont-tosiseikoista, ja heidän on käytettävä ylös- ja alas-näppäimiä ja valittava jokin legenda-aiheista vastaamaan kaikkiin kysymyksiin. Asetustila mahdollistaa automaattisen sammutusajan vaihtamisen 5 minuutista 60 minuuttiin. Oletusarvo on 5 minuuttia virran säästämiseksi. Tilakappaleiden ja lintujen kappaleen painikkeet voidaan valita manuaalisesti tai automaattisessa tilassa. ”Pois” -painike sulkee projektin alaspäin (antaa sinulle parin mahdollisuuden pelastaa ulos ennen kuin todellinen sammutus alkaa). ”On” -painiketta käytetään virran kytkemiseen (mutta se todella suorittaa hätäpysäytyksen, jos sitä painetaan uudelleen - Pololu-kytkinmoduulin toiminnan artefakti).

Sovellus on erittäin dataa ohjaava "kohokohtia" -luettelolla, jossa äänet, värit ja niihin liittyvät valot toistetaan yhdessä. "Tietokilpailu" -luettelossa on luettelo tietokilpailuista ja vastauksista.

Pythonin jäsentäminen siten, että useimmat mukautukset voidaan tehdä muokkaamalla tietoja, helpottaa niiden pääsyä lapsille, jotka voivat luoda yksityiskohdat itse (toinen luokkalainen, katso alla oleva video, kun hän käyttää Adafruit WebIDE: tä syöttääkseen mukautetut tiedot). Muiden koodien pitäminen modulaarisena (voisimme luultavasti tehdä paremmin) helpottaa lasten mahdollisuuksia osallistua joihinkin logiikkaan (sanoa tietokilpailuun) ilman, että tarvitsisi miettiä kaikkia monimutkaisempia vuorovaikutuksia.

Kuvatekstien ja liimauselementtien perinteinen julistustyö hallitukseen

Sähköisten elementtien lisäksi julisteella oli kaikki perinteiset näkökohdat valokuvien ja painettujen materiaalien kiinnittämiseksi levylle. Me mustesuihkutulostimme tarrat joko valkoiseen tai läpinäkyvään, koko sivun tarran paperiin ja leikattiin sitten legenda- ja tuotetarroille. Tyttäremme tuli myös ideoiksi liimata Maple Leaves julisteeseen (koska Vermontissa oli Sugar Maple and Maple Syrup). Tämä auttoi piilottamaan pari alareunassa olevaa ruuvinreikää ja missä johdot silloivat legendasta karttaan. Seuraavassa on tiivistetty video, jossa on joitakin elementtejä, jotka ovat elementtejä liimaamalla / liimaamalla levylle:

Tarkastellaan elektroniikkaa yksityiskohtaisemmin

Tarkastellaan ensin kotelon komponenttien asettelua. Vasemmalla on Pi: n asennusasento, joka yhdistää suoraan verkkoliitäntään ulkopuolelta - mikä on kätevää ohjelmaa sovitettaessa WebIDE: n kanssa. Oikea kaiutin sopii myös siihen (se on oikea, kun kohtaat levyn etuosaa). Ulkoinen virtaliitäntä on kiinnitetty kaiuttimen alapuolelle verkkopistoketta vastapäätä. Näet myös aukon, joka kuljettaa LED-kaapelia ja 6-johtimisen napinjohtoa vain selityspaneelin alle.

Keskellä on Perma-Proto-lauta, joka koostui useimmista juotostöistä. Tarkastelemme sen ulkoasua alla. Vasemmalla on Pi-kaapeliin liitetty nauhakaapeli.

Oikealla puolella on kaksi akkua. 5 D-solua käyttävät Pi ja LED-säikeet. 3 ”AA” -solua tehostavat audiovahvistinta (niin, että se on eristetty päävirtalähteestä). Oikealla oikealla on vasen kaiutin. Kaiken kaikkiaan se on melko tiukka sovitus, mutta se pitää posterin vakaana - vastapainona puulle ja edessä oleville LEDeille - ja pitää painopisteen alhaisena.

Alla olevassa kuvassa on suurennettu kuva Perma-Proto-kortista. Juuri nauhan liittimen oikealla puolella on tasomuuntaja. RF-vastaanotinlevy, joka istuu pystysuoraan sen yläpuolella, toimii 5 volttia ja tasosäädin muuntaa RF-vastaanottimen kortin 4 digitaalilähdettä Pi-3,3 voltin tasolle. Pinoutit vastaavat melko hyvin, joten 7-napainen pistorasia voi jakaa samat nastat tasomuuntajalla (katso Perma-Proto-laitteen toinen kuva, jossa on RF-vastaanotin, vahvistin ja jännitesäädin).

Levyn keskellä on Pololu-kytkinmoduuli, joka mahdollistaa hetkellisen kytkimen käynnistämisen järjestelmään. Se toimii suoraan joko ulkoisen tehon tai 5 "D" -solun tuottaman jännitteen avulla. 5 voltin säädin on valinnaisesti kiinnitetty jumittimen ja piirilevyn liittimiin (vihreä levy ylhäällä). Ainoa tapaus, jota et käyttäisi, olisi, jos sinulla olisi säännelty ulkoinen 5 voltin teho. Pääasiassa siksi, että se oli kätevä, 5 voltin releä (tehomoduulin oikealla puolella) käytetään virran kytkemiseksi äänivahvistimeen sen erillisen syötön kautta, kun päävirta nousee. Tämä on periaatteessa eristys, joten audiovahvistimen mahdolliset tehopiikkit eivät alenna Pi: tä. Itse vahvistin soveltuu releen oikealla puolella olevaan liitäntään levyn oikealla puolella. Vahvistimen liittäminen helpottaa kaiuttimien ja vahvistimen irrottamista yksikköksi. Vahvistin sisältää myös hyppyjohdon vahvistuksen hallitsemiseksi.

Kuvassa RF-antenni kelataan ylös. Vastaanottoa parannettiin venyttämällä antenni laatikon koko pituudelle - mutta alue oli vielä melko heikko. En ole varma, että olisimme sisällyttäneet RF-vastaanottimen, jos haluaisimme tehdä tämän uudelleen. Olisi hyödyllistä suunnitella Pi: n piirilevy tällä ominaisuuksien yhdistelmällä (teho, LED-säikeet, vahvistin ja mahdollisesti RF).

Koska projekti on jo esillä koulussa, minulla ei ole sitä kätevää, kun kirjoitan tämän. Laitoin alla olevan korkean tason Fritzing-leirilevyn kaavion selventääkseen osan asettelusta. Korvattiin Pi Cobbler, joka on todella yhtenäinen Pi Perma-Proto-lauta (mutta ei ole vielä Fritzing-kirjastossa). Se ei sisällä kaikkia painikkeiden modulaarisia kytkentäjohtoja. Kaksi ylemmän vasemmanpuoleista PCB-ruuviliitintä ovat Pi-kanavan äänikanavia varten. Kaksi muuta yläosassa on ulkoiselle 5 voltin säätimelle. Vasemmassa alareunassa olevat kaksi ovat LED-nauhaa (vaikka käytimme 5V: tä GND-viivan vieressä, siis ruuviliittymäsovelluksemme). Seuraava pääte on, jossa 5 "D" -solupaketti muodostaa yhteyden. Seuraavat 3 johtoa ovat silloin, kun ulkoinen virta kytketään - kun mitään ei ole kytketty, vihreä johto on kytketty maahan ja mahdollistaa 7,5 voltin akun. Kaksi viimeistä johtoa ovat missä vahvistimen teho kytketään. Kaaviossa ei myöskään näytetä moduulin keskeltä tulleita Pololu # 750 -kaapelikaapeleita (joissa kytkin voi normaalisti olla asennettu). SPDT-releen nastapiste on sellainen, että kun 5 voltin pääteho tulee esiin, releetäisyydet ja 4,5 V: n syöttö on kytketty vahvistimen tehoon. Vahvistin on noussut kartongista pari naarasotsikkoa, jotta se voidaan helposti poistaa. RF-vastaanottimen moduulin telakointiasemat ovat tasonmuuntimen yläpuolella. Moduulin viimeistä tapkaa ei käytetä ja taivutetaan niin, ettei se kosketa levyä.

No, joka tekee yhden pisimmistä kirjoituksista. Toivon, että olen antanut tarpeeksi yksityiskohtia niille, jotka saattavat haluta käsitellä jotain vastaavaa. Työskentely tyttäremme kanssa monimutkaisessa projektissa, kuten tämä, oli melko hämmästyttävä kokemus - ihmettelen silti monipuolista työtä, jota hän teki katsomassa otettuja videoita, mutta se on todella mahdollista, jos työ on levinnyt usean viikon ajan .

Alkuperäinen viesti SWB Labsissa


Scott Bennett on teknologiajohtaja ja ohjelmistokehittäjä päivällä ja innokas valmistaja yöllä. Sähkötekniikan tutkinnoissa hänen valmistajaprojektinsa innoittivat uudelleen elektroniikan rakkautta. Kotia ympäröivä valmistajaympäristö on innoittanut myös tyttärensä, kun he odottavat innokkaampia yhteishankkeita. Scott asuu perheensä kanssa Pohjois-Virginia. Löydät bloginsa osoitteesta swblabs.com.

Anna projektisi Raspberry Pi Design -kilpailussa

  • Yli 3500 dollaria palkinnoista MCM Electronicsilta
  • Best In Show voittaa Printrbot Jr.
  • Neljä kategoriaa: taiteellinen, hyödyllisyys, koulutus ja kotelot
  • Huhtikuun 11. päivään 2013 mennessä tehtävät ilmoitukset
Anna tänään!

Osake

Jättänyt Kommenttia