vrijdag 28 november 2014

RPM counter

Arduino met RPM-counter

Als onderzoek naar de counter voor het aantal toerental te meten van het draaien aan de hendel hebben we een soort van toerental counter genomen. Werkt op zelfde systeem als een snelheidsmeter van een auto. (Meestal wel in 4 de versnelling dat dit overeenkomt).
Dit is een Tachometer ook wel RPM-counter genoemd. In ons prototype hebben we dit niet gebruikt omdat de programmering van heel het systeem toch wat ons petje te boven gaat. En hebben we dit manueel opgelost door de aansturing van de lampen op te lossen met manuele schakelaars. (zie verder hierboven voor meer uitleg.)
Hieronder een voorbeeld van hoe je een tachometer aan een Arduino kan aansluiten.
Hier is wordt het aantal toeren wel weergegeven op een LCD display en wordt er verder niets meer meegedaan. Dit is dus niet het juiste programma voor ons ontwerp!

Parts List;

1) 1x 16×2 parallel LCD display (compatible with Hitachi HD44780 driver)2) 1x Arduino3) 1x 10kΩ potentiometer4) 1x 10kΩ resistor5) 1x IR LED6) 1x IR Phototransistor7) Jumper wire

Instruction;
1) Connect all jumper wire as shown in diagram.


2) Connect IR LED to digital pin 13.

3) Connect IR Phototransistor (dark) to digital pin 2. Make sure shorter lead connected to digital pin 2 and longer lead to Ground.
Upload this code to your arduino
/*
 * Optical Tachometer
 *
 * Uses an IR LED and IR phototransistor to implement an optical tachometer.
 * The IR LED is connected to pin 13 and ran continually.
 * Pin 2 (interrupt 0) is connected across the IR detector.
 *
 * Code based on: www.instructables.com/id/Arduino-Based-Optical-Tachometer/
 * Coded by: arduinoprojects101.com
 */

int ledPin = 13;                // IR LED connected to digital pin 13
volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;

// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void rpm_fun()
 {
   //Each rotation, this interrupt function is run twice, so take that into consideration for 
   //calculating RPM
   //Update count
      rpmcount++;
 }

void setup()
 {
   lcd.begin(16, 2);  // intialise the LCD

   //Interrupt 0 is digital pin 2, so that is where the IR detector is connected
   //Triggers on FALLING (change from HIGH to LOW)
   attachInterrupt(0, rpm_fun, FALLING);

   //Turn on IR LED
   pinMode(ledPin, OUTPUT);
   digitalWrite(ledPin, HIGH);

   rpmcount = 0;
   rpm = 0;
   timeold = 0;
 }

 void loop()
 {
   //Update RPM every second
   delay(1000);
   //Don't process interrupts during calculations
   detachInterrupt(0);
   //Note that this would be 60*1000/(millis() - timeold)*rpmcount if the interrupt
   //happened once per revolution instead of twice. Other multiples could be used
   //for multi-bladed propellers or fans
   rpm = 30*1000/(millis() - timeold)*rpmcount;
   timeold = millis();
   rpmcount = 0;

   //Print out result to lcd
   lcd.clear();
   lcd.print("RPM=");
   lcd.print(rpm);

   //Restart the interrupt processing
   attachInterrupt(0, rpm_fun, FALLING);
  }


Note:
This code reading rpm with 2 propeller at the motor. This mean 2 cut of the infrared beam will count as 1 revolution. You can modify this line to suit your use;
rpm = 30*1000/(millis() – timeold)*rpmcount;

woensdag 26 november 2014

Foto's voor speeddate

Foto's prototype voor speeddate






Scherm - concept

Scherm - prototype


Dit is niet goed! De auto staat niet in het midden, de kinderen moeten beter samenwerken.



Dit is goed... De ledjes zullen 1 voor 1 beginnen branden. Hou dit bv. 20 meter vol, en geef elkaar de hand of maak contact met elkaar. Dan zal er een licht beginnen flikkeren boven op de machine. Goed samengewerkt.

dinsdag 25 november 2014

Hendels monteren

Als hendels hebben we 2 rollager systemen uit 2 fietsen gehaald. Dit was afval dus hebben we geen onnodige vervuiling / kosten moeten doen. Deze hebben we erin gemonteerd met klemming en een extra plank langs de binnenkant van de bovenbak.



2de schilderlaag




Genormaliseerde afmetingen + 1ste schilderlaag

1ste schilderlaag




Afmetingen Ruzie-Oplosser

Voor de juiste lengtes (vooral de hoogte) hebben we ons gebaseerd op de DIN-normen. De ellebooghoogte van het kind is ongeveer de hoogte waar het middelpunt van de hendel zich bevindt. En ook voor de lengte van het handvat hebben we ook rekening gehouden met de gemiddelde breedte van de hand. We hebben ons eerst gebaseerd op 12 jarigen (6de leerjaar), maar in het achterhoofd ook rekening gehouden met de jaren voor het 6de leerjaar. Bv. de kindjes die in het 1ste leerjaar zitten zijn de kleinsten, dus ook hiervan hebben we de DIN-norm bekeken.

6de leerjaar


 1ste leerjaar





maandag 24 november 2014

Concept

Concept om uit te werken


Langs beide kanten (linkerkant & rechterkant) is een wiel bevestigd met een handvat. 
Aan de voorkant van de ruzie-oplosser is er een wijzermeter waar er een autootje aan bevestigd is. (We willen het concept van autostrade nabootsen). De auto moet zo lang mogelijk in het midden blijven, en dit gebeurd door langs beidde kanten aan de zelfde snelheid te draaien. De bedoeling is dat de 2 kindjes dit een volledige ledstrip volhouden. (Rond de wijzer met auto) Wanneer de snelheid van beidde kanten niet dezelfde is, dan zal het autootje meer naar de linker of rechter kant gaan en zal de ledstrip niet verder vol lopen, maar enkele leds terugkeren. Wanneer de ledstrip vol is dan springt er een duim uit de bovenkant van de ruzie-oplosser. Hiermee hebben ze leren samenwerken en aan teamwork gedaan = vriendschap.

vrijdag 14 november 2014