Arduino Pinewood Derby Timer (2 / 3 steg)

Steg 2: Timer skissen



Vänder till PinewoodTimer skissen, först definieras några viktiga parametrar...

#define IR_THRESHOLD 200 / / bil upptäcka tröskel

#define STARTER_PIN / / start gate switch = stift 2

#define QTI_PIN_OFFSET 5 / / lanes 0-2 = stift 5-7

#define NUM_LANES 3 / / antalet körfält

#define TRACK_LENGTH 50 / / fot

#define skala 25 / / skala 1:25

#define TIMEOUT 6000 / / ms för race timeout/vila

IR_THRESHOLD bör fastställas i fönstret definieras av IR omgivningsförhållanden och QTI svar som bestäms med PinewoodCalibrate skissen. STARTER_PIN anger PIN-koden används för växeln startar gate (andra sidan av växeln är ansluten till marken) medan QTI_PIN_OFFSET avgör pin-anslutningar för QTI sensorer. Spåra olika konfigurationer och bil storlekar som stöds med NUM_LANES, TRACK_LENGTH och skala. Slutligen avslutas en TIMEOUT tävlingen om t ex en bil inte avslutas eller bara två bilar racing, etc.

Den setup rutinen bara kan serial-uttaget och s├ñtter pin för växeln starter gate.

void setup() {

Serial.BEGIN(9600);

pinMode(STARTER_PIN,INPUT_PULLUP);

}

Huvudloop startar genom att definiera de variabler som används. Starttid är basen för den löpande et (förfluten tid) med den array [finish_et] förvaringstid för varje lane. Variabeln race_over räknar hur många bilar har passerat mållinjen.

Efter att rensa finish_et [] för varje lane, "Redo..." visas på terminalen och skissen väntar race till starta. När växeln start öppnas skiss skriver ut "Go" och sedan går in huvudsakliga timing slingan. Inom slingan kontrolleras varje körfält för förekomsten av en slutbehandlare genom att jämföra dess QTI sensor läser med TRÖSKELN. När en bil har identifierats lagras den totala träningstiden för att lane. Timing loopen körs tills tävlingen är över (dvs. NUM_LANEs bilar över mållinjen eller TIMEOUT överskrids).

Jag omnämna (här kommenterade) för att Visa tid krävs för att kontrollera alla körfält, som i sin tur bestämmer hur många körfält skissen kan hantera. Jag observerade loop tiden för en 3-lane setup att vara 9-10 millisekunder, eller ca 3 millisekunder per körfält. Om du till exempel tiden per körfält är 3ms och en bil tar 30 millisekunder att korsa mållinjen, kunde skissen teoretiskt stöd för upp till tio körfält. Dock bör viss marginal ges för att rymma, till exempel en särskilt snabb (eller kort) bil. För att faktiskt testa lane kapacitet kan du öka NUM_LANES och kör upprepade försök för att bestämma vid vilken punkt timern börjar att "missa" en snabb bil passerar mållinjen. Observera att du kan göra detta test för alla NUM_LANES med bara en enda bil/lane.

void loop() {

lång starttid, et = 0, finish_et [NUM_LANES];

int race_over = 0;

int i;

för (jag = 0; jag < NUM_LANES; i ++) {

finish_et [i] = 0;

}

Serial.println("ready...");

samtidigt (digitalRead(STARTER_PIN)==0) {

}

Serial.println("go!");

start_time = millis();

medan ((race_over < NUM_LANES) & & (et < TIMEOUT)) {

et = millis ()-starttid;

för (jag = 0; jag

om (RCTime (+ QTI_PIN_OFFSET) < IR_THRESHOLD) {

om (finish_et [i] == 0) {

finish_et [i] = et;

race_over ++;

}

}

}

Serial.println(Millis()-(et+start_time));

}

När loppet är över visas avslutningstiden för varje lane. Med hjälp av TRACK_LENGTH och skala jag också visa den genomsnittliga hastigheten i "skalas MPH" (folk bli upphetsad när deras bil går 250 MPH: =). När ras resultatet visas väntar skissen för start grinden att stänga inför nästa lopp. Dröjsmål uttalande försäkrar startande gate switch studsa inte utlöses falskt en omedelbar omstart.

Serial.println();

för (jag = 0; jag

Serial.Print ("Lane");

Serial.println(i+1);

Serial.Print ("tid");

Serial.println(float(finish_et[i]/1000.0));

Serial.Print ("Speed");

flyta fps = TRACK_LENGTH/(finish_et[i]/1000.0);

flyta mph = ((fps * 3600.0) / 5280.0) * skala;

Serial.Print(int(mph));

Serial.println ("MPH");

Serial.println();

}

medan (digitalRead(STARTER_PIN)! = 0) {}

Delay(50);

}

Allt som är kvar är RCTime rutin med tillstånd av Parallax (http://learn.parallax.com/KickStart/555-27401), som förvärvar QTI sensor läsningen. Det fungerar genom att mäta tiden urladdning av en kondensator genom en variabel (beroende på mängden reflekterat IR) motstånd.

lång RCTime (int sensorIn) {

lång varaktighet = 0;

pinMode (sensorIn, produktionen); Göra pin utgång

digitalWrite (sensorIn, hög); PIN HIGH (ansvarsfrihet kondensatorn)

Delay(1); Vänta 1ms

pinMode (sensorIn, ingång); Se kontakt-ingång

digitalWrite (sensorIn, låg); Stänga av inre pullups

While(digitalRead(sensorIn)) {/ / Wait för stift att gå lågt

längd ++;

}

returnera varaktighet;

}

Se Steg
Relaterade Ämnen

Ledas Fan Pinewood Derby bil

När min arbetsplats (Adobe) meddelade en Pinewood Derby konkurrensen bestämde jag mig att delta i kategorin outlaw/obegränsad. Ett bra antal år sedan jag gjorde en bil med hjälp av en propeller & elmotor åter utlovat från en RC segelflygplan, och den...

Pinewood Derby med programmerbara lysdioder

Annan ta på Pinewood Derby bil med ljus, denna gång med en Atmel ATtiny2313mikrokontroller inuti (tillsammans med en röra av trådarna). Jag har inte kontrollerat detta, men en grovberäkning tyder på att lamporna ska köras i ca 4 timmar på två CR2016...

Pinewood Derby ras

Här i Nederländerna vet vi inte riktigt Pinewood Derby. Jag trodde det skulle vara roligt att göra en årlig Holländsk version.För att göra detta hända, behöver jag översätta amerikanska mått och regler till något som skulle fungera för oss. Det först...

Pinewood Derby polisbil

det är Pinewood Derby säsong! I år jag bygger en med en arduino chip inuti. Denna bil har lett huvud och svans-lampor. Också har den röda och blå blinkande lampor som kontrolleras av arduino chip.Jag ska visa dig hur man bygger en egen.Steg 1: Prep o...

Att lägga vikt till Pinewood Derby bil snabbt och billigt.

jag var ute efter ett snabbt och enkelt sätt att ge tyngd till Pinewood Derby bil. Du kan använda bly eller volfram, men de är relativt dyra ($1-2 per ounce), kommer i udda former, och du har att räkna ut ett sätt att fästa dem till bilen. Öre, som ä...

SLO Maker Academy Pinewood Derby läroplan

SLO Maker Academy läroplanen är en öppen källkod, collaborative ansträngning att föra STEAM-stil utbildning till någon. Vi erbjuder dessa förenklade aktiviteter på SLO MakerSpace och publicerar många att instructables för lärare och föräldrar att gör...

Pinewood Derby bil med strålkastare med Chibitronics

Pinewood Derby bilar är awesome, barn älskar att göra dem och de lär sig mycket om Snickeri, målning, aerodynamik och vikt fördelning. Att förbättra erfarenhet (och göra din bil ännu coolare) lägga till LED strålkastare och bakljus. För årets bilar b...

Hur man skapar en Pinewood Derby bil

Tja, här är det Pinewood Derby tid, igen, för våra Pack. Vi håller Derby i januari och dela ut den car kit på November's Pack möte. Varje år ungarna måste skapa en ny bil. De kan inte använda förra årets tidigare erfaren bil. Vi kör två uppsättningar...

Hur man bygger en pinewood derby

om du någonsin har varit en boyscout, då vet du förmodligen om en pinewood derby. Om du inte har hört av en pinewood derby, är det ett bra och roligt sätt att ge underhållning för hela familjen! En pinewood derby är en racerbana med en ramp från börj...

Pinewood Derby bil inspirerad av LEGO Ninjago

vår årliga Cub Scout Pinewood Derby (http://en.wikipedia.org/wiki/Pinewood_derby) var en chans för min sex-åriga att kombinera två av hans favorit saker: att göra saker och LEGO, särskilt en story-baserade värld av LEGO Ninjago: Masters i Spinjitzu (...

Pinewood derby bil med fungerande strålkastare

Uppdaterad ***För den mest harmas pinewood Derbyen trodde jag det skulle vara häftigt att sätta lysdioder för huvudet ljus och bryta ljus. Det visade sig vara riktigt coolt. Hör hur jag gjorde det. (Disclaimer) Detta instructable går inte in i detalj...

Bob-omb pinewood derby bil (3D tryck)

så Pinewood Derby är runt hörnet och du vill göra den coolaste bilen för loppet. Du inser att du inte vill göra din bil av trä och färdigskurna trä mallarna ser tacky. Då inser du att du kan göra din bil med hjälp av ett 3D-modellering program och få...

PineWood Derby bilar

kolla in dessa Pinewood derby bilar jag gjorde för ingenjörens vecka på jobbet. Nummer 4 bilen är detta år. nummer 33 är från föregående. Tyvärr, jag vann inte, men jag kommer att säga att mina bilar ser mest som bilar i stället för de typiska kilar....

Pinewood Derby bil med lysdioder och Jimmy Neutron

Du vet din i problem när du startar oroande om programvaran i din sons Pinewood Derby bil!I år bestämde jag mig att ge upp att försöka konkurrera med "Gear-huvuden" i våra Cub Scout Pack. Det finns alldeles för många variabler när man försöker b...

Hur man bygger en oslagbar Pinewood Derby Racer

i den här videon jag visa dig hur man bygger en oslagbar Pinewood Derby Racer.Vi visar dig tips och tricks som vi använde för att vinna lokal Pinewood Derby loppet.Känn dig fri att använda dessa hastighet hemligheter för att ta bilen pinewood derby t...

Pinewood Derby bil beskriver idéer

Vissa barn (eller föräldrar) kunde bry sig mindre om en snabb bil. För dem handlar det om stil...I detta instructable, kommer jag att dela tricks jag använde under min första erfarenhet dekorera pinewood derby bilar med mina pojkar. Min bil var inte...

F1 Pinewood Derby bil

år var min första pinewood derby! Detta är bilen jag gjorde, jag konstruerade det efter en F1-Racer. Min bror drog ut planerna, och jag gjorde alla de skärning, slipning och målning! Jag tror att det vände ut riktigt bra, jag hoppas du njuta av att t...

Pinewood Derby bil på Shopbot

där min son tävlar i Pinewood Derby, de har ganska stränga regler på vad arbete pojkarna måste göra på sina egna bilar. De pojkar divisionerna har strikta regler om vad som kan och inte kan göras.Men sedan finns det en pappas division! Reglerna för d...

Pinewood Derby bil vikt fack

detta instructable visar dig hur du skapar en "ficka" under din sons deby bil för lätt vikt tillägg/borttagning.Få den närmast möjligt till den maximala5.0 oz.Steg 1: Skaffa alla delar Material:1 Ea. Pinewood Derby boxed set.Innehåll:Träkloss4 p...