Monday, February 24, 2014

Braț robotic #2

Am promis că vin cu actualizări despre minirobotul meu.

Primul post trecea în revistă piesele gata sosite de la imprimat și lansa speranța de a-l programa curând. Pentru că nu mai aveam răbdare și voiam să pun repede în aplicare ce doar în gând gândeam...am împrumutat un Arduino de la un coleg, al meu a făcut burn out - și iată! 


Ce vedeți aici e doar primul pas către un super robot..nu se mișcă grozav, daar:
  • știe stânga-dreapta, sau altfel spus, pot manevra yaw-ul
  • înainte-înapoi, adică rotații pe axa Ox, sau pitch..
  • prin apăsarea joystick-ului end-efectorul realizează o mișcare de strângere
Ce plănuiesc:
  • să realizez un PCB dedicat pentru a programa direct microcontrollerul, cu socket special pentru fiecare servo în parte
  • o bază mai profi decât două bucăți de lemn
  • sper un cod mai eficient
Apropo de cod, iată-l aici:
  #include <Servo.h> 
   
  Servo servo_h;  // create servo object to control horizontal movement
  Servo servo_v;   // create servo object to control horizontal movement
  Servo servo_eff; // create servo object to control the effector
   
  int buttonState = 0;         // variable for reading the pushbutton status
  int v = 1;
  int h = 0;  // analog pin used to connect the potentiometer
  int button = 12;
  int LED = 13;
  int val;    // variable to read the value from the analog pin 
   
  void setup() 
  { 
    pinMode(button, INPUT);
    pinMode(LED, OUTPUT);
    servo_h.attach(9);  // attaches the servo on pin 9 to the servo object 
    servo_v.attach(10);
    servo_eff.attach(11);
  } 
   
  void loop() 
  { 
    val = analogRead(h);            // reads the value of the potentiometer (value between 0 and 1023) 
    val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180) 
    servo_h.write(val);                  // sets the servo position according to the scaled value 
    delay(15);                           // waits for the servo to get there 
    
    val = analogRead(v);            // reads the value of the potentiometer (value between 0 and 1023) 
    val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180) 
    servo_v.write(val);                  // sets the servo position according to the scaled value 
    delay(15);                           // waits for the servo to get there 
    
    int pos = 0;
    buttonState = digitalRead(button);
    if(buttonState != HIGH)
    {
      digitalWrite(LED,HIGH);
      for(pos = 0; pos < 80; pos += 1)  // goes from 0 degrees to 180 degrees 
      {                                  // in steps of 1 degree 
        servo_eff.write(pos);              // tell servo to go to position in variable 'pos' 
        delay(15);                       // waits 15ms for the servo to reach the position 
      } 
      for(pos = 80; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
      {                                
        servo_eff.write(pos);              // tell servo to go to position in variable 'pos' 
        delay(15);                       // waits 15ms for the servo to reach the position 
      } 
       digitalWrite(LED,LOW);
   }
  } 


Am un alt proiect în derulare, de unde voi fura câteva idei despre placa de dezvoltare. Încet, încet prinde formă. Acel joystick grozav din video l-am primit de la http://www.diginesis.com/, am fost cu ei într-un weekend și am pilotat un hexacopter, a fost o experiență grozavă. Cum i-am cunoscut, și ce plănuim împreună cu altă ocazie. Sunt foaarte recunoscător pentru acel joystick :)


Gata! Înghețată!

Friday, February 7, 2014

Thinking

Am examen luni.

Și răsfoind notițele mi-am amintit de primul laborator la această materie. Aveam o profă nouă, cred ca are cu doi - trei ani mai mult decât noi, era așezată la catedră. Apoi direct în pâine intrat-am, tabele, grafice, exerciții. 

Ce m-a mirat cel mai mult a fost atitudinea ei. Nu s-a prezentat, ne trata puțin de sus, deși și acum, dupa 4 luni, tot cu doi - trei ani e mai în vârstă decât noi. Cred că nici dacă ar avea nepoți nu ar trebui să se comporte astfel. A fost un soi de prostituție universitară. Eu vin, vă predau, nu mă cunoști, nu te cunosc, ne facem treaba, la revedere! 

Cum ar fi ca în primul curs proful să-și spună numele, iar în grupuri mai restrânse, ca un laborator, de exemplu, să facem cunoștință? Sunt o mulțime de jocuri GTKEO, ce ar fi atât de complicat? Nu mă interesează neapărat poveștile din copilărie, dar un nivel minim de legătură ar putea fi stabilit. 

Și acești profi sunt tineri. 

Monday, February 3, 2014

Uneori poezie

Had I the heavens’ embroidered cloths,
Enwrought with golden and silver light,
The blue and the dim and the dark cloths
Of night and light and the half light,
I would spread the cloths under your feet:
But I, being poor, have only my dreams;
I have spread my dreams under your feet;
Tread softly because you tread on my dreams.


Versurile acestea au zbărlit părul de pe mâna cuiva, odată, în anii '60. Își căuta Elementul.

Got me thinking.