Robotarm van een bureaulamp (IKEA Tertial houwer) (6 / 7 stap)

Stap 6: Software (Arduino schets)


De Arduino schets

De code van de Arduino heeft twee functies:

  1. Opnemen van de analoge ingangen van de servo's potentiometers (opnameknop)
  2. Bedienen van de servo's met de opgenomen waarden (knop afspelen)

Notities:

  • De geregistreerde waarden worden opgeslagen in het EEPROM geheugen van de Arduino - beperkt de opname (toevoeging van SD-kaart zal oplossen).
  • De schets wordt gevraagd de opgenomen waarden en gespeeld, in real-time, naar de seriële MONITOR, maar dit is niet nodig voor de werking van de schets.
  • Goede tutorial voor feedback van de analoge servo kan worden gevonden hier

De Arduino sketch:
Download Arduino schets

(http://www.KeerBot.com)
Voorbeeldcode voor het opnemen en afspelen van servo beweging met een analoge feedback-servo
5 Dec2013, met behulp van handmatig gehackt servo 's

#include < Servo.h >
#include < EEPROM.h >

#define CALIB_MAX 512
#define CALIB_MIN 100
#define SAMPLE_DELAY 25 / / in ms, 50 MS lijkt goed

uint8_t recordButtonPin = 12;
uint8_t playButtonPin = 7;
uint8_t één = 9, twee = 10, drie = 11;
uint8_t OneIn = A0, TwoIn = A1, ThreeIn = A2;
uint8_t ledPin = 13;

Servo myServo1, myServo2, myServo3;

VOID Setup {}
Serial.begin(9600);
pinMode (recordButtonPin, INPUT);
digitalWrite (recordButtonPin, hoge);
pinMode (playButtonPin, INPUT);
digitalWrite (playButtonPin, hoge);
pinMode (ledPin, OUTPUT);
uint16_t addr = 0;
Serial.println ("Servo RecordPlay, 3 servo's versie");
Serial.println ("door http://www.KeerBot.com");
}

void loop {}
Als (! digitalRead(recordButtonPin)) {}
delay(10);
wachten voor vrijgegeven
terwijl (! digitalRead(recordButtonPin));
vertraging(20);
OK vrijgegeven!
Serial.println("Recording");
uint16_t addr = 0;
digitalWrite (ledPin, hoge);
pinMode (OneIn, INPUT);
pinMode (TwoIn, INPUT);
pinMode (ThreeIn, INPUT);
terwijl (digitalRead(recordButtonPin)) {}

uint16_t een = analogRead(OneIn);
uint16_t b = analogRead(TwoIn);
uint16_t c = analogRead(ThreeIn);

Serial.Print ("lezen analoog:"); Serial.Print(a); Serial.Print (","); Serial.Print(b); Serial.Print (","); Serial.Print(c); Serial.Print (",");
een
Als (een < CALIB_MIN) een = CALIB_MIN;
Als (een > CALIB_MAX) een = CALIB_MAX;
een kaart = (a, CALIB_MIN, CALIB_MAX, 0, 255);
twee
Als (b < CALIB_MIN) b = CALIB_MIN;
Als (b > CALIB_MAX) b = CALIB_MAX;
b = kaart (b, CALIB_MIN, CALIB_MAX, 0, 255);
drie
Als (c < CALIB_MIN) c = CALIB_MIN;
Als (c > CALIB_MAX) c = CALIB_MAX;
c = kaart (c, CALIB_MIN, CALIB_MAX, 0, 255);

Serial.Print ("->"); Serial.Print(a); Serial.Print (","); Serial.Print(b); Serial.Print (","); Serial.println(c);
EEPROM.write(addr, a);
addr ++;
EEPROM.write (addr, b);
addr ++;
EEPROM.write (addr, c);
addr ++;
Als (addr == 512) breken;
delay(SAMPLE_DELAY);
}
Als (addr! = 512) EEPROM.write (addr, 255);
digitalWrite (ledPin, laag);
Serial.println("Done");
delay(250);
}

Als (! digitalRead(playButtonPin)) {}
delay(10);
wachten voor vrijgegeven
terwijl (! digitalRead(playButtonPin));
vertraging(20);
OK vrijgegeven!
Serial.println("Playing");
uint16_t addr = 0;
myServo1.attach(one);
myServo2.attach(two);
myServo3.attach(three);

terwijl (digitalRead(playButtonPin)) {}
Een
uint8_t x = EEPROM.read(addr);
Serial.Print ("EE lezen:"); Serial.Print(x);
Als (x 255 ==) breken;
x = kaart (x, 254, 0, 0, 180);
Serial.Print (","); Serial.Print(x); Serial.Print (",");
myServo1.write(x);
addr ++;
Twee
x = EEPROM.read(addr);
Serial.Print(x); Serial.Print (",");
Als (x 255 ==) breken;
x = kaart (x, 254, 0, 0, 180);
Serial.Print ("->"); Serial.Print(x); Serial.Print (",");
myServo2.write(x);
addr ++;
Drie
x = EEPROM.read(addr);
Serial.Print(x);
Als (x 255 ==) breken;
x = kaart (x, 254, 0, 0, 180);
Serial.Print (","); Serial.Print(x); Serial.println (",");
myServo3.write(x);
delay(SAMPLE_DELAY);
addr ++;

Als (addr == 512) breken;
}
Serial.println("-");
Serial.println ("Done lezen EE");
myServo1.detach();
myServo2.detach();
myServo3.detach();
delay(250);
}
}

Gerelateerde Artikelen

LED-desktop / werkruimte / toetsenbord lamp (IKEA Tertial houwer)

LED-desktop / werkruimte / toetsenbord lamp (IKEA Tertial houwer)

Dit instructable zal laten zien hoe je eenvoudig je ouderwetse desktop Tertial IKEA lamp te converteren naar een meer hedendaagse, energie efficiënte en beter uitziende werkruimte, desktop of toetsenbord verlichting apparaat.Opmerking: Dit is mijn ee
Bouwen van een goedkope Ikea NAS/Computer

Bouwen van een goedkope Ikea NAS/Computer

NAS: Network Attached StorageIKEA: Purveyors van nette, goedkope dingen.IKEA NAS: Weg-Cool, Low-Power, High-Capacity, netwerkopslag of computer voor algemeen gebruik.Update: Een beetje meer is te vinden op mijn website post: http://aaroneiche.com/200
Het omzetten van een regelmatige IKEA APPLARO-lamp in een mooie lamp.

Het omzetten van een regelmatige IKEA APPLARO-lamp in een mooie lamp.

Mijn kamergenoot kocht een paar IKEA APPLARO lampen en ik dacht dat zetten een aantal van mijn overgebleven kunst papier bovenop zou het er beter uitzien. En het zeker er beter uitzien. Het project duurde ongeveer 2,5-3 uur. U kunt dun papier dat nie
Koop 1 krijg een gratis Ikea plank houwer

Koop 1 krijg een gratis Ikea plank houwer

voor $60 ik een plank "Expedit" van Ikea pakte, het bleek te diep voor waar ik it...soooooooo wildeGoed excuus om te knippen spullen!Ik gesneden het midden ingedrukt de wond met twee 8" diepe planken die perfect passen.Opmerking: de rug van
Het bijhouden van een lichtbron met een Actuator

Het bijhouden van een lichtbron met een Actuator

.. .of misschien het moet worden genoemd "Met behulp van een oude zonnecel van een volledig gecorrodeerde tuin licht als een lichtsensor". :)In dit instructable, ik bouwen op mijn vorige en Toon u hoe kun je een actuator vinden de grootste licht
Goedkope & eenvoudige media projector met een gerecycleerde ikea lamp

Goedkope & eenvoudige media projector met een gerecycleerde ikea lamp

Het doel van het project is om te recyclen van een oude ikea lamp heb in iets meer stijlvolle. In mijn geval, ik wil een beter decoratieve lamp, maar met enkele wijziging kunt u hebt een diaprojector (powered by leds of standaardgloeilamp) of zelfs e
Transformatie van een wijzigen tabel in een vitrine

Transformatie van een wijzigen tabel in een vitrine

jaar geleden kochten we een "Sniglar" Ikea babytafel (foto in de volgende stap). Het frame is gemaakt van zeer mooie beuken houten balken, dus wanneer onze babys werd onbenullige opleiding, ik alle stukken van de tabel ergens opgeslagen...Ik ben
Webcam stand voor de begeleiding van een wire kleerhanger

Webcam stand voor de begeleiding van een wire kleerhanger

Onderwerpen als wetenschap en wiskunde de neiging om veel oneven notaties en diagrammen gebruiken. Unidirectioneel van het onderwijs of leren van deze onderwerpen op afstand is via een Skype sessie waar elke deelnemer bekijken kan wat de andere is sc
Controle van een OWI robotarm met Arduino

Controle van een OWI robotarm met Arduino

de OWI rand robotarm is een goedkope en geweldig 5-mate-van-vrijheid robotic arm dat alleen kost $37. Het is een grote kit met een kind op te bouwen en meer dan een paar uur tot finish zal niet duren. Uit de doos, kan het alleen worden gecontroleerd
Joystick gecontroleerd robotarm met behulp van een Arduino

Joystick gecontroleerd robotarm met behulp van een Arduino

Doel en beschrijving van deze handleidingDit instructable is een hand-in voor een schoolproject die we gemaakt. Het doel van dit project was een robot-arm besturingselement met thumbsticks maken. Moesten we gebruik maken van een Arduino Uno voor het
Van een Ikea voetbank aan (Poang) 3D-printer!

Van een Ikea voetbank aan (Poang) 3D-printer!

Hallo allemaal,Dit is mijn eerste Instructable en ik wil met u delen van het bouwproces van mijn eerste 3D printer...Ja, een andere één, maar dit men gemaakt van een Ikea voetbank vinden in de prullenbak kan van mijn wijk, dus ik al: waarom niet opha
Kind hoogte verstelbaar cello kruk met behulp van een IKEA Frosta kruk

Kind hoogte verstelbaar cello kruk met behulp van een IKEA Frosta kruk

Concept:Een volwassen IKEA kruk omzetten in een 12-15-inch hoogte verstelbaar kind cello/muziek krukHet eindresultaat is uiterst stabiel en comfortabel voor het kindVoeg een handvat aan de bodem voor de eenvoudige uitvoeringOverzicht:You Gonna boor e
Optimaliseren van een IKEA-kast

Optimaliseren van een IKEA-kast

ik heb gekocht een IKEA (PAX) kledingkast met deuren. Toen het over de lades, een constructiefout showde: sommige ongewenste en onregelmatige ruimte tussen de lades maakte ons loose enige kostbare ruimte.Nou, het mogelijk een kleine ergernis, of groo
Maken van een verhoogde pork pie mal door recycling van een roestvrij staal IKEA bin

Maken van een verhoogde pork pie mal door recycling van een roestvrij staal IKEA bin

Een indrukwekkende taart met een eenvoudige, maar geweldige mal makenAls je taarten, vroeg of laat maken, u zult willen een mega-sized, vrijstaande verhoogde taart maken (of is dat enkel me?). Deze kern taarten groot met de Victorianen waren, maar ze