Inhoudsopgave:

High-speed klok voor slow-motion video's: 4 stappen
High-speed klok voor slow-motion video's: 4 stappen

Video: High-speed klok voor slow-motion video's: 4 stappen

Video: High-speed klok voor slow-motion video's: 4 stappen
Video: How to Speed up Divi in 2023 | 4 simple POWERFUL steps 2024, Juli-
Anonim
Image
Image
Materialen
Materialen

Bijna iedereen met een moderne smartphone heeft een high-speed camera waarmee spectaculaire slow-motion video's gemaakt kunnen worden. Maar als je wilt meten hoe lang het werkelijk duurt voordat die zeepbel barst of die watermeloen ontploft, dan vind je het misschien moeilijk om de tijd op je video's weer te geven: een stopwatch heeft een heel klein display en heeft een nauwkeurigheid van slechts 1/100ste van een seconde. Als je kwantitatieve metingen wilt doen, kwam ik erachter dat de gepubliceerde framesnelheid van een camera niet iets is waarop je kunt vertrouwen!

Gelukkig is het heel eenvoudig om een klok te bouwen met ms-precisie en heldere grote cijfers met behulp van een Arduino en een 4-cijferig 7-segments display. Bovendien komen de 12 pinnen van een standaard 0,56” display exact overeen met de pinlay-out van de Arduino Nano en kunnen er direct op worden gesoldeerd.

Er is geen start/stop/reset op deze timer. Hij begint gewoon te lopen als je hem aanzet en loopt na 10 seconden over. Het idee is dat om de duur van een bepaald proces te meten, we sowieso het tijdsverschil tussen het einde en het begin meten.

Stap 1: Materialen

  • Een Arduino Nano, zonder de headers erop gesoldeerd.
  • Een 0,56” 4-cijferig 7-segments display. Zowel common-anode als common-kathode zijn OK

Als je hem in een stevige doos wilt plaatsen en op 2 AA-batterijen wilt laten werken, voeg dan toe:

  • Een elektronische projectdoos van 60x100x25
  • Een 2xAA batterijhouder
  • Een opstapmodule
  • Een 10x15mm aan/uit tuimelschakelaar

Benodigde gereedschappen

Soldeerbout

Om het in een doos te monteren:

  • Een roterend gereedschap om de gaten voor het display en de schakelaar ruw uit te snijden
  • Handvijlen om de gaten fijn te snijden
  • Een lijmpistool om de componenten op hun plaats te fixeren.

Stap 2: De Arduino aansluiten op het display

De Arduino aansluiten op het display
De Arduino aansluiten op het display

Verbazingwekkend genoeg komen de pinnen van een standaard 4-cijferig 7-segments display overeen met de lay-out van een Arduino Nano op een zodanige manier dat alle 12 pinnen van het display verbinding maken met IO-pinnen van de Arduino. Hierdoor kan het display direct op de Arduino worden gesoldeerd zonder dat een PCB, connectoren of kabels nodig zijn.

Soldeer de onderste pinnen van het display (herkenbaar aan de decimale punten en de print) aan de analoge pinnen A0-A5. Soldeer de bovenste pinnen van het display op de digitale pinnen D4-D9.

Rode LED's hebben een spanningsval van slechts 2V, dus het is meestal geen goed idee om ze op 5V aan te sluiten, en meestal wordt een serieweerstand toegepast om de stroom te beperken. Maar misschien vanwege de interleaving, ontdekte ik dat het goed werkt zonder serieweerstanden. Zo niet, dan is hier een gedetailleerde instructie over het rechtstreeks toevoegen van serieweerstanden op de Arduino Nano

Stap 3: De code

De code
De code

Upload de bijgevoegde schets naar de Arduino Nano. De huidige code is voor een display met gemeenschappelijke anode, maar de lijnen voor gemeenschappelijke kathode kunnen niet worden becommentarieerd.

Zodra de code is geüpload, zou de timer moeten beginnen te lopen elke keer dat de Arduino wordt opgestart. U kunt hier stoppen of in het volgende gedeelte een voorbeeld bekijken hoe u het in een stevige doos kunt monteren en op batterijen kunt laten werken.

Enkele opmerkingen over de code:

De tijd wordt genomen van de micro()-functies, in plaats van de millis()-functie, om twee goede redenen: De Arduino-implementatie van millis() is verschrikkelijk: ze verhogen elke 1,024 ms, en dan wordt af en toe een milliseconde overgeslagen compenseren! Niet alle Arduino's hebben zeer nauwkeurige kristallen. Als je merkt dat je er meer dan een promille naast zit, kun je de scheidingslijn aanpassen in de regel "unsigned long t=micros()/1000;" om de klok sneller of langzamer te laten gaan.

De cijfers zijn doorschoten, wat betekent dat er slechts één cijfer op een bepaalde tijd brandt. Bij het wijzigen van de segmenten van een cijfer zijn alle cijfers uit, zodat er op geen enkel moment een afvalcijfer wordt weergegeven. Ik heb de updatefrequentie van de cijfers gemeten op 750 microseconden, dus elk cijfer wordt minstens één keer per milliseconde bijgewerkt!

Ik heb de klok niet serieus geoptimaliseerd voor snelheid, aangezien de huidige snelheid goed genoeg is voor het weergeven van milliseconden. Ik denk dat de Arduino gemaakt zou kunnen worden om twee cijfers meer weer te geven (overeenkomend met de 100 en 10 microseconden), maar het zou

  • Interrupts uitschakelen en direct de timers gebruiken
  • Directe poortmanipulatie
  • Alle segmenten op een enkele poort aansluiten en de cijfers op een andere poort
  • Vermijd expliciete berekening van cijferwaarden, maar gebruik in plaats daarvan incrementen (deel- en modulusbewerkingen zijn traag)

Als ik een slow-motioncamera met >1000 fps zou kunnen bemachtigen, zou ik het kunnen proberen, voor nu ben ik blij met ms-precisie.

Stap 4: Montage in een doos

Montage in een doos
Montage in een doos
Montage in een doos
Montage in een doos
Montage in een doos
Montage in een doos

Een goedkope 100x60x25mm elektronische projectdoos, niet waterdicht, past gemakkelijk in deze timer, samen met batterijen, een step-up module en een aan/uit schakelaar. Voor batterijvoeding geeft een combinatie van 2 AA-batterijen met een step-up-module een veilige en stabiele 5V-spanning aan de Arduino. Door een aan/uit schakelaar direct op de accu te plaatsen (in plaats van op de uitgang van de step-up) hebben de accu's geen last van lekkage uit de stup-up module, en kunnen ze jaren meegaan bij sporadisch gebruik.

De step-up module die ik gebruikte had een vrouwelijke USB-connector, die ik met een tang verwijderde, om draden naar de uitgang te kunnen solderen. Als alternatief kunt u een regelbare step-up gebruiken en deze instellen op 5V-uitgang.

Begin met het uitsnijden van de twee gaten die overeenkomen met het display en de aan/uit-schakelaar. Ik tekende met een potlood de geschatte gaten, knipte toen de gaten een beetje te klein uit met een roterend gereedschap en vijlde ze vervolgens met handvijlen tot de exact overeenkomende grootte.

Knip een deel van de meeraderige flexibele rode en zwarte kabel van de accubak af en sluit ze aan op de step-up-module, waarbij ofwel de positieve of de negatieve onderbroken wordt door een aan/uit-schakelaar. Dan van de step-up module direct naar de GND en de +5V of de Arduino.

Ik gebruikte hot-glue om alle elementen op hun plaats te houden: de accubak, de opstapmodule en rond de zijkanten van het scherm.

Het eindresultaat is een timer in een stevige doos met een doodeenvoudige bediening!

Aanbevolen: