PWS robotica
-
Beste Daniël en Jaco,
Ik denk dat jullie graag zo ver mogelijk kunnen kijken. Om deze reden denk ik dat de sensor die tot 150 cm kan kijken beter geschikt is voor jullie robot. Wat maakt jullie twijfelen tussen de twee?
Groetjes,
Joost -
Beste JoostR,
Wij hebben al een ultrasone sensor voor afstand. De IR sensor is om leven te meten. Omdat die nogal duur is leek ons een goedkopere, minder goede voor nu een goede oplossing.
Gr,
Daniël en Jaco -
Beste Daniël,
De ultrasone sensor is inderdaad voor afstand maar deze hoeft niet ver te kunnen kijken om te zorgen dat de robot nergens tegenaan botst.
De IR sensor moet leven kunnen detecteren maar ook op langere afstand (bijvoorbeeld aan het eind van de gang) toch?
Ik hoop dat jullie een goede hebben gevonden!
Groetjes,
Joost -
Beste JoostR,
Dat klopt, maar omdat de sensor voor het meten van leven nogal prijzig is willen we liever voor een goedkopere minder sterke gaan. Omdat het in ons geval toch niet in de praktijk wordt toegepast.
Gr,
Daniël en Jaco -
Goed idee, succes met de uitwerking!
Ik hoor graag wanneer het allemaal gelukt is.
Groetjes,
Joost -
Wij hebben nu alle onderdelen besteld en binnen, maar we weten eigenlijk niet welke kabels we nodig hebben en we eventueel iets van weerstandjes nodig?
Gr,
Daniël en Jaco -
Beste Daniël en Jaco,
De kabels kunnen simpele draadjes zijn die gesoldeerd moeten worden. Weestandjes zou je niet nodig moeten hebben maar dit zou ik voor de zekerheid wel controleren. Normaal gesproken zitten er wel duidelijk gebruiksaanwezingen bij de producten, was dit nu niet het geval? Misschien is het jullie inmiddels ook al gelukt?
Ik hoor graag van jullie!
Groetjes,
Joost -
Er zat geen gebruiksaanwijzing bij, maar we hebben het inmiddels al redelijk goed voor mekaar.
Het enige probleem nu is de code voor de IR sensor die leven meet, daar komen wij niet uit. Heb jij daar ideeën voor?
We hebben onze code geprobeerd voor de ultrasone sensor, zodat hij autonoom kan rijden, maar die werkt niet goed, we gebruiken twee dc motoren met 3V, zonder motor shield.Gr,
Jaco en Daniël -
Beste Jaco en Daniël,
Wat voor waardes geeft de IR sensor terug? Ik neem dat deze waarde representatief is voor een bepaalde temperatuur?
Wat betreft de code voor de ultrasone sensor, kunnen jullie me hier misschien iets meer over vertellen? Wat werkt er niet goed? En wat is jullie aanpak? Misschien kunnen jullie een stukje van jullie code delen.
Groetjes,
Joost -
We hebben eigenlijk nog helemaal niet naar de Ir sensor gekeken, omdat we al bij de ultrasone sensor vastliepen.
We hebben voor onze code gekeken naar voorbeelden op internet en daaruit wat geprobeerd te maken, maar we zitten met het probleem van het benoemen van de motoren. En toen ik dat ging aanpassen werkte de hele code niet meer en kunnen we net zo goed opnieuw beginnen met schrijven. Heb jij miss een goed voorbeeld voor ons dat we kunnen volgen?
Onze code tot nu toe:#include <Servo.h> //include Servo library #define trigPin 12// define the pins of your sensor #define echoPin 13 int LeftMotorPin = 7; // set up motors. int RightMotorPin = 6; void setup() { Serial.begin(9600); // begin serial communitication Serial.println("Motor test!"); pinMode(trigPin, OUTPUT);// set the trig pin to output (Send sound waves) pinMode(echoPin, INPUT);// set the echo pin to input (recieve sound waves) motor1.setSpeed(105); //set the speed of the motors, between 0-255 motor2.setSpeed (105); } void loop() { long duration, distance; // start the scan digitalWrite(trigPin, LOW); delayMicroseconds(2); // delays are required for a succesful sensor operation. digitalWrite(trigPin, HIGH); delayMicroseconds(10); //this delay is required as well! digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1;// convert the distance to centimeters. if (distance < 25)/*if there's an obstacle 25 centimers, ahead, do the following: */ { Serial.println ("Close Obstacle detected!" ); Serial.println ("Obstacle Details:"); Serial.print ("Distance From Robot is " ); Serial.print ( distance); Serial.print ( " CM!");// print out the distance in centimeters. Serial.println (" The obstacle is declared a threat due to close distance. "); Serial.println (" Turning !"); motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. motor2.run (BACKWARD); } else { Serial.println ("No obstacle detected. going forward"); delay (15); motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! motor2.run(FORWARD);
Gr,
Daniël en Jaco -
Beste Daniël en Jaco,
Zijn jullie hier al verder mee gekomen? Welke website gebruiken jullie op dit moment als voorbeeld? Kunnen jullie hier een link van geven?Ik kan jullie ook aanraden om met versies van je code te werken in plaats van steeds jullie laatste versie aan te passen om te voorkomen dat de code 'kapot' gaat.
Groetjes,
Joost -
-
Beste Jaco en Daniël,
Hier vinden jullie de bestanden die we gebruiken voor de workshop robotica. Misschien dat jullie hier wat meer informatie uit kunnen halen.
Om jullie echt te kunnen helpen ben ik bang dat jullie specifiekere vragen moeten stellen. Waar lopen jullie nu precies op vast? Wat werkt er wel en wat niet? Wat begrijpen jullie niet?
Ik hoor graag van jullie.
Groetjes,
Joost -
Beste JoostR,
We lopen eigenlijk met de de huidige code, dat is de code die we in een eerdere post hebben gegeven, tegen deze fouten aan:
Arduino: 1.6.13 (Windows 10), Board:"Arduino/Genuino Uno"
F:\Arduino\Sketches\sketch_dec27a\sketch_dec27a.ino: In function 'void setup()': sketch_dec27a:13: error: 'motor1' was not declared in this scope motor1.setSpeed(105); //set the speed of the motors, between 0-255 ^ sketch_dec27a:14: error: 'motor2' was not declared in this scope motor2.setSpeed (105); ^ F:\Arduino\Sketches\sketch_dec27a\sketch_dec27a.ino: In function 'void loop()': sketch_dec27a:37: error: 'motor1' was not declared in this scope motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. ^ sketch_dec27a:37: error: 'FORWARD' was not declared in this scope motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. ^ sketch_dec27a:38: error: 'motor2' was not declared in this scope motor2.run (BACKWARD); ^ sketch_dec27a:38: error: 'BACKWARD' was not declared in this scope motor2.run (BACKWARD); ^ sketch_dec27a:44: error: 'motor1' was not declared in this scope motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! ^ sketch_dec27a:44: error: 'FORWARD' was not declared in this scope motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! ^ sketch_dec27a:45: error: 'motor2' was not declared in this scope motor2.run(FORWARD); ^ exit status 1 'motor1' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
Bij deze fouten weten wij eigenlijk niet wat we moeten doen, kan jij ons verder helpen?
Gr,
Daniël en Jaco -
Beste Daniel en Jaco,
Kan het komen doordat jullie je motoren leftMotorPin en rightMotorPin noemen en ze vervolgens aanroepen met motor1 en motor2?
Groetjes,
Joost -
Beste JoostR ,
Dat had ik al gedaan, maar daarna kreeg ik het volgende:
Arduino: 1.6.13 (Windows 7), Board:"Arduino/Genuino Uno"E:\Arduino\Sketches\sketch_feb08a\sketch_feb08a.ino: In function 'void setup()': sketch_feb08a:13: error: request for member 'setSpeed' in 'motor1', which is of non-class type 'int' motor1.setSpeed(105); //set the speed of the motors, between 0-255 ^ sketch_feb08a:14: error: request for member 'setSpeed' in 'motor2', which is of non-class type 'int' motor2.setSpeed (105); ^ E:\Arduino\Sketches\sketch_feb08a\sketch_feb08a.ino: In function 'void loop()': sketch_feb08a:37: error: request for member 'run' in 'motor1', which is of non-class type 'int' motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. ^ sketch_feb08a:37: error: 'FORWARD' was not declared in this scope motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. ^ sketch_feb08a:38: error: request for member 'run' in 'motor2', which is of non-class type 'int' motor2.run (BACKWARD); ^ sketch_feb08a:38: error: 'BACKWARD' was not declared in this scope motor2.run (BACKWARD); ^ sketch_feb08a:44: error: request for member 'run' in 'motor1', which is of non-class type 'int' motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! ^ sketch_feb08a:44: error: 'FORWARD' was not declared in this scope motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! ^ sketch_feb08a:45: error: request for member 'run' in 'motor2', which is of non-class type 'int' motor2.run(FORWARD); ^ exit status 1 request for member 'setSpeed' in 'motor1', which is of non-class type 'int' This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
Helaas kan ik hier echt niks mee.
Is het misschien handiger om een afspraak te maken op de TU?
Als dit kan het liefst zo snel mogelijk, want er komt een deadline aan op 22 feb.Gr,
Daniël & Jaco -
@DaniëlV Ha jongens, Joost is deze week op vakantie, maar vanaf maandag kunnen jullie een reactie van hem verwachten.
Groetjes,
Juul
-
Beste @DaniëlV,
Excuses voor de late reactie, zoals Juul al liet weten wat ik op vakantie... Het probleem zit hem er bij jullie in dat jullie de motoren als int (integer) definiëren, maar hier geen functies als
setSpeed
op aangeroepen kunnen worden omdat integers simpelweg getallen zijn.In de code van jullie voorbeeld zie ik het volgende staan:
#include <AFMotor.h> //import your motor shield library #define trigPin 12 // define the pins of your sensor #define echoPin 13 AF_DCMotor motor1(1,MOTOR12_64KHZ); // set up motors. AF_DCMotor motor2(2, MOTOR12_8KHZ);
Hebben jullie dit al geprobeerd? En begrijpen jullie wat ik bedoel met dat je geen functies als
setSpeed
enrun
aan kunt roepen op integers?Ik hoop dat jullie hier wat aan hebben en ik hoor graag van jullie! Wanneer moet het pws af zijn?
Groetjes,
Joost