Inhoudsopgave:

Arduino Laser-gebaseerd timingsysteem: 6 stappen (met afbeeldingen)
Arduino Laser-gebaseerd timingsysteem: 6 stappen (met afbeeldingen)

Video: Arduino Laser-gebaseerd timingsysteem: 6 stappen (met afbeeldingen)

Video: Arduino Laser-gebaseerd timingsysteem: 6 stappen (met afbeeldingen)
Video: Leap Motion SDK 2024, Juli-
Anonim
Arduino lasergebaseerd timingsysteem
Arduino lasergebaseerd timingsysteem
Arduino lasergebaseerd timingsysteem
Arduino lasergebaseerd timingsysteem
Arduino Laser-gebaseerd timingsysteem
Arduino Laser-gebaseerd timingsysteem

Als onderdeel van mijn lesgeven had ik een systeem nodig om nauwkeurig te meten hoe snel een modelvoertuig 10 meter aflegde. Aanvankelijk dacht ik dat ik een goedkoop kant-en-klaar systeem van eBay of AliExpress zou kopen, deze systemen zijn algemeen bekend als lichtpoorten, fotopoorten of iets dergelijks. Het bleek dat kant-en-klare lichtpoort-timingsystemen eigenlijk vrij duur zijn, dus besloot ik er zelf een te bouwen.

De werking van een lichtpoort-timingsysteem is vrij eenvoudig. Elke lichtpoort bestaat aan de ene kant uit een lasermodule, deze projecteert aan de andere kant een laserspot op een lichtafhankelijke weerstandsmodule (LDR). Door de output van de LDR te meten, kan het systeem detecteren wanneer de laserstraal onderbroken is. Door gebruik te maken van twee van deze poorten start het systeem de timer wanneer de eerste straal wordt onderbroken en stopt de timer wanneer het detecteert dat de tweede straal is verbroken. De resulterende geregistreerde tijd wordt weergegeven op het LCD-scherm.

Het bouwen van een dergelijk systeem met studenten is een geweldige introductie tot coderen, het is ook een erg handig hulpmiddel in de klas als het eenmaal klaar is. Dit type systeem is geweldig voor STEM-activiteiten en kan worden gebruikt om te meten hoe snel dingen zoals rubberen bandauto's, muizenvalauto's of dennenhouten derbyauto's een bepaalde afstand afleggen.

Disclaimer: De hier gepresenteerde oplossing is verre van optimaal. Ik ben me ervan bewust dat sommige dingen veel beter of efficiënter kunnen. Dit project was aanvankelijk opgezet met een zeer strakke deadline en werkte absoluut prima voor het beoogde doel. Ik heb plannen om zowel versie 2 als versie 3 van dit systeem met verbeteringen uit te brengen, zie de laatste stap van de instructable. Implementatie van het circuit en de code is op eigen risico.

Benodigdheden

  • Arduino R3 (of compatibel bord) - £ 4,50
  • Adafruit veervleugel protoboard - Een klein deel van elk type protoboard is ook prima - £ 1
  • LCD-toetsenbord schild - Zorg ervoor dat dit is gemaakt om te passen bij de versie van de Arduino die je hebt - £ 5
  • 2 x Light Dependent Resistor (LDR) -module - Zoeken op ebay naar "arduino LDR" zou veel opties moeten tonen - £ 2,30 per stuk
  • 2 x Lasermodule - Zoeken op ebay naar "arduino laser" zou veel opties moeten tonen. Zorg ervoor dat het vermogen van de laser niet groter is dan 5 mW. - £ 2,25 voor drie
  • 4 x Klein statief - £ 3,50 per stuk
  • 4x 1/4 inch moer - Past op een standaard statiefschroefdraad - £ 2
  • Helder acryl voor Arduino-koffer £ 3
  • M3 moeren en bouten - £ 2
  • Plastic PCD-afstandhouders - Kits hiervan zijn vrij goedkoop verkrijgbaar op Ebay.- £ 6,80
  • 4 x 3D-geprinte behuizingen - Materiaalkosten waren ongeveer £ 5.
  • Lintkabel - £ 5

De totale kosten waren ongeveer £ 55, dit veronderstelt toegang tot zowel een lasersnijder als een 3D-printer. De meeste kosten hier zijn voor koffers, moeren en bouten, enz. De werkelijke kosten van de elektronica zijn slechts £ 22, dus hier is waarschijnlijk ruimte voor veel optimalisatie.

Stap 1: Programmeer Adrunio

Upload de onderstaande code naar de Arduino. Als je niet bekend bent met hoe je dit moet doen, bekijk dan deze geweldige instructable.

De basislogica van de code is als volgt:

  1. Zet lasermodules aan en controleer of elke LDR de laserstraal kan "zien".
  2. Wacht tot LDR 1 een breuk in de laserstraal detecteert, start onmiddellijk de timer.
  3. Wacht tot LDR 2 een breuk in de laserstraal detecteert, stop de timer onmiddellijk.
  4. Toon de resulterende tijd op het LCD-scherm in milliseconden.

De code is alleen ontworpen om een enkele run te timen, zodra de tijd van het scherm is genoteerd, wordt de resetknop op het schild gebruikt om het programma opnieuw te starten.

LINK NAAR ARDUINO-CODE

(Ter info: de code wordt gehost op create.arduino.cc en ik zou de code hier graag hebben ingesloten, maar de Instructables-editor staat niet toe dat het ingesloten iframe correct wordt weergegeven of werkt. Als iemand bij Instructables dit leest, gelieve implementeer dit als een functie in de toekomst, bedankt)

Stap 2: 3D-afdrukbehuizingen

3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen
3D-afdrukbehuizingen

De laser- en LDR-modules moeten op hun plaats worden gehouden om ervoor te zorgen dat er geen straalonderbrekingen optreden als gevolg van het verplaatsen van de modules. 3D-print de onderstaande behuizingen en schroef de modules op hun plaats, de lasermodule moet op zijn plaats worden gehouden met een ritssluiting omdat deze geen doorgaand boutgat heeft.

Zorg ervoor dat u in elk van de koffers een moer van 1/4 inch plaatst, deze wordt later gebruikt om deze koffers op de statieven te kunnen aansluiten. De twee helften van de behuizing worden bij elkaar gehouden met M3 bouten en moeren.

Stap 3: Lasergesneden Arduino-behuizing

Lasergesneden Arduino-behuizing
Lasergesneden Arduino-behuizing
Lasergesneden Arduino-behuizing
Lasergesneden Arduino-behuizing
Lasergesneden Arduino-behuizing
Lasergesneden Arduino-behuizing

Lasergesneden onderstaande bestanden uit het 4 mm dikke heldere acryl. Lijn de arduino R3 en het protoboard uit met de gaten op de acrylstukken en schroef ze op hun plaats. Schroef het bovenste stuk van de behuizing vast aan de onderkant met behulp van de PCD-afstandhouders als afstandhouders.

Stap 4: Bedraad het circuit

Bedrading van het circuit
Bedrading van het circuit
Bedrading van het circuit
Bedrading van het circuit
Bedrading van het circuit
Bedrading van het circuit

Het LCD-schild dat in dit project wordt gebruikt, wordt in detail uitgelegd in deze geweldige instructable. Het LCD-scherm en de invoerknoppen gebruiken echter enkele van de I/O-pinnen van de Arduino, om deze reden gebruiken alle I/O voor de lasermodules en LDR's alleen de pinnen 1, 2, 12 en 13.

Er is heel weinig bedrading nodig, maar zorg ervoor dat het circuit is aangesloten zoals weergegeven in het diagram. Ik heb een aantal JST-type connectoren toegevoegd aan de draden van de laser- en LDR-module, zodat ik de hele installatie gemakkelijk kan demonteren en opslaan.

Ja, arduino-pinnen 1 en 2 voeden de lasermodules rechtstreeks zonder in-line weerstand. Aangezien de geselecteerde lasermodules specifiek zijn ontworpen voor gebruik met arduino, zou dit echter geen probleem moeten zijn. De lasermodules trekken een maximaal vermogen van 5mW, dit betekent dat bij de 5V-voedingsspanning van de pin, de module ongeveer 1mA zou moeten trekken, dit is ruim onder de ~40mA-limiet voor stroomtoevoer op arduino I/O-pinnen.

Stap 5: assembleren en afstemmen

Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen
Monteren en afstemmen

Eindelijk ben je klaar om alles in elkaar te zetten.

  1. Monteer de behuizingen van de LDR- en lasermodule op de kleine statieven.
  2. Plaats de lasermodules om direct op de LDR-sensor te schijnen

In dit stadium moet je de zaken een beetje verfijnen. De LDR-modules geven een digitaal signaal af, een hoog signaal (5V) dat aangeeft dat er geen laserstraal wordt gedetecteerd, een laag teken (0V) dat aangeeft dat het de laserstraal kan zien. De lichtintensiteitsdrempel waarbij de module overschakelt van een 5V naar een 0V uitgangssignaal (en omgekeerd) wordt geregeld door een potentiometer op het LDR-bord. Je zult de potentiaalmeter zo moeten instellen dat de module schakelt tussen een 0V en 5V uitgang wanneer je dat verwacht.

Pas de potentiometer geleidelijk aan totdat het systeem werkt zoals verwacht, of gebruik een multimeter om de output van de LDR-module te meten en indien nodig af te stemmen.

Stap 6: Bediening en verder werk

Bediening en verder werk
Bediening en verder werk
Bediening en verder werk
Bediening en verder werk
Bediening en verder werk
Bediening en verder werk

U zou nu klaar moeten zijn om het systeem te gebruiken! De afbeeldingen tonen de fasen van de operatie.

  1. Druk op de selectieknop om het systeem te initialiseren.
  2. Lijn de lasers zo uit dat ze direct op de LDR-sensor schijnen.
  3. Het systeem is nu ingeschakeld. Zet je modelauto aan de gang.
  4. Het systeem begint te timen zodra de eerste laserstraal is verbroken.
  5. Het systeem stopt zodra de tweede laserstraal wordt onderbroken.
  6. De tijd in milliseconden wordt dan op het scherm weergegeven.
  7. Druk op de resetknop om nog een run te timen.

Ik zal waarschijnlijk een versie 2.0 van dit systeem maken, aangezien er enkele duidelijke verbeteringen kunnen worden aangebracht:

  1. Het is niet nodig om de lasermodules van de Arduino te voorzien, ze kunnen op batterijen werken en eenvoudig worden ingeschakeld wanneer dat nodig is. Toen ik het systeem ontwierp, leek het bedraden van de lasermodules naar de Arduino voor stroom de eenvoudigste oplossing, in de praktijk resulteert dit in lange kabels die in de weg zitten.
  2. Op de LDR-behuizingen zijn echt condensorlenzen nodig. Het precies uitlijnen van de laserpunt met het midden van de (zeer kleine) LDR-sensor is erg lastig en kan soms enkele minuten duren, het gebruik van een condensorlens zou de gebruiker een veel groter doel geven om op te richten met de laserpunt.

Ik denk nu zelfs aan een versie 3.0 die volledig draadloos is en gewoon verbinding maakt met mijn laptop via Bluetooth, dit is echter een veel groter project voor een andere dag.

STEM-wedstrijd
STEM-wedstrijd
STEM-wedstrijd
STEM-wedstrijd

Tweede plaats in de STEM-wedstrijd

Aanbevolen: