Het lasergesneden houten looprobotje
De oorsprong van deze robot is Otto en is door de hackerspace “Backspace” in Duitsland vertaald naar Otto LC ,de lasergesneden houten versie.
De tekeningen die je daar kunt genereren heb ik aangepast aan de MG90s servo's met metalen tandwielen in plaats van de SG90 servo's met plastic tandwielen en een arduino nano strong in plaats van een standaard arduino nano met breakout board.
Hij is dus wat robuuster gemaakt (zoals we dat doen in het noorden), welke naam past daar beter bij dan Berend
Tijdens de workshop krijg je uitleg over de verschillende componenten die gebruikt worden, bouw je het robotje en krijg je voorbeeld programma's die uitleggen hoe je de verschillende componenten aanstuurt. Uiteraard is er ruimte zat om hierna nog tot diep in de nacht te stoeien met de bewegingen die er voor zorgen dat Berend gaat lopen en reageren op obstakels.
Er is een kans dat Mac en Windows gebruikers extra drivers moeten installeren zodat de Arduino door hun computers herkent wordt. Op Linux zouden de drivers standaard beschikbaar moeten zijn. Het type Arduino is een “Arduino Nano” met processor type “ATmega328p (old bootloader)”
basis code voor lopen :
#include <Servo.h> Servo lefthip; // create servo object to control the left hip servo Servo leftfoot; // create servo object to control the left foot servo Servo righthip; // create servo object to control the right hip servo Servo rightfoot; // create servo object to control the right foot servo void setup() { lefthip.attach(2); // attaches the servo on pin 2 to the left hip servo object leftfoot.attach(3); // attaches the servo on pin 3 to the left foot servo object righthip.attach(5); // attaches the servo on pin 5 to the right hip servo object rightfoot.attach(4); // attaches the servo on pin 4 to the right foot servo object lefthip.write(90); // center the servo leftfoot.write(90); // center the servo righthip.write(90); // center the servo rightfoot.write(90); // center the servo } void loop() { stepforward(10); delay(10000); } void stepforward(int steps) { moveServo(rightfoot,90,60); moveServo(leftfoot,90,50); moveServo(lefthip,90,60); moveServo(righthip,90,60); for (int x=0; x <= steps; x++){ moveServo(leftfoot,50,90); moveServo(rightfoot,60,90); moveServo(leftfoot,90,120); moveServo(rightfoot,90,130); moveServo(righthip,60,120); moveServo(lefthip,60,120); moveServo(rightfoot,130,90); moveServo(leftfoot,120,90); moveServo(rightfoot,90,60); moveServo(leftfoot,90,50); moveServo(lefthip,120,60); moveServo(righthip,120,60); } moveServo(leftfoot,50,90); moveServo(righthip,60,90); moveServo(lefthip,60,90); moveServo(rightfoot,60,90); } 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); } } }