Inhoudsopgave:

Arduino XMAS Hitcounter - Ajarnpa
Arduino XMAS Hitcounter - Ajarnpa

Video: Arduino XMAS Hitcounter - Ajarnpa

Video: Arduino XMAS Hitcounter - Ajarnpa
Video: Arduino XMAS hitcounter 2024, November
Anonim
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter

Kerstmis komt dichterbij, dus hier is mijn bijdrage om je in de juiste stemming te brengen. Het is een bloghitcounter, die een belletje doet rinkelen. Letterlijk. Het tovert een glimlach op je gezicht, elke keer dat iemand je blog bezoekt.

Het bestaat uit een Arduino-bord, een bel, een servo en een paar regels code in c, python en php. De meeste onderdelen zijn vrij algemeen en zouden gemakkelijk te verkrijgen moeten zijn.

Stap 1: Gereedschappen en materialen

Gereedschappen en materialen
Gereedschappen en materialen

Dus wat is er nodig?

  • Arduino-bord. Ik heb een Arduino Diecimila van Adafruits. Ondertussen zijn er echt goedkope en handige klonen, b.v. het echt kale boneboard van Modern Devices, vooral als je ze op een breadboard wilt gebruiken.
  • Een servomotor. Elke servo zal het doen. Ik nam een oude die werd gebruikt in mijn vroegere hobby.
  • Een bel. Bij voorkeur een die klein genoeg is om hem met de servo te schudden.
  • Twee paperclips. Een grote om de bel vast te houden en een kleine om de actuator te bouwen om de bel te laten rinkelen.
  • Draden om de servo met de Arduino te verbinden.
  • Een website. Het hoeft eigenlijk geen website of blog te zijn. Eigenlijk alles wat geteld kan worden, zal werken.
  • Een pc of een Mac om het Arduino-bord te verbinden met de blog of website.

Mogelijk hebt u een soldeerbout nodig als de draden niet rechtstreeks op de Arduino kunnen worden aangesloten.

Stap 2: Hardwaremontage

Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage
Hardware-assemblage

De bel wordt vastgehouden door een stevige paperclip. De kleine paperclip wordt gebruikt om een soort arm te vormen die aan de servomotor wordt bevestigd.

Merk op dat je de paperclip die de bel vasthoudt zo wilt buigen dat al een beetje schudden een deuk genereert.

Stap 3: Schema's

Schema's
Schema's

Er is geen echt schema. Bevestig gewoon de servomotor aan de Arduino. De servo heeft drie draden:

  • geel of oranje: signaal
  • rood: VCC
  • bruin: GND

De rode en de bruine zijn bevestigd aan de overeenkomstige pinnen op de Arduino (5V en GND). De oranje is aangesloten op pin 2. Het geeft de servo aan in welke richting hij moet draaien. Misschien wilt u kleine connectoren aan de draden solderen als de draden niet rechtstreeks in de Arduino of de servo passen.

Stap 4: Programmeren van de Arduino

De Arduino programmeren
De Arduino programmeren

Arduino Als de Arduino nieuw voor je is, is het een klein bord, volledig geassembleerd met een AVR-microcontroller. Het is zeer geschikt voor hacking en interactie met uw omgeving. Veel dingen die moeilijk zijn met microcontrollers, zijn vrij eenvoudig met Arduino. Enkele voordelen:

  • geen apart programmeerapparaat (programmer) nodig
  • wordt geleverd met een geïntegreerde ontwikkelomgeving (IDE)
  • draait op elk platform, Windows, Mac, Linux.
  • eenvoudige aansluiting op uw pc via USB
  • hardware is open source (maar de naam Arduino niet)
  • heeft een geweldige gemeenschap

Meer informatie is te vinden op de officiële Arduino-website. Zorg ervoor dat u John's Arduino instructable bekijkt voor meer informatie over hoe u aan de slag kunt met Arduino. Wat doet de software? Het kleine stukje software dat naar de Arduino wordt geüpload, bestuurt de servo. Het ontvangt enkele bytes via de seriële verbinding via de USB-kabel. Als het een waarde van 5 krijgt, beweegt het de servo-arm vijf keer heen en weer. Dus de maximale waarde om te verzenden is 255. Programmeer de Ardiuno Dus ik neem aan dat je de nieuwste Arduino IDE van Arduino.cc hebt gedownload en geïnstalleerd. Voorlopig is het versie 0010 Alpha. Om de servo comfortabeler te besturen, moet je een bibliotheek downloaden. Je vindt het op de Arduino Playground. Pak het uit en plaats de map in …/arduino-0010/hardware/libraries/.

  • Sluit de Arduino aan op uw pc met de USB-kabel.
  • Open de IDE en start een nieuwe schets. Sketch is Arduino spreken voor programma. Selecteer Bestand -> Nieuw.
  • Selecteer het juiste seriële apparaat (Extra -> Seriële poort). Dit hangt af van je omgeving, voor mij is het /dev/tty.usbserial-A4001JAh.
  • Download het bijgevoegde bronbestand en plak het in de nieuwe schets. Druk op de knop Opslaan.
  • Druk op de verificatieknop. Dit compileert je schets in een hex-bestand dat kan worden overgebracht naar je Arduino.
  • Druk op de upload-knop om je schets over te zetten naar de Arduino.

Testen Nu is je hitcounter klaar voor actie. Laten we kijken of het werkt.

  • Druk op de seriële monitorknop.
  • Selecteer het tekstvak naast de verzendknop.
  • Druk op de tab-toets en verzend het.
  • De servo-arm zou nu naar voren en naar achteren moeten bewegen.

Opluchting. Dat was het moeilijkste. Voor nu kun je een byte naar de Arduino sturen en de servogolven naar je toe. Het volgende is om iets te vinden waarvan je de bel wilt activeren. We zijn bijna klaar.

Stap 5: Maak er een hitcounter van

Om er een hitcounter van te maken voor je website, hebben we twee kleine stukjes code nodig. Een twee maakt en verzorgt de teller en een tweede om de waarde van de teller op te halen en naar de Arduino te sturen.

Opmerking: als u niet bekend bent met Python of PHP, kunnen de scripts eenvoudig worden overgezet naar uw favoriete programmeertaal. De teller Hier is een klein PHP-script, dat een waarde uit een bestand leest (hitcounter.txt), het verhoogt en schrijft het terug naar het bestand. Dat is alles, dat is nodig. Dit bestand kan bijvoorbeeld als counter.php op uw server worden opgeslagen. U kunt dan een telling starten met uw webbrowser die naar https://www.youdomain.com/counter.php wijst. Ik heb dit fragment opgenomen in mijn wordpress blog. $hits = bestand($count_my_page); $hit = trim($hits[0]); $hit++; $fp = fopen($count_my_page, "w"); fputs($fp, "$hit"); fclose($fp); echo $hit; ?>De lijmcode Dit volgende codefragment wordt gebruikt om de teller op te halen. Ik heb Python gebruikt, maar alles zou moeten werken. Het opent een HTTP-verbinding en haalt de hitcounter.txt op. Als de waarde is veranderd sinds het laatste ophalen, wordt de diff berekend en naar de Arduino gepusht. Dit wordt elke tien seconden gedaan totdat je het script onderbreekt met crtl-c. Pas de myUrl en de seriële verbinding hieronder aan uw behoeften aan. # # fetch counter # import time import urllib import serial # usb seriële verbinding met arduino 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 "teller: %s, delta: %s" % (teller, delta) _ ser.write(chr(ord(chr(delta)))) _ last_counter = counter _ time.sleep(10) Ik kon geen bestanden uploaden met de php-extensie, dus jij moet counterphp.txt hernoemen naar counter.php. Als je Arduino nog steeds op je pc is aangesloten, start je het Python-script om je hitcounter op te halen…>python counter.py en je zou de output van de teller moeten zien. Als je je browser naar de URL van je counter.php wijst en op herladen drukt, zou je je hitcounter moeten horen rinkelen. Ja, nu zijn we klaar. Tijd om achterover te leunen en te genieten van ons werk.

Stap 6: Conclusie

Conclusie
Conclusie

Het is de eerste keer dat ik iets bouw met bewegende delen. Dat is de eerste stap om de kloof tussen de virtuele en de echte wereld te overbruggen. En het was heel eenvoudig, de code is rechttoe rechtaan. Ook zaten de meeste onderdelen in mijn prullenbak, behalve de bel. Alles in elkaar zetten en wachten tot iemand op mijn blog kwam, was leuk.

Ik hoop dat je ervan genoten hebt.

Aanbevolen: