Jeffrey Cross
Jeffrey Cross

Se on sähköpostin aika - Tee "sähköpostikello" .... mitä enemmän saat saat enemmän kelloa!

IT EMAIL TIME - Innocent-näköinen ”kello” valvoo postilaatikkosi lukemattomia viestejä pileupissa - Tom Igoe.

Minulla on paljon ahdistusta sähköpostista. Jokainen postilaatikon kilobyte tuhoaa toisen minuutin minut elämästäni, mutta en voi lopettaa sen tarkistamista. Joten päätin ilmentää ahdistusta laitteessa, joka olisi huolissani saapuvasta postista minulle. Olen aina pitänyt kellon mekanismeja, joten tein fetissiobjektin sähköpostitse kellon muodossa. Kullekin vastaanotetulle uudelle mailille kilotavua kohti kello välittyy jatkuvasti.

Tässä on perusrakenne, jonka sain. Kelloa itse ohjaa mikrokontrolleri, joka muodostaa yhteyden Internetiin ja kysyy ohjelmasta, joka tarkistaa sähköpostitilejäni. Ohjelma raportoi kilobittien määrän ja mikrokontrolleri siirtää kellon eteenpäin jokaiselle kilotavulle. Yksinkertainen!

Voit rakentaa tämän itse, joten sinun on tiedettävä, miten ohjelmoida mikrokontrolleri ja miten tehdä joitakin perusohjelmia. Katso mikrokontrollerin ohjelmointi kohdasta Primer artikkeli MAKE, Volume 04 (sivu 158)tai minun kirjani Fyysinen tietojenkäsittely: Fyysisen maailman tunnistaminen ja hallinta tietokoneilla. Web-komponentille käytin Perlissä kirjoitettua yhteistä yhdyskäytäväliitäntää (CGI), mutta voit myös kirjoittaa CGI-komentosarjoja PHP: ssä, Pythonissa, Rubyssä ja muissa kielissä.

  1. Solenoidiliittimiin juotetut johdot. Huomaa, että kristalli on alareunassa ja ”mysteerisiru” keskellä (kuva 1).
  2. Halvat akkukellot toimivat yleensä samalla tavalla (kuva 2).
  3. Taustanäkymä kellosta, jossa näkyy reiät, jotka on porattu koteloon Ethernet-, teho- ja USB-B-porttiin Arduino-mikrokontrollilevyn ohjelmointiin (kuva 3).
  4. Kellon etunäkymä, kasvot poistettu (kuva 4).

MATERIAALIT

Tässä olen valinnut sähköpostikelloni perusrakenteet.

Mikrokontrolleri Käytin Arduino-moduulia (arduino.berlios.de), pientä I / O-korttia ja kehitysympäristöä, joka on rakennettu Atmelin ATMega8-mikrokontrollerin ympärille. Arduino perustuu Wiringiin, joka on toinen avoin ja helppo kehitysympäristö, joka käyttää ATMega128-sirua. Valitsin Arduinon, koska tiesin, että halusin lopulta tehdä oman mukautetun piirilevyn, ja ATMega8 on helpompi juottaa kuin ATMega128.

Sarja-Ethernet-muunnin Sen sijaan, että kirjoitin oman TCP / IP-pinoani Arduino-kortille, käytin joitakin käteviä laitteita: Lantronixin XPort-sarja-Ethernet-moduulia. Nämä moduulit voivat reitittää tietoja Ethernet-yhteyden ja sarjaportin välillä, joka syöttää mikrokontrolleria. Jotta voisimme välttää juottamisen, suosittelen myös Cobox Micro -ohjelmaa, jolla on sama ohjelmointirajapinta kuin XPortilla (yksinkertaisesti telnet in), mutta yksinkertaisempi fyysinen käyttöliittymä.

Kello, jonka olisin rakastanut rakentaa mekaanisen kellon, mutta minulla ei ollut aikaa, joten otin suolet halvalla akun kellolta ja yhdistin sen akselin kellon kaltaisen antiikkisen testimittarin napaan.

Järjestelmäkaavio. CGI-skripti kysyy sähköpostitilejäni ja palauttaa uuden postin määrän. Mikrokontrolleri kutsuu komentosarjan ja siirtää kellon kädet eteenpäin.

Rakentaminen

Aloitin etsimällä yksinkertaisin tapa ajaa kelloa. Otin varovasti kellon toisistaan ​​ja tutkin piirilevyn sisällä. Keskellä oli mysteerisiru, joka oli sinetöity muoviin, mutta huomasin, että kellon pääasiallinen vaihde, joka ajaa kaikki muut vaihteet, ohjataan solenoidilla. Kaksi solenoiditerminaalia oli melko helppo havaita, ja tajusin, että kaikki mitä minun tarvitsee tehdä, oli lähettää pulssi näiden yhteyksien kautta, ja kello olisi onnellinen.

Juotin pari johdinta solenoidikontakteihin ja laitoin kellon takaisin yhteen. Sitten pulssin solenoidia suoraan 5 VDC: n teholla ohittaen mysteerisirun. Moottori hyppäsi, mutta kello ei löytänyt. On selvää, että oli enemmän opittavaa, joten laitoin kellon akun takaisin ja yhdistin johdot oskilloskooppiin nähdäkseen, miten jännite muuttui, kun se merkitsi. Kuvio oli monimutkaisempi kuin odotin. Joka toinen sekunti pulssi vuorotellen: korkea-matala-nolla yksi sekunti ja matala-korkea-nolla seuraavaksi.

Ohjelmoitin mikrokontrollerin toistamaan tämän kuvion ja syötin sen lähdön kelloon. Tämä vei jonkin verran kokeiluja, mutta lopulta sain mikrokontrollerin ohjaamaan kelloa melko hyvin. Kukin merkki, jonka se on luonut, siirtää kelloa eteenpäin noin kaksi sekuntia. Koska en ollut huolissaan todellisen ajan pitämisestä, tämä oli hieno.

Seuraava vaihe oli saada mikrokontrolleri tarkistamaan postia. XPort tarvitsi vain kolme johtoa, jotka oli kytketty mikrokontrollerin puolelta: sarja-, sarja- ja nollausyhteys, jotta mikroprosessori voi käynnistää portin uudelleen. Piirilevyn tekeminen XPortille oli haaste, koska sen nastat eivät seuraa a 1/ 10 "ruudukko, harrastajan täydennysstandardi. Käytin CadSoftin Eagle-ohjelmistoa suunnitellaksesi mukautetun kartongin, jonka avulla voit asentaa moduulin. Asettelutiedosto löytyy osoitteesta tigoe.net/emailclock.

Sitten määritin XPortin kannettavastani USB-sarja-muuntimen kaapelin kautta. Lantronixin ohjeiden mukaan annoin sille IP-osoitteen, yhdyskäytävän osoitteen ja aliverkon peitteen. Olen myös määrittänyt sarjaportin asetukset.

Avasin terminaalin ikkunan, joka oli teletettynä XPortiin, ja kirjoitin ”Hello World!” Vahvistamaan, että viestit kulkevat läpi. Sitten lopetan telnetin ja yritin muodostaa yhteyden Web-palvelimeen kirjoittamalla sen numeerisen osoitteen (portti 80) sarjaikkunaan:

C82.165.199.37 / 80.

XPort vahvisti palauttamalla "C". Vastasin palvelimessani WWW-sivun HTTP-pyyntöön http://tigoe.net/pcomp/index.shtml:

GET /pcomp/index.shtml HTTP / 1.1 HOST: tigoe.net

Palvelin palautti pyydetyn sivun HTTP-otsikon ja sisällön:

HTTP / 1.1 200 OK Päivämäärä: ti, 13.12.2005 20:50: 27 GMT-palvelin: Apache / 1.3.33 (Unix) Siirto-koodaus: chunked Content-Type: text / html ... ja niin edelleen.

Menestys! Kun näette HTTP: n (Hyper Text Transport Protocol) vaihdon, joka on tavallisesti piilotettu kieli selaimissa ja palvelimissa, tarkoitin, että olin saanut XPortin toimimaan selaimena. Nyt minun piti vain saada mikrokontrolleri tekemään samoin: avaa verkkoyhteys, pyydä sivua ja lukemaan tulokset. Koodini löytyy tigoe.net/emailclockista. Latasin käännetyn laiteohjelmiston kannettavalta tietokoneeltani Arduinon sarja-USB-muuntimella.

Mikro-ohjain ei pyydä HTML-sivua - se kutsuu yhteistä yhdyskäytäväliittymää (CGI), joka on saatavilla myös yllä olevasta linkistä ja joka tarkistaa kaikki sähköpostitilit, kyselyt uusien viestien määrästä, lisää numerot ja lähettää kokonaisuuden takaisin kenelle tahansa. Koska tätä skriptiä ei odoteta soittavan selaimelta, se ei muodosta tuloksia HTML-muodossa. Mikrokontrollerin puolella tarvittavan ohjelmoinnin minimoimiseksi se pitää asiat yksinkertaisina, palauttamalla vain HTTP-otsikon ja yhden tekstirivin:

.

Kun koko järjestelmä toimi, löysin kellon kotelon: mukava, antiikkinen elektroninen testilaitteisto, jossa on kellon takana oleva reikä, johon mahtui käyttöakseli. Kellon akseli ruuvattiin helposti, ja Arduino-moduuli ja XPort sopivat hyvin sisään. Porasin pari reikää virtaan ja Ethernet-kaapeleihin, ja kello tehtiin.

Kuinka hyvin se toimii? Tarkistan edelleen sähköpostini pakollisesti, mutta parin tunnin ajan tämän kellon rakentamiseksi en avannut sähköpostiohjelmaa ollenkaan!


Tom Igoe johtaa fyysistä laskenta-aluetta New Yorkin yliopiston Interactive Telecommunications -ohjelmassa.

Viitteet:

http://arduino.berlios.de

http://tigoe.net/emailclock

http://tigoe.net/pcomp/index.shtml

MAKE 6 - sivu 117. Jos haluat saada MAKE: n, tilaa tai osta yksittäisiä määriä.

Osake

Jättänyt Kommenttia