This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
berend [2019/03/20 10:56] – [Berend] wrusman | berend [2019/04/16 15:42] – [Wat krijg je als je meedoet aan de workshop :] wrusman | ||
---|---|---|---|
Line 4: | Line 4: | ||
De oorsprong van deze robot is [[https:// | De oorsprong van deze robot is [[https:// | ||
- | De tekeningen die je daar kunt genereren heb ik aangepast aan de MG90s servo' | + | De tekeningen die je daar kunt genereren heb ik aangepast aan de MG90s servo' |
{{: | {{: | ||
Line 13: | Line 13: | ||
* lasergesneden houten robot frame (halve plaat 3mm triplex = 1,50 ) | * lasergesneden houten robot frame (halve plaat 3mm triplex = 1,50 ) | ||
- | * Arduino Nano Strong (2,63) | + | * Arduino Nano Strong (3,05) |
- | * 4 MG90S Servo' | + | * 4 MG90S Servo' |
- | * HC-SR04 ultrasone afstendmeter (0,69) | + | * HC-SR04 ultrasone afstendmeter (1,10) |
* beetje houtlijm voor de te lijmen delen | * beetje houtlijm voor de te lijmen delen | ||
* 10 schroefjes voor het vastzetten van de arduino, de servo' | * 10 schroefjes voor het vastzetten van de arduino, de servo' | ||
Line 25: | Line 25: | ||
* Een laptop met werkende arduino suite (regel dit van tevoren!) | * Een laptop met werkende arduino suite (regel dit van tevoren!) | ||
* Extra dingen die je op of in Berend wilt plakken / lijmen / laseren / whatever | * Extra dingen die je op of in Berend wilt plakken / lijmen / laseren / whatever | ||
- | * Optioneel Een powerbank of andere batterij als je hem meteen los wilt laten lopen. De arduino slikt 7-12v via de power connector of 5v via de usb plug (misschien | + | * Optioneel Een powerbank of andere batterij als je hem meteen los wilt laten lopen. De arduino slikt 7-12v via de power connector of 5v via de usb plug (misschien goede opties |
==== Wat houdt de workshop in : ==== | ==== Wat houdt de workshop in : ==== | ||
Line 36: | Line 36: | ||
De kosten (opgeteld van hierboven) voor de onderdelen zijn afgerond 12,- per deelnemer\\ | De kosten (opgeteld van hierboven) voor de onderdelen zijn afgerond 12,- per deelnemer\\ | ||
Voor niet-deelnemers geld er een toeslag van 10,- | Voor niet-deelnemers geld er een toeslag van 10,- | ||
+ | |||
+ | ==== Drivers : ==== | ||
+ | Er is een grote kans dat Mac en Windows gebruikers extra [[https:// | ||
+ | |||
+ | === Code === | ||
+ | basis code voor lopen : | ||
+ | < | ||
+ | #include < | ||
+ | |||
+ | Servo lefthip; | ||
+ | Servo leftfoot; | ||
+ | Servo righthip; | ||
+ | Servo rightfoot; | ||
+ | |||
+ | |||
+ | void setup() { | ||
+ | lefthip.attach(2); | ||
+ | leftfoot.attach(3); | ||
+ | righthip.attach(5); | ||
+ | rightfoot.attach(4); | ||
+ | lefthip.write(90); | ||
+ | leftfoot.write(90); | ||
+ | righthip.write(90); | ||
+ | rightfoot.write(90); | ||
+ | } | ||
+ | |||
+ | |||
+ | void loop() { | ||
+ | stepforward(10); | ||
+ | delay(10000); | ||
+ | } | ||
+ | |||
+ | void stepforward(int steps) | ||
+ | { | ||
+ | moveServo(rightfoot, | ||
+ | moveServo(leftfoot, | ||
+ | |||
+ | moveServo(lefthip, | ||
+ | moveServo(righthip, | ||
+ | |||
+ | for (int x=0; x <= steps; x++){ | ||
+ | |||
+ | moveServo(leftfoot, | ||
+ | moveServo(rightfoot, | ||
+ | moveServo(leftfoot, | ||
+ | moveServo(rightfoot, | ||
+ | | ||
+ | moveServo(righthip, | ||
+ | moveServo(lefthip, | ||
+ | | ||
+ | moveServo(rightfoot, | ||
+ | moveServo(leftfoot, | ||
+ | moveServo(rightfoot, | ||
+ | moveServo(leftfoot, | ||
+ | |||
+ | moveServo(lefthip, | ||
+ | moveServo(righthip, | ||
+ | } | ||
+ | |||
+ | moveServo(leftfoot, | ||
+ | moveServo(righthip, | ||
+ | moveServo(lefthip, | ||
+ | moveServo(rightfoot, | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | void moveServo(Servo servoName, int oldAngle, int newAngle) | ||
+ | { | ||
+ | if (newAngle > oldAngle){ | ||
+ | for (int x=oldAngle; x <= newAngle; x++) | ||
+ | { | ||
+ | servoName.write(x); | ||
+ | delay(10); | ||
+ | } | ||
+ | } | ||
+ | if (newAngle < oldAngle){ | ||
+ | for (int x=oldAngle; x >= newAngle; x--) | ||
+ | { | ||
+ | servoName.write(x); | ||
+ | delay(10); | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||