Jeffrey Cross
Jeffrey Cross

See on e-posti aeg - tee "e-posti kella" .... mida rohkem sa saad rohkem kella puugid!

See on e-posti aeg - süütu välimusega kella jälgib lugemata sõnumit pileup teie postkastis - Tom Igoe.

Mul on e-posti kohta palju muret. Iga postkasti kilobaid hävitab teise minuti minu elust, kuid ma ei saa seda enam kontrollida. Nii et ma otsustasin kehastada oma ärevust seadmes, mis peaks muretsema minu sissetuleva posti eest. Olen alati meeldinud kella mehhanismidele, nii et tegin oma e-posti fetišobjekti kella kujul. Iga uue postkasti kohta, mille ma saan, kella kostab hoolimatult edasi.

Siin on põhiline disain, mille ma välja tulin. Kella ise juhib mikrokontroller, mis ühendab Internetti ja küsib programmi, mis kontrollib minu e-posti kontosid. Programm annab teada kilobaitide arvu ja mikrokontroller liigutab kella iga kilobaidi kohta kasti. Lihtne!

Selle ehitamiseks peate teadma, kuidas programmeerida mikrokontrollerit ja kuidas teha põhilisi veebiprogramme. Mikrokontrolleri programmeerimise kohta vt Primer artiklit MAKE, köide 04 (lk 158)või minu raamat Füüsiline arvutus: füüsilise maailma tundmine ja kontrollimine arvutitega. Veebikomponendi jaoks kasutasin Perlis kirjutatud ühist lüüsi liidese (CGI) skripti, kuid võite kirjutada ka CGI skripte PHP, Python, Ruby ja muudes keeltes.

  1. Solenoidkontaktidele joodetud juhtmed. Pange tähele, et kristall on alumisel küljel ja “mystery chip” all keskel olev joon (joonis 1).
  2. Odavad akukellad töötavad üldiselt samal viisil (joonis 2).
  3. Kella tagantvaade, mis näitab Etherneti, voolu ja USB-B-pordi korpuses puuritud auke Arduino mikrokontrolli plaadi programmeerimiseks (joonis 3).
  4. Kella eesvaade, nägu eemaldatud (joonis 4).

MATERJALID

Järgnevalt valisin oma e-posti kella põhielementide jaoks.

Mikrokontroller Ma kasutasin Arduino moodulit (arduino.berlios.de), väikest I / O-plaati ja arenduskeskkonda, mis on ehitatud Atmeli ATMega8 mikrokontrolleri ümber. Arduino tugineb juhtmestikule, teisele avatud ja lihtsale arenduskeskkonnale, mis kasutab kiipi ATMega128. Ma valisin Arduino, sest ma teadsin, et tahan lõpuks teha omaenda kohandatud trükkplaadi ja ATMega8 on lihtsam jootmiseks kui ATMega128.

Serial-to-Ethernet Converter Selle asemel, et kirjutada oma TCP / IP-stacki Arduino plaadile, kasutasin mõnda käepärast riistvara: Lantronixi XPort-seeria-Etherneti moodulit. Need moodulid võivad marsruutida andmeid Etherneti ja jadapordi vahel, mis toidab mikrokontrollerit. Jootmise vältimiseks soovitan ka Cobox Micro'i, millel on sama programmeerimisliides nagu XPort (sa lihtsalt telnet), kuid lihtsam füüsiline liides.

Kell, mida oleksin armastanud mehaanilise kella ehitamiseks, kuid mul polnud aega, võtsin ma välja odava aku kella ja ühendasin selle ajamikraadi kella-laadse antiikse katse mõõturiga.

Süsteemi skeem. CGI-skript küsib minu e-posti kontosid ja tagastab uue posti mahu. Mikrokontroller kutsub skripti ja liigutab kella käed vastavalt edasi.

Ehitamine

Hakkasin otsima lihtsamat viisi kella juhtimiseks. Ma võtsin kella ettevaatlikult lahti ja uurisin vooluahelat sees. Keskel oli müstiline kiip, suletud plastikuga, kuid leidsin, et kella peamist käiku, mis juhib kõiki teisi käiku, juhib solenoid. Kaks solenoidterminali olid üsna kergesti märgatavad ja ma arvasin, et kõik, mida ma pean tegema, oli nende ühenduste kaudu impulsi saatmine, kell kella õnneks eemal.

Solenoidkontaktidele joodisin paar piiki ja panin kella kokku. Siis ma impulssin solenoidi otse 5VDC võimsusega, mööda müsteeri kiipi. Mootor hüppas, kuid kella ei teinud. Ilmselgelt oli rohkem õppida, nii et panin kella patarei tagasi ja ühendasin juhtmed ostsilloskoopi, et näha, kuidas pinge selle märguandega muutus. Muster oli keerulisem kui ma ootasin. Igal sekundil oleks pulss vaheldumisi: kõrge null-null ühe sekundi ja madala nulliga järgmine.

Ma programmeerisin mikrokontrolleri selle mustriga dubleerimiseks ja andsin selle väljundi kella. See võttis mõningaid eksperimente, kuid lõpuks sain mikrokontrolleri kella kontrollimiseks päris hästi. Iga selle poolt tehtud märk liigutas kella umbes kaks sekundit edasi. Kuna ma ei tegelenud tegeliku aja hoidmisega, oli see korras.

Järgmine samm oli saada mikrokontroller posti kontrollimiseks. XPort vajab ainult kolme juhtmestikku, mis olid ühendatud mikrokontrolleri küljest: seeriaviisiline, seeriaülekanne ja lähtestusühendus, et võimaldada mikroprotsessoril sadamat uuesti käivitada. Pistikuplaadi valmistamine XPortile oli väljakutse, sest selle tihvtid ei järgi a 1/ 10 "ruudustik, hobbyist perfboard standard. Niisiis kasutasin CadSoft'i Eagle tarkvara, et kujundada moodulit paigaldama kohandatud plaat. Saate paigutuse faili leida aadressilt tigoe.net/emailclock.

Seejärel konfigureerisin oma sülearvutist XPort USB-seeria muunduri kaabli kaudu. Lantronixi juhiseid järgides andsin talle IP-aadressi, lüüsi aadressi ja alamvõrgu maski. Konfigureerisin ka jadapordi seaded.

Ma avasin terminali akna, mis sisestas XPorti sisse ja sisestas „Hello World!”, Et kinnitada, et sõnumid läbivad. Seejärel lõpetan telneti ja proovisin oma veebiserveriga ühenduse loomist, sisestades seerianumbri numbrilise aadressi (port 80):

C82.165.199.37 / 80.

XPort kinnitati tagastades „C”. Vastasin oma serveris veebilehe HTTP-päringuga, http://tigoe.net/pcomp/index.shtml:

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

Server tagastas soovitud lehe HTTP päise ja sisu:

HTTP / 1.1 200 OK Kuupäev: teisel, 13. detsembril 2005 20:50: 27 GMT server: Apache / 1.3.33 (Unix) Transfer-kodeering: chunked Sisu-tüüp: text / html ... ja nii edasi.

Edu! Vaadates seda HTTP (Hyper Text Transport Protocol) vahetust, veebibrauserite ja serverite tavapäraselt peidetud keelt, tähendas see, et olin XPorti brauserina jõudnud. Nüüd ma pidin just tegema mikrokontrolleri samaks: avada võrguühendus, nõuda lehekülge ja lugeda tulemusi. Leiad minu koodi, et seda teha aadressil tigoe.net/emailclock. Ma laadisin kompileeritud püsivara oma sülearvuti kaudu Arduino sülearvuti-USB-konverteri kaudu.

Mikrokontroller ei taotle HTML-lehekülge - see kutsub kokku ühise lüüsi liidese (CGI) skripti, mis on saadaval ka ülaloleval lingil, mis kontrollib kõiki minu e-posti kontosid, uute sõnumite mahu päringuid, lisab numbrid üles ja saadab kogu summa tagasi, kes küsib. Kuna seda skripti ei oodata brauserilt helistamist, ei vorminda see tulemusi kui HTML-i. Mikrokontrolleri poolel vajaliku programmeerimise minimeerimiseks hoiab see asju lihtsana, tagastades vaid HTTP päise ja ühe rea rea:

.

Kui kogu süsteem toimis, leidsin kella korpusele: kena, antiikne elektroonilise katseseadme tükk, mille kellaaegse näo taga on auk, mis mahutab veovõlli. Kella võlli keeratakse kergesti sisse ning Arduino moodul ja XPort sobivad hästi sisse. Ma puurisin paari auku, mis on ette nähtud voolu ja Etherneti kaablite jaoks, ja kella tegemine.

Kui hästi see toimib? Ma kontrollin endiselt oma e-posti, kuid paari tunni jooksul selle kella ehitamiseks ei avanud ma oma postiprogrammi üldse!


Tom Igoe juhib New Yorgi ülikooli interaktiivse telekommunikatsiooniprogrammi füüsilist arvutit.

Viited:

http://arduino.berlios.de

http://tigoe.net/emailclock

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

MAKE 6 - lk 117. MAKE saamiseks tellige või ostke üksikuid mahtusid.

Osa

Jätnud Kommentaari