... "video grabber"
... Ik sta er niet altijd bij stil dat het digitaliseren van de baan iets is wat bijvoorbeeld al in de jaren 80 werd gedaan.
Dit ga ik wel volgen
// AMSregelaar.ino// regelt 2 auto's mbv een halve L298N dual H bridge module en 2 potmeters//// ================================= [include libraries ] ==========================================#include <LiquidCrystal.h> // Hitachi HD44780 LCD library// ================================= [global variables ] ==========================================const byte LCDRSpin = 12; // LCD pinnenconst byte LCDEnpin = 11;const byte LCDD4pin = 4; // dataconst byte LCDD5pin = 5;const byte LCDD6pin = 6;const byte LCDD7pin = 7;LiquidCrystal lcd(LCDRSpin, LCDEnpin, LCDD4pin, LCDD5pin, LCDD6pin, LCDD7pin);//// input pins met potmeterconst byte speed1pin = A1; // snelheid auto 1 ++/-- met potmeterconst byte speed2pin = A2; // snelheid auto 2 ++/-- met potmeter// output pins motor control H-bridgeconst byte auto1pin = 8; // auto 1 op rijstrook A, '0' = stop, '1' = rijdenconst byte auto2pin = 9; // auto 2 op rijstrook Aconst byte pulstijd = 10; // pulslengte bij 50 Hz = 1/50 = 20/1000 = 20 ms = 10 msec +puls + 10 msec -puls//word snelheid;word rijtijd;// +5 V|--------| |-----| |---|// | | | | | | |// 0 -| |--| |--------| |-----| |--------| |-------| |-------|// | | | | | | | | |// -5 V |--| | |--| | |---| |// | | | | | |// PWM deel msec | 8 | 2| 2| 8 | 5 | 5 | 2| 8 | 3 | 7 | 3 | 7 |// hoog/laag freq msec | 10 | 10 | 10 | 10 | 10 | 10 |// hoog + laag msec | 20 | 20 | 20 |// ==============================================================================================================void disp(word s, byte r){ // regel 1 = 0 Subroutine om tekst op LCD te laten zien lcd.setCursor(0, r-1); // laat s zien op regel r van display lcd.print("snelheid "); lcd.print(r,DEC); lcd.print(": "); lcd.print(s, DEC); lcd.print(" ");}// ========================== [set up ] ========================================================================//void setup() { lcd.begin(16, 2); // set up LCD 16 karakters, 2 regels lcd.clear(); pinMode(LED_BUILTIN, OUTPUT); pinMode(speed1pin,INPUT); // joystick potmeter snelheid auto 1 pinMode(speed2pin,INPUT); // joystick potmeter snelheid auto 2 pinMode(auto1pin,OUTPUT); // aansturing H brug pinMode(auto2pin,OUTPUT); digitalWrite(auto1pin,LOW); // auto 1 uit digitalWrite(auto2pin,LOW); // auto 2 uit //Serial.begin(9600); // open serial port 9600 bps: }// ========================= [ main ] ============================================================================void loop() { digitalWrite (auto1pin,HIGH); // laat auto 1 rijden, kijk ondertussen naar +/- joystick digitalWrite(LED_BUILTIN, HIGH); // ingebouwde LED loopt mee met auto 1 //snelheid = analogRead(speed1pin)/10; // potmeter; waarde 0..1023/10 = 0..102 //disp(snelheid,1); // laat snelheid 1 zien op regel 1 van lcd //Serial.print("snelheid 1: "); // test //Serial.println(snelheid); // test //rijtijd = snelheid/10; // waarde 0..102/10 ==> puls 0..10 msec rijtijd = analogRead(speed1pin)/100; // waarde 0..1023/100 ==> puls 0..10 msec delay (rijtijd); // laat auto 1 rijden gedurende 'rijtijd1' = 0..10 msec digitalWrite(auto1pin,LOW); // stop auto 1 digitalWrite(LED_BUILTIN, LOW); // ingebouwde LED loopt mee met auto 1 delay (pulstijd - rijtijd); // gedurende rest pulstijd, totaal 10 msec digitalWrite(auto2pin,HIGH); // laat auto 2 rijden, kijk ondertussen naar joystick //snelheid = analogRead(speed2pin)/10; // potmeter; waarde 0..1023/10 = 0..102 //disp(snelheid,2); // laat snelheid 2 zien op regel 2 van lcd //Serial.print("Snelheid 2: "); //Serial.println(snelheid); //rijtijd = snelheid/10; // waarde 0..102/10 ==> puls 0..10 msec rijtijd = analogRead(speed2pin)/100; // waarde 0..1023/100 ==> puls 0..10 msec delay (rijtijd); // laat auto 2 rijden gedurende 'rijtijd2' = 0..10 msec digitalWrite(auto2pin,LOW); // stop auto 2 delay (pulstijd - rijtijd); // gedurende rest pulsijd// LOOP // voor altijd}// ==========================[ end main ] ========================================================================
// AMScontrollerPWM.ino//// controls 2x 2 Faller AMS cars in same lane// using L298N dual H bridge module and 4 (slide) potmeters//// ================================= [include libraries ] ==========================================// none// ================================= [global variables ] ==========================================//// input pins potmetersconst byte speed6pin = A0; // speed car 6 ++/-- potmeterconst byte speed1pin = A1; // speed car 1 ++/-- potmeterconst byte speed2pin = A2; // speed car 2 ++/-- potmeterconst byte speed3pin = A3; // speed car 3 ++/-- potmeterconst byte speed4pin = A4; // speed car 4 ++/-- potmeterconst byte speed5pin = A5; // speed car 5 ++/-- potmeter//// output pins H-bridge 1 (PWM)const byte car1pin = 11; // lane A, cars 1 & 2const byte car2pin = 10; const byte car3pin = 6; // lane B, cars 3 & 4const byte car4pin = 5;// output pins H-bridge 2 (PWM) const byte car5pin = 4; // lane C, cars 5 & 6const byte car6pin = 9; //const byte pulsetime = 10; // pulse length at 50 Hz = 1/50 sec = 0.002 sec = 20 ms = 10 msec +puls + 10 msec -puls//// =========================== [ set up ]=========================================================================void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite (LED_BUILTIN, HIGH); // built-in LED on pinMode(speed1pin,INPUT); // potmeter speed car 1 pinMode(speed2pin,INPUT); // potmeter speed car 2 pinMode(speed3pin,INPUT); // potmeter speed car 3 pinMode(speed4pin,INPUT); // potmeter speed car 4 pinMode(speed5pin,INPUT); // potmeter speed car 5 pinMode(speed6pin,INPUT); // potmeter speed car 6 pinMode(car1pin,OUTPUT); // control of H bridge 1, cars 1..4 pinMode(car2pin,OUTPUT); // all pins output pinMode(car3pin,OUTPUT); pinMode(car4pin,OUTPUT); pinMode(car5pin,OUTPUT); // control of H bridge 2, cars 5,6 pinMode(car6pin,OUTPUT); digitalWrite(car1pin,LOW); // all cars stop digitalWrite(car2pin,LOW); digitalWrite(car3pin,LOW); digitalWrite(car4pin,LOW); digitalWrite(car5pin,LOW); digitalWrite(car6pin,LOW); delay (1000); // wait 1 sec digitalWrite (LED_BUILTIN, LOW); // built-in LED off}// =========================== [ main ] ==========================================================================void loop() { // ADC value on potmeter speed pin = 0..1023 // divide by 4 to convert to pulse 0..255 ==> 0..100% duty cycle // // for '+' cars in lane A, B & C (cars 1, 3 & 5) digitalWrite (car1pin,LOW); analogWrite (car2pin,analogRead(speed1pin)/4); // + car 1 in lane A digitalWrite (car3pin,LOW); analogWrite (car4pin,analogRead(speed3pin)/4); // + car 1 in lane B digitalWrite (car5pin,LOW); analogWrite (car6pin,analogRead(speed5pin)/4); // + car 1 in lane C delay (pulsetime); // wait positive halfwave // for '-' cars in lane A B & C (cars 2, 4 & 6) digitalWrite (car2pin,LOW); analogWrite (car1pin,analogRead(speed2pin)/4); // - car 2 in lane A digitalWrite (car4pin,LOW); analogWrite (car3pin,analogRead(speed4pin)/4); // - car 2 in lane B digitalWrite (car6pin,LOW); analogWrite (car5pin,analogRead(speed6pin)/4); // - car 2 in lane C delay (pulsetime); // wait negative halfwave } // repeat forever // ==========================[ end main ] ========================================================================
Ik heb alle assen van de 1306 voorzien van stroomafnemers, een brugcel en een buffer-elco toegevoegd en een 7809 spanningsregelaar. De camera werkt nu zonder batterijtje, scheelt een hoop ruimte