Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Aufgabe 10 – Crazy Machine

4. Dezember 2011

Crazy Machine Insgesamt hatten wir etwa einen Tag zeit, eine Maschine zu bauen, die mit ihrer Umgebung mittels eines frei wählbaren Sensors kommuniziert. im Zweierteam entschieden wir uns, einen kleinen Actionroboter zu bauen, der einem Judokämpfer gleicht. Zu dem soll er wie jeder Judokämpfer den Arm heben können. Wir wählten den Entfernungssensor. Dieser eignete sich besonders gut als Augenersatz. Weiter verbauten wir einen Servo, der den Arm um etwa 60 Grad nach oben drehen soll. Was aussieht wie ein Roboter nach einem Autounfall ist voll funktionsfähig. Nähert sich eine Person dem kleinen Roboter, hebt dieser seinen Arm. Ursprünglich sollte er auch noch mit seinen LED-Zähnen blinken, doch es gab Programmiertechnisch einige Probleme, die dieses Vorhaben schlussendlich verhinderten (Delay-Problem). Natürlich durfte auch das passende Outfit nicht fehlen. Ein Kimono aus weissem Stoff und eine Kopfbinde sorgt für das gewisse Etwas (Programmer-Kompensation). Der Arduinocode für den Roboter:
<pre>#deinfe LED_1 1
#deinfe LED_2 2
#deinfe LED_3 3
#deinfe LED_4 4
#deinfe LED_5 5
#deinfe LED_6 6
#deinfe LED_7 7
#deinfe LED_8 8
#deinfe LED_9 9
#deinfe LED_10 10


#include <Servo.h>
Servo myServo;

#define SERVO_PIN 9
#define IN_PIN 0

int oldVal = 0;
int newVal = 0;

void setup ()
{ 
  myServo.attach(SERVO_PIN);
  Serial.begin(9600);
}

void loop ()
{
  newVal = analogRead(IN_PIN);
  newVal = (0.98*oldVal)+(0.02*newVal);
  
  myServo.write(map(newVal, 0, 500, 0, 179));
  my
  
  Serial.print(myServo.read());
  
  Serial.print(" ");
  Serial.println(newVal);
  oldVal = newVal;
}