Innehållsförteckning:

Arduino XMAS Hitcounter: 6 steg (med bilder)
Arduino XMAS Hitcounter: 6 steg (med bilder)

Video: Arduino XMAS Hitcounter: 6 steg (med bilder)

Video: Arduino XMAS Hitcounter: 6 steg (med bilder)
Video: Arduino XMAS Bell Ringing Hit Counter 2024, November
Anonim
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter

Julen närmar sig, så här är mitt bidrag för att få dig på rätt humör. Det är en blogghitcounter som ringer en klocka. Bokstavligen. Det lägger ett leende på läpparna varje gång någon träffar din blogg.

Den består av ett Arduino -kort, en klocka, en servo och ett par rader kod i c, python och php. De flesta delar är ganska vanliga och bör vara lätta att få tag på.

Steg 1: Verktyg och material

Verktyg och material
Verktyg och material

Så vad behövs?

  • Arduino Board. Jag fick en Arduino Diecimila från Adafruits. Under tiden finns det riktigt billiga och praktiska kloner där ute, t.ex. den riktigt nakna skivan från Modern Devices, speciellt om du vill använda dem på en brödbräda.
  • En servomotor. Vilken servo som helst. Jag tog en gammal som användes i min tidigare hobby.
  • En klocka. Helst en som är tillräckligt liten för att skaka den med servon.
  • Två gem. En stor för att hålla klockan och en liten för att bygga ställdonet för att ringa klockan.
  • Ledningar för att ansluta servon med Arduino.
  • En hemsida. Det behöver faktiskt inte vara en webbplats eller en blogg. Egentligen kommer allt som kan räknas att fungera.
  • En dator eller en Mac för att ansluta Arduino -kortet med bloggen eller webbplatsen.

Du kan behöva ett lödkolv om ledningarna inte kan anslutas direkt till Arduino.

Steg 2: Hårdvarumontage

Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering

Klockan hålls av ett starkt gem. Det lilla gemet används för att bilda ett slags arm som sitter fast på servomotorn.

Observera att du vill böja gemet som håller klockan på ett sätt som redan ger en liten skakning en ding.

Steg 3: Scheman

Scheman
Scheman

Det finns ingen riktig schematisk. Anslut bara servomotorn till Arduino. Servon har tre ledningar:

  • gul eller orange: signal
  • röd: VCC
  • brun: GND

Den röda och den bruna är fästa vid motsvarande stift på Arduino (5V och GND). Den orange är ansluten till stift 2. Den kommer att signalera servon i vilken riktning den ska vända. Du kanske vill lödda små kontakter till trådarna om ledningarna inte passar direkt i Arduino eller servon.

Steg 4: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino

Arduino Om du är ny på Arduino är det en liten bräda, helt monterad med en AVR -mikrokontroller. Den är väl lämpad för hackning och interaktion med din miljö. Många saker som är svåra med mikrokontroller är ganska enkla med Arduino. Några av fördelarna:

  • inget behov av en separat programmeringsenhet (programmerare)
  • levereras med en integrerad utvecklingsmiljö (IDE)
  • körs på alla plattformar, Windows, Mac, Linux.
  • enkel anslutning till din PC med USB
  • hårdvaran är öppen källkod (men namnet Arduino är inte)
  • har en stor gemenskap

Mer information finns på den officiella Arduino -webbplatsen. Var noga med att kolla in John's Arduino instruerbar för mer information om hur du kommer igång med Arduino. Vad gör programvaran? Den lilla programvaran som laddas upp till Arduino, styr servon. Den tar emot enstaka byte via den seriella anslutningen via USB -kabeln. Om den får värdet 5 flyttar den servoarmen fem gånger fram och tillbaka. Så maxvärdet att skicka är 255. Programmera Ardiuno Så jag antar att du har laddat ner och installerat den senaste Arduino IDE från Arduino.cc. För tillfället är det version 0010 Alpha. För att köra servon mer bekvämt måste du ladda ner ett bibliotek. Du hittar den på Arduino Playground. Packa upp den och lägg in mappen i …/arduino-0010/hardware/libraries/.

  • Anslut Arduino till din dator med USB -kabeln.
  • Öppna IDE och börja en ny skiss. Sketch är Arduino speak for program. Välj Arkiv -> Ny.
  • Välj lämplig seriell enhet (Verktyg -> Seriell port). Detta beror på din miljö, för mig är det /dev/tty.usbserial-A4001JAh.
  • Ladda ner den bifogade källfilen och klistra in den i den nya skissen. Tryck på knappen Spara.
  • Tryck på verifieringsknappen. Detta sammanställer din skiss till en hex -fil som kan överföras till din Arduino.
  • Tryck på uppladdningsknappen för att överföra din skiss till Arduino.

Testar Nu är din hitcounter redo för lite action. Låt oss se om det fungerar.

  • Tryck på knappen för seriell bildskärm.
  • Markera textrutan bredvid skicka -knappen.
  • Tryck på tab -knappen och skicka den.
  • Vid det här laget ska servoarmen gå framåt och bakåt.

Puh. Det var den svåraste delen. För tillfället kan du skicka en byte till Arduino och servo vågar på dig. Nästa är att hitta något som du vill utlösa klockan. Vi är nästan klara.

Steg 5: Gör det till en hitcounter

För att göra det till en hitcounter för din webbplats behöver vi två små kodbitar. En två skapar och tar hand om disken och en andra för att hämta värdet på räknaren och skicka den till Arduino.

Obs: Om du inte är känd för Python eller PHP kan skripten enkelt överföras till ditt favorit programmeringsspråk. Räknaren Här är ett litet PHP -skript som läser ett värde från en fil (hitcounter.txt), ökar det och skriver tillbaka till filen. Det är allt, det behövs. Den här filen kan till exempel sparas som counter.php på din server. Du kan sedan utlösa en räkning med din webbläsare som pekar på https://www.youdomain.com/counter.php. Jag inkluderade detta avsnitt i min wordpress -blogg. $ träffar = fil ($ count_my_page); $ hit = trim ($ träffar [0]); $ hit ++; $ fp = fopen ($ count_my_page, "w"); fputs ($ fp, "$ hit"); fclose ($ fp); echo $ hit; ?> Limkoden Nästa kodavsnitt används för att hämta räknaren. Jag använde Python men allt borde fungera. Den öppnar en HTTP -anslutning och hämtar hitcounter.txt. Om värdet har ändrats sedan den senaste hämtningen beräknas differensen och skjuts till Arduino. Detta görs var tionde sekund tills du avbryter skriptet med crtl-c. Anpassa myUrl och den seriella anslutningen nedan efter dina behov. # # hämträknare # importtid import urllib import seriell # usb seriell anslutning till arduino ser = serial. Serial ('/dev/tty.usbserial-A4001JAh', 9600) myUrl = 'https://tinkerlog.com/hitcounter.txt 'last_counter = urllib.urlopen (myUrl).read () medan (True): _ counter = urllib.urlopen (myUrl).read () _ delta = int (counter) - int (last_counter) _ print' counter: %s, delta: % s " % (counter, delta) _ ser.write (chr (ord (chr (delta)))) _ last_counter = counter _ time.sleep (10) Jag kunde inte ladda upp filer med php -tillägg, så du måste byta namn på counterphp.txt till counter.php. Om din Arduino fortfarande är ansluten till din dator, starta sedan Python -skriptet för att hämta din hitcounter…> python counter.py och du bör se utgången från räknaren. Om du pekar din webbläsare till URL: en för din counter.php och trycker på reload bör du höra din hitcounter ringa. Ja, nu är vi klara. Dags att luta sig tillbaka och njuta av vårt arbete.

Steg 6: Slutsats

Slutsats
Slutsats

Det är första gången som jag byggde något som har rörliga delar. Det är det första steget för att överbrygga klyftan mellan den virtuella och den verkliga världen. Och det var riktigt enkelt, koden är rakt fram. De flesta delarna fanns också i min papperskorg, förutom klockan. Att få ihop allt och vänta på att någon ska träffa min blogg var kul.

Hoppas du gillade det.

Rekommenderad: