Tafelblad voetbalspel (7 / 9 stap)

Stap 7: Arduino Code

DEFINIËREN
input (pins)
#define sensor1 5 / / sensor op keeper links
#define sensor2 0 / / sensor op keeper recht
#define center 8

#define motor1 10
#define motor2 11

#define distThresh 50

GLOBAL declaraties van variabelen
int s1Baseline;
int s1Tolerance;
Const int numRecRead = 10;
int recReading [numRecRead];
int recReadCur;

void setup () {}
Serial.begin(9600);           instellen van seriële bibliotheek 9600 bps

pinMode (sensor1, INPUT);

pinMode (motor1, OUTPUT);
pinMode (motor2, OUTPUT);

resetRecVal();

zaad random getal-generator voor de moeite
randomSeed(analogRead(0));

Kalibreren van de sensoren en basislijn en toleranties instellen
int s1Cal [2];
calibrateSensor (sensor1, s1Cal);
s1Baseline = s1Cal [0];
s1Tolerance = s1Cal [1];

}

void loop {}
int s1Val, s1ValAvg;
dubbele s1Dist;
Serial.println(digitalRead(Center));
Krijgen van de sensor-waardes
s1Val = checkSensor (sensor1, s1Baseline, s1Tolerance);
s1ValAvg = averageReading(s1Val);
Serial.println(s1Val);
Als (s1ValAvg > distThresh) {}
s1Dist = sensorToDistance(s1Val);

Als (s1Dist < 14) moveGoalie(5);  naar rechts verplaatsen
anders als (s1Dist > 18 & & s1Dist < 32) moveGoalie(-5);  Zet links

resetRecVal();
}
}

Retourneert de waarde van de sensor als er een lezing (dat wil zeggen de bal langs infront was)
of 0.0 als geen lezing werd genomen (d.w.z. de bal ging niet voorbij)
sensorPin - de pin van de sensor worden gecontroleerd
basislijn - die sensoren "geen lezing" waarde
tolerantie - de drempel af van de basislijn die moet worden beschouwd als een lezing
(dat wil zeggen als de waarde is binnen (basislijn +/-drempel geen aangifte doen
een lezing)
int checkSensor (int sensorPin, dubbele basislijn, dubbele tolerantie) {}
dubbele sVal = analogRead(sensorPin);  Waarde gemeld door de sensor
Als (abs (basislijn - sVal) < tolerantie) / / als de lezing binnen de tolerantie is
keren 0;                          "geen lezing" retourneren
retourneren sVal;                          anders de retourwaarde
}

Deze eigenschap retourneert de afstand die overeenkomt met de sensorgegevens
sensorVal - waarde gelezen door de sensor
dubbele sensorToDistance (int sensorVal) {}
dubbele schaal = 2050;
dubbele expon = 1.0/0,85;
dubbele dist = pow((scale/sensorVal), expon);

Als (dist > 35) dist = 35; //normalize dist

retourneren dist;
}

Kalibreert de sensor (uitgevoerd in setup)
Neemt kalibratiepunten van de sensor te vinden van de gemiddelde waarde
en ruis in de sensor lezingen
sensorPin - Pin van de sensor kalibreren
calData - int [] waarden worden opgeslagen in
VOID calibrateSensor (int sensorPin, int calData[]) {}
int numReadings = 300;  Neem 300 kalibratiepunten
int gegevens [numReadings];  gebruikt voor het opslaan van kalibratie punten
int i;
int minVal = 10000;  initialiseren van hoge minimumwaarde
int maxVal = -1;  initialiseren van de maximale waarde laag

voor (ik = 0; ik < numReadings; ++ ik) {}
int t = analogRead(sensorPin);  lezen van voorbeeldgegevens
gegevens [i] = t; data matrix te vullen

Record min en max sensor lezingen
Als (t < minVal) //if t is minder dan de huidige minVal
minVal = t;  vervangen van de minVal
Als (t > maxVal) //if t groter is dan maxVal
maxVal = t; vervangen van de maxVal
}

Vinden van de verspreiding van de gegevens
int verspreid = maxVal - minVal;

Vind het gemiddelde van de voorbeeldgegevens
dubbele gemiddelde = 0;
voor (ik = 0; ik < numReadings; ++ ik)
bedoel += gegevens [i];
bedoel / = numReadings;

berekenen van de std-dev
dubbele stddev = 0;
voor (ik = 0; ik < numReadings; ++ ik)
stddev += pow ((gegevens [i] - bedoel), 2);
stddev / = numReadings;
stddev = sqrt(stddev);

terugkeer [gemiddelde, spreiden]
calData [0] = gemiddelde;
calData [1] = stddev * 2;
terugkeer;

}

0-stop
10 - snel
< 0 links
> 0 recht
VOID moveGoalie (int dir) {}
int mag = map(abs(dir), 10, 0, 0, 255);
int retMag kaart (abs ((dir + 4)/4.0) = 4, 14, 100, 255); meer langzaam terug

Als (dir > 0) {}
analogWrite (motor1, mag);
analogWrite (motor2, 0);
delay(100);
analogWrite (motor1, 0);
analogWrite (motor2, 0);
delay(1000);
analogWrite (motor1, 0);
analogWrite (motor2, retMag);
delay(200);
}
anders als (dir < 0) {}
analogWrite (motor1, 0);
analogWrite (motor2, mag);
delay(300);
analogWrite (motor1, 0);
analogWrite (motor2, 0);
delay(1000);
analogWrite (motor1, retMag);
analogWrite (motor2, 0);
delay(300);
}

Stop keeper
analogWrite (motor1, 0);
analogWrite (motor2, 0);
}

int averageReading (int newVal) {}
recReadCur % = (numRecRead - 1);

recReading [recReadCur ++] = newVal;

int som = 0;
int geldig = 0;
for (int i = 0; ik < numRecRead; ++ ik) {}
Als (recReading [i] > 0) ++ geldig;
som += recReading [i];
}

Als (geldig < 7) 0 keren;

keren (som/geldig);
}

VOID resetRecVal () {}
for (int i = 0; ik < numRecRead; ++ ik) //initialize recRead
recReading [i] = 0;
recReadCur = 0;
}

Gerelateerde Artikelen

Zelf terugstelbare tafelblad bowlingspel (D4E1)

Zelf terugstelbare tafelblad bowlingspel (D4E1)

Wij zijn twee studenten Industrial Design aan de Universiteit van Gent campus Kortrijk en een student ergotherapie aan de Howest. In het kader van een ontwerp voor (elke) een programma (D4E1) deden we een project van co-creatie met een 4-jarige handi
Hoe gebruik schroot hout met Cool tafelblad maken of pop tabel

Hoe gebruik schroot hout met Cool tafelblad maken of pop tabel

ik had sommige schroot cedar decking dus ik een tafelblad voor mijn moeder en pop tabel voor mijn jongere zus maakte. Ik heb niet niet vlek en schilderen van de tabellen. Mijn moeder en zusje deed.Stap 1: Zoeken hout We hebben een enorme branden stap
Wereld kaart tafelblad

Wereld kaart tafelblad

een houtsnijden project ben ik als een cadeau voor mijn broer begonnen. Hij is 'n fan van grote gaming en een van zijn favoriete games is risico, dus ik besloot om 'make' hem een risico geïnspireerd (wereldkaart) tabel. Na een goede 2 maanden van bor
Tafelblad weven

Tafelblad weven

heel erg gemakkelijk tafelblad wevenu kunt weven tot breedte 30cmkun je lange geweven! (12.12 upload!!)Stap 1: Step1:cut de MDF voor te bereiden (450 × 600 × 4 mm), schroef (3Φ) × 16MDF gesneden door laser cutter machineStap 2: Step2:make onderdelen
Hoe vervang ik een gebroken glas Patio tafelblad (zonder glas!)

Hoe vervang ik een gebroken glas Patio tafelblad (zonder glas!)

Onze tafel patio omgedraaid tijdens een zware onweersbui. Het tafelblad van glas verbrijzeld helemaal over de plaats en liet ons met alleen een metalen frame en een enorme puinhoop op te schonen.In plaats van de uitgaven een fortuin op een nieuwe gla
Overspuiten van een tafelblad

Overspuiten van een tafelblad

Vele jaren van gebruik en misbruik eisten hun tol op deze arme tabel, maar het had nog een heleboel leven links in het. Het had net te worden overtuigd van dit feit.Stap 1: Het kan alleen maar beter De finish op de tafel werd gewreven neer op het kal
Tafelblad bankje en Moxon vice

Tafelblad bankje en Moxon vice

Houtbewerking vereist een speciale oppervlak en natuurlijk een passende vice. Tot op heden heb ik vermeden montage van een permanente houtbewerking vice op mijn kleine tafel omdat dit nog meer opslagruimte zou beperken. In plaats daarvan zocht ik een
Inklapbare tafelblad bowlingspel

Inklapbare tafelblad bowlingspel

Skittlebowl is een tafelblad bowlingspel oorspronkelijk gemaakt terug in de jaren 1960 door een speelgoedbedrijf Aurora genoemd in het eerste deel in hun spel "Verwarmd"-serie. Ik ontwierp deze houten versie van het spel volledig inklapbaar en g
Zee glas mozaïek tafelblad

Zee glas mozaïek tafelblad

dit is een tutorial voor een tafelblad van mozaïek gemaakt meestal van waterkristallen.  Het was vrij moeilijk om te maken, maar ik begon als een beginner en was in staat om het uit te voeren.Dit project is tijdrovend maar maakt een geweldig en perso
Tafelblad houten weer gemaakt met een Shop-Bot

Tafelblad houten weer gemaakt met een Shop-Bot

dit is een stapsgewijze leidraad bij het maken van een leuk uitziende tafelblad display voor het gebruik van die vertegenwoordigen een Code voor Amerika Brigade op evenementen. Het is ook een geweldige manier te krijgen ingevoerd om het gebruik van e
Terras tafelblad gemaakt van geregenereerde dek hout

Terras tafelblad gemaakt van geregenereerde dek hout

ik moet eerst beginnen met te zeggen dat hoewel dit iets van een "Stapsgewijze" instructable, ik ben niet echt ingaan compleet op alle de exacte afmetingen.  Niet omdat ik ben lui, maar omdat ik aangepast deze tafelblad te passen op een bestaand
Rustieke terrasplanken en tafelblad van boom Trunks

Rustieke terrasplanken en tafelblad van boom Trunks

Met behulp van slechts een kettingzaag, een draadloze boormachine, een Haakse slijper en een hamer, boomstammen rechtstreeks uit het forest kan worden omgezet in fantastische oude wereld stijl rustieke platforms zoals terrasplanken en banket formaat
Werkbank met teruggewonnen tafelblad

Werkbank met teruggewonnen tafelblad

Dit is een stevige werkbank met in hoogte verstelbare voetjes met behulp van een gerecycled tafelblad die later kan worden vervangen door iets anders.Waarom maken dit ? Het is een erg leuk om te leren, experimenteren met enkele technieken en een stuk
Maak uw eigen tafelblad Photobooth

Maak uw eigen tafelblad Photobooth

DIY Photobooths zijn een grote rage, en ze zijn ongelooflijk leuk.  Ik maakte een photobooth aanvankelijk voor mijn eigen huwelijksreceptie, maar sindsdien heb ik gebruikte het een enorme hoeveelheid tijd en het is altijd een grote hit geweest.Ik zag