Arduino XMAS Hitcounter: 6 vaihetta (kuvilla)
Arduino XMAS Hitcounter: 6 vaihetta (kuvilla)
Anonim
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter

Joulu lähestyy, joten tässä on minun panokseni saada sinut oikeaan tunnelmaan. Se on blogin osuma, joka soi kelloa. Kirjaimellisesti. Se saa hymyn huulillesi joka kerta, kun joku tulee blogiisi.

Se koostuu Arduino -kortista, kellosta, servosta ja pari koodiriviä c: ssä, pythonissa ja php: ssä. Useimmat osat ovat melko yleisiä ja niiden pitäisi olla helposti saatavissa.

Vaihe 1: Työkalut ja materiaalit

Työkalut ja materiaalit
Työkalut ja materiaalit

Mitä siis tarvitaan?

  • Arduino Board. Sain Arduino Diecimilan Adafruitsilta. Sillä välin siellä on todella halpoja ja käteviä klooneja, esim. todella paljaita luulevyjä Modern Devicesilta, varsinkin jos haluat käyttää niitä leipälaudalla.
  • Servomoottori. Mikä tahansa servo onnistuu. Otin vanhan, jota käytin entisessä harrastuksessani.
  • Kello. Mieluiten sellainen, joka on tarpeeksi pieni ravistamaan sitä servolla.
  • Kaksi paperiliitintä. Suuri pitää kelloa ja pieni rakentaa toimilaitteen soittamaan kelloa.
  • Johdot, jotka yhdistävät servon Arduinoon.
  • Nettisivu. Itse asiassa sen ei tarvitse olla verkkosivusto tai blogi. Itse asiassa kaikki mitä voidaan laskea, toimii.
  • PC tai Mac yhdistääksesi Arduino -levyn blogiin tai verkkosivustoon.

Saatat tarvita juotosraudan, jos johtoja ei voida kytkeä suoraan Arduinoon.

Vaihe 2: Laitteiston kokoaminen

Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano
Laitteiston kokoonpano

Kelloa pitää vahva paperiliitin. Pientä paperiliitintä käytetään muodostamaan eräänlainen varsi, joka on kiinnitetty servomoottoriin.

Huomaa, että haluat taivuttaa kelloa pitävän paperiliittimen tavalla, joka jo pienellä ravistuksella synnyttää rähinän.

Vaihe 3: Kaaviot

Kaaviot
Kaaviot

Varsinaista kaaviota ei ole. Liitä vain servomoottori Arduinoon. Servossa on kolme johtoa:

  • keltainen tai oranssi: signaali
  • punainen: VCC
  • ruskea: GND

Punainen ja ruskea on kiinnitetty Arduinon vastaaviin nastoihin (5V ja GND). Oranssi on kytketty nastaan 2. Se ilmoittaa servolle, mihin suuntaan kääntyä. Saatat haluta juottaa pieniä liittimiä johtoihin, jos johdot eivät sovi suoraan Arduinoon tai servoon.

Vaihe 4: Arduinon ohjelmointi

Arduinon ohjelmointi
Arduinon ohjelmointi

Arduino Jos olet uusi Arduinossa, se on pieni levy, joka on täysin koottu AVR -mikrokontrollerilla. Se sopii hyvin hakkerointiin ja vuorovaikutukseen ympäristön kanssa. Monet asiat, jotka ovat vaikeita mikrokontrollereilla, ovat melko helppoja Arduinon kanssa. Jotkut eduista:

  • ei tarvitse erillistä ohjelmointilaitetta (ohjelmoijaa)
  • mukana integroitu kehitysympäristö (IDE)
  • toimii millä tahansa alustalla, Windows, Mac, Linux.
  • helppo liittää tietokoneeseen USB: n avulla
  • laitteisto on avoimen lähdekoodin (mutta nimi Arduino ei ole)
  • on hieno yhteisö

Lisätietoja löytyy Arduinon virallisilta verkkosivuilta. Muista tarkistaa John's Arduino instructable saadaksesi lisätietoja siitä, miten voit aloittaa Arduinon käytön. Pieni ohjelmisto, joka ladataan Arduinolle, ohjaa servoa. Se vastaanottaa yksittäisiä tavuja sarjaliitännän kautta USB -kaapelin kautta. Jos se saa arvon 5, se liikuttaa servovartta viisi kertaa eteen- ja taaksepäin. Joten lähetettävä enimmäisarvo on 255. Ohjelmoi Ardiuno Joten oletan, että olet ladannut ja asentanut uusimman Arduino IDE: n Arduino.cc: sta. Tällä hetkellä se on versio 0010 Alpha. Jos haluat ajaa servoa mukavammin, sinun on ladattava kirjasto. Löydät sen Arduinon leikkikentältä. Pura se ja aseta kansio…/arduino-0010/hardware/libraries/.

  • Liitä Arduino tietokoneeseen USB -kaapelilla.
  • Avaa IDE ja aloita uusi luonnos. Sketch on Arduino puhu ohjelman puolesta. Valitse Tiedosto -> Uusi.
  • Valitse sopiva sarjalaite (Työkalut -> Sarjaportti). Tämä riippuu ympäristöstäsi, minulle se on /dev/tty.usbserial-A4001JAh.
  • Lataa liitteenä oleva lähdetiedosto ja liitä se uuteen luonnokseen. Paina tallennuspainiketta.
  • Paina vahvistuspainiketta. Tämä kokoaa luonnoksesi heksatiedostoksi, joka voidaan siirtää Arduinoosi.
  • Siirrä luonnos Arduinolle napsauttamalla latauspainiketta.

Testaus Nyt osumalaskuri on valmis toimimaan. Katsotaan toimiiko.

  • Paina sarjamonitorinäppäintä.
  • Valitse lähetyspainikkeen vieressä oleva tekstiruutu.
  • Paina sarkainnäppäintä ja lähetä se.
  • Tähän mennessä servovarren pitäisi liikkua eteen ja taakse.

Huh huh. Se oli vaikein osa. Tällä hetkellä voit lähettää tavun Arduinolle ja servoaallot sinulle. Seuraavaksi on löydettävä jotain, jonka haluat laukaista kelloa. Olemme melkein valmiita.

Vaihe 5: Tee siitä Hitcounter

Tarvitsemme kaksi pientä koodikappaletta tehdäksemme siitä sivustosi osumalaskurin. Toinen luo ja huolehtii laskurista ja toinen noutaa laskurin arvon ja lähettää sen Arduinolle.

Huomautus: Jos et tunne Pythonia tai PHP: tä, komentosarjat voidaan helposti siirtää suosikkiohjelmointikielellesi. Laskuri Tässä on pieni PHP -komentosarja, joka lukee arvon tiedostosta (hitcounter.txt), lisää sitä ja kirjoittaa se takaisin tiedostoon. Siinä kaikki, sitä tarvitaan. Tämä tiedosto voidaan tallentaa esimerkiksi palvelimelle counter.php. Voit sitten käynnistää laskennan kanssasi verkkoselaimella, joka osoittaa osoitteeseen https://www.youdomain.com/counter.php. Lisäsin tämän katkelman WordPress -blogiini. $ osumat = tiedosto ($ count_my_page); $ osuma = leikkaus ($ osumaa [0]); $ osuma ++; $ fp = fopen ($ count_my_page, "w"); fputs ($ fp, "$ osuma"); fclose ($ fp); echo $ osuma; ?> Liimakoodi Tätä seuraavaa koodinpätkää käytetään laskurin noutamiseen. Käytin Pythonia, mutta kaiken pitäisi toimia. Se avaa HTTP -yhteyden ja hakee hitcounter.txt -tiedoston. Jos arvo on muuttunut viimeisen haun jälkeen, ero lasketaan ja työnnetään Arduinolle. Tämä tehdään joka kymmenes sekunti, kunnes keskeytät komentosarjan crtl-c: llä. Mukauta alla oleva myUrl ja sarjayhteys tarpeidesi mukaan. # # noudalaskuri # tuonti aika tuonti urllib tuonti sarja # usb-sarjayhteys arduinoon ser = serial. Serial ('/dev/tty.usbserial-A4001JAh', 9600) myUrl = 'https://tinkerlog.com/hitcounter.txt 'last_counter = urllib.urlopen (myUrl).read () while (True): _ counter = urllib.urlopen (myUrl).read () _ delta = int (counter) - int (last_counter) _ print "counter: %s, delta: % s " % (laskuri, delta) _ ser.write (chr (ord (chr (delta))))) _ last_counter = laskuri _ time.sleep (10) En voinut ladata tiedostoja, joilla on php -laajennus, joten täytyy nimetä counterphp.txt uudelleen muotoon counter.php. Jos Arduino on edelleen liitettynä tietokoneeseesi, käynnistä Python -komentosarja ja hae osumalaskuri…> python counter.py ja sinun pitäisi nähdä laskurin ulostulo. Jos osoitat selaimesi counter.php: n URL -osoitteeseen ja napsautat uudelleenlatausta, kuulet osumalaskurin soivan. Kyllä, nyt olemme valmiita. On aika nojata taaksepäin ja nauttia työstämme.

Vaihe 6: Johtopäätös

Johtopäätös
Johtopäätös

Tämä on ensimmäinen kerta, kun rakennan jotain, jossa on liikkuvia osia. Tämä on ensimmäinen askel virtuaalisen ja todellisen maailman välisen kuilun kuromiseen. Ja se oli todella helppoa, koodi on suoraan eteenpäin. Myös suurin osa osista oli roskakorissani, kelloa lukuun ottamatta. Oli hauskaa koota kaikki yhteen ja odottaa, että joku tulee blogiini.

Toivottavasti nautit siitä.