Testen/berekenen van ruis op sensor met LED en transistor
Met deze opstelling gaan we na of dat we onze line-follower kunnen laten
werken met een 'LED-sensor'. We gaan uitzoeken wat de ruis is op de
10bit-schaal van de arduino. We sluiten de led in sper aan naar de
transistor die de sperstroom of opgewekte spanning door lichtinval zal
versterken. Aan de emitter wordt een weerstand aangesloten, de A0pin van
de arduino komt ook aan de emitter. Zie schema Om de weerkaatsing van het licht op het blad te kunnen maken, gebruiken we een witte led.
Zwart
Wit
Min.
Gem.
Max.
Min.
Gem.
Max.
Verschil
Met R=330k
Groene led
232
253,5
275
829
856
883
602,5
We komen een verschil tussen de
gemiddelden van 602,5 uit. Op onze schaal van 1023(10b) is dit voldoende.
Berekenen ruis:
278 - 217=
43
883 - 829=
54
43/602,5 =
7,14
%
54/602,5 =
8,96
%
Gem. ruis=
8,05
%
Programma arduino: const int sensorPin = A0; // pin that the sensor is attached to int sensorValue = 0; // the sensor value
void setup() { Serial.begin(9600); analogReference(INTERNAL1V1); // analoge pin op 1.1 Volt; }
Test van de communicatie met een infrarood fotodiode
Is een fotodiode (IR) genoeg voor communicatie?
·
Testopstelling
·
Wat testen?
o
Zichthoek
o
Maximum afstand van uitlezing
·
Zichthoek
We stellen vast dat de zicht hoek aan vaartbaar is.
90° van het detectie vlak.
·
Maximum afstand van uitlezing
Bij deze test plaatsen we de kniperende IR led (1s aan 1s
uit) tegen de fotodiode en vergroten de afstand tussen de twee voor iedere
cyclus van de led. 1 cm/cyclus
Hello world!
Goodbye world! 0
Cm
Hello world!
Goodbye world! 1
Cm
Hello world!
Goodbye world! 2
Cm
Goodbye world!
Hello world!
Goodbye world! 3
Cm
Hello world!
Goodbye world! 4
Cm
Goodbye world!
Goodbye world! 5
Cm
Goodbye world!
Goodbye world! 5
Cm
Goodbye world!
·
Besluit
Een fotodiode leest niet van een vergenoegen afstand uit.
Voor de communicatie moet een IR recepteur gebruikt worden met een IR led als
emitter.
void loop() {
digitalWrite(12, HIGH); // set the LED on
delay(500);
if (digitalRead(7)==HIGH)
{
Serial.println("Hello
world!");
}
delay(500);
digitalWrite(12, LOW); // set the LED off
delay(500);
if (digitalRead(7)==LOW)
{
Serial.println("Goodbye
world!");
}
delay(500);
}
// return TIMER2 TOP value per given desired frequency (Hz) uint8_t timer2top(unsigned long freq) { return((byte)((unsigned long)SYSCLOCK/2/freq) - 1) ; }
Richtprijs50 Snelheid2m/s
Zwarte lijn op wit papier
minimum kromtestraal : 10cm
lijndikte : 1,5 cm
minimum afstand tussen 2 lijnen : 10 cm
Kruispunten mogelijk!De robot
dient altijd rechtdoor te rijden.
De robot moet werken onder normale licht
Afmetingen: tijdsmeting gebeurt in een chronotunnel waar de robot moet
doorrijden. Binnenafmeting tunnel : 12x12x12 cm. Tunnel wordt voorafgegaan door een rechte baan van 30cm. Meting gebeurt d.m.v. een lichtsluis op 5 cm hoogte. ROBOTS
DIE DE TUNNEL RAKEN WORDEN GEDISKWALIFICEERD Licht sensor array -> uitlezing lineaire afwijking van de te volgen lijn PID
regeling
Wireless communicatie (infrarood?)
power on/off button
Alle instellingen
(Kp, Ki, Kd, debug on/off, calibratie, ) zijn aanpasbaar / worden
gevisualiseerd via een pc programma. Programma is zo gebruiksvriendelijk
mogelijk. Uiteindelijke
robot moet op een eigen printplaat gebouwd worden. Maak gebruik van smd componenten
waar mogelijk / nuttig.
Alle
beslissingen moeten technisch onderbouwd worden. Maak hiervoor per team 1 blog
waarop je minimum 1 maal per week uw technische vorderingen post.
De
uiteindelijke robot dient vergezeld te worden van een instructable : een
volledig stappenplan waarin uitgelegd wordt hoe de robot kan nagebouwd worden,
inclusief printplaat, componentenlijst, software, De robot MOET VOLLEDIG na
te bouwen zijn met courant verkrijgbare onderdelen.
Alle
software nodig om de instructable te volgen / het eindproduct te gebruiken moet
gratis zijn voor de eindgebruiker