User Tools

Site Tools


berend

Berend

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 ;-)

Wat krijg je als je meedoet aan de workshop :

  • lasergesneden houten robot frame (halve plaat 3mm triplex = 1,50 )
  • Arduino Nano Strong (3,05)
  • 4 MG90S Servo's (1,75 x 4 = 7,00)
  • HC-SR04 ultrasone afstendmeter (1,10)
  • beetje houtlijm voor de te lijmen delen
  • 10 schroefjes voor het vastzetten van de arduino, de servo's en de voeten

zelf meenemen :

  • Een lang Micro USB snoer
  • Een laptop met werkende arduino suite (regel dit van tevoren!)
  • 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 goede opties : AliExpress conrad )

Wat houdt de workshop in :

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.

berend_handleiding.pdf

Arduino Type :

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)”

Code

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); 
    }
  }
  
}
berend.txt · Last modified: 2019/04/16 15:48 by wrusman