Styra en RepStrap bearbetning (10 / 25 steg)

Steg 10: Gör det med Firmata

Här är en alternativ metod som använder Firmata biblioteket för att ändra riktning på stepper motor från bearbetning.

Du kan läsa mer om det här:
http://Arduino.cc/en/reference/Firmata
och här:
http://firmata.org/wiki/main_page

Jag förstår inte detaljerna. Men från min erfarenhet hittills, jag vet det är gör ett bra jobb att hantera kommunikationen mellan datorn och Arduino. Så, jag är glad att ignorera Detaljer för nu.

Jag har börjat genom att ändra ett exempel som ingår i theArduinoIDE kallas "SimpleDigitalFirmata". När denna kod är laddad på Arduino, kan du kommunicera med digital stiften på Arduino styrelsen direkt från bearbetning.

I behandlingen arbetar jag från ett exempel som slår på och av en LED på Arduino styrelsen när du flyttar musen över en fyrkantig dawn bildskärmens av PC.

För att göra bearbetning kontroll LED och en stegmotor, måste du modiify koden för Arduino och bearbetning.

Arduino sidan - har jag definierat stepper stiften överst på skissen. Sedan har jag fastnat i kod att köra nummerlistan i slutet av huvudloop. Jag sätta detta utanför den kod som läser den seriella porten. Så kommer bara genom att gå.

Riktning mot nummerlistan ligger direkt från bearbetning. Exempelkoden vände på och bort en LED på pin13. Så, jag har precis gjort steg riktning stiftet gör samma sak som LED.

Här är koden. Detta styr bara X stepper.

///////////////// ARDUINO //////////////////////
Stödjer så många digitala ingångar och utgångar som möjligt.
//
Denna exempelkod är offentlig.

#include

#define XstepPin 10 //Step pin
#define XdirPin 7 //Direction pin

byte previousPIN [2]. PIN: PORT för input
byte previousPORT [2].

void outputPort (byte portNumber, byte portValue)
{
endast skicka data när den ändras, annars får du för många meddelanden!
om (previousPIN [portnummer]! = portValue) {
Firmata.sendDigitalPort (portnummer, portValue);
previousPIN [portnummer] = portValue;
Firmata.sendDigitalPort (portnummer, portValue);
}
}

void setPinModeCallback (byte pin, int läge) {
IF(PIN > 1) {/ / inte touch RxTx stift (0,1)
pinMode (pin, läge);
}
}

void digitalWriteCallback (byte port, int värde)
{
byte i.
byte currentPinValue, previousPinValue;

om (värde! = previousPORT[port]) {
för (jag = 0; jag < 8; i ++) {
currentPinValue = (byte) värde & (1 << jag);
previousPinValue = previousPORT [port] & (1 << jag);
om (currentPinValue! = previousPinValue) {
digitalWrite (i + (port * 8), currentPinValue);
}
}
previousPORT [port] = värde;
}
}

void setup()
{
Firmata.setFirmwareVersion (0, 1);
Firmata.attach (DIGITAL_MESSAGE, digitalWriteCallback);
Firmata.attach (SET_PIN_MODE, setPinModeCallback);
Firmata.BEGIN(57600);
}

void loop()
{
outputPort (0, PIND & ~ B00000011); stift 0-7, ignorera Rx/Tx stift (0/1)
outputPort (1, PINB); stift 8-13
While(Firmata.available()) {
Firmata.processInput();
}

extra stepper sekvens till firmata kod
digitalWrite(XstepPin,HIGH); vidta åtgärder
delayMicroseconds(2);

digitalWrite(XstepPin,LOW);
delayMicroseconds(2);
delayMicroseconds(1000); <<<<<< Används för att ändra STEPPER hastighet <<<<<<<<

}

//////////////////////////////////Processing/////////////////////////////////
/**
* Enkel skriva. < ändrades så att styra stepper riktning
*
* Kontrollera om musen är över en rektangel och skriver status till den seriella porten.
* I det här exemplet fungerar med ledningarna / Arduino program som följer nedan.
*/

import processing.serial.*;
import cc.arduino.*;

Arduino arduino;

Seriella myPort; Skapa objekt från seriella klass
Uppgifterna från den seriella porten
int ledPin = 13. PIN-koden för LED
int XdirPin = 7. PIN-koden för stepper X riktning
int XstepPin = 10; PIN-koden för X steg

void setup()
{
storlek (200, 200);
Jag vet att den första porten i listan följetong på min mac
är alltid min FTDI adapter, så jag öppnar Serial.list() [0].
På Windows-maskiner, allmänt öppnas COM1.
Öppna oavsett port är den du använder.
Sträng portName = Serial.list() [0];
myPort = ny följetong (här, portName, 9600);
Arduino = nya Arduino (denna, Arduino.list() [0], 57600); v1
arduino.pinMode (ledPin, Arduino.OUTPUT);
arduino.pinMode (XdirPin, Arduino.OUTPUT);

}

void draw() {
Background(255);
om (mouseOverRect() == true) {/ / om musen är över torget,
Fill(204); ändra färg och
arduino.digitalWrite (ledPin, Arduino.HIGH); Lysdioden på
arduino.digitalWrite (XdirPin, Arduino.HIGH); Stepper riktning detta sätt

}
annat {/ / om musen inte är över torget,
Fill(0); ändra färg och
arduino.digitalWrite (ledPin, Arduino.LOW); LEDDE bort
arduino.digitalWrite (XdirPin, Arduino.LOW); Stepper riktning åt andra hållet

}
rect (50, 50, 100, 100); Rita en fyrkant
}

booleska mouseOverRect() {/ / Test om musen över torget
tillbaka ((mouseX > = 50) & & (mouseX < = 150) & & (mouseY > = 50) & & (mouseY < = 150));
}

Se Steg
Relaterade Ämnen

Hur man styr en enkel bearbetning spel med Arduino

Hej allaI detta Instructable, får vi se hur att skapa en "länk" mellan en bearbetning skiss och en Arduino kort. I det här exemplet används en Ultraljuds modul att styra ett plan i ett enkelt spel. Igen, den här läraren är bara ett exempel, du k...

Första stegen med bearbetning och Arduino (styra skiftregister från dator)

Hej igen! Jag har få delar, så jag beslöt att börja bygga virtuella! Jag hade bearbetning på min dator, men jag hade aldrig använt det, eftersom i´m bara en student och jag don´t vet Java alls. Först bestämde jag mig att rita kvadrat. Jag hade så myc...

Musik synkroniserad LED Pumpkin

*** kom ihåg att rösta på min Instructable ***I år bestämde jag mig att göra min pumpa lite mer spännande. Jag tänkte och tänkte på det, och då jag kom över LED dansen rum. Jag tänkte "Jag kunde göra det", och projektet föddes.Det finns två modu...

CoaTracker

har det någonsin hänt dig? Du vaknar på morgonen och inser att du är fruktansvärt sent för arbete/klass/din weekly pedikyr / vadsomhelst. Du kastar på en t-shirt och flip flops, sprint runt ditt varma, uppvärmda hus greppa din tillhörigheter, och täv...

R/C LEGO® bil Redux

efter att jag byggt R/C Lego bil, som används för hackade motorer och motor höljen från leksak bil och toy R/C bilar. Jag insåg de flesta delar från det leksak R/C bil som jag tog motorn av blev slösas bort.Detta sätt var inte mycket praktiska eller...

Leksak pistol kul

I detta Svårbemästrade vi kommer att ta isär en leksakspistol och att ljud utlösaren med bearbetning och Arduino. Med lite skicklighet och patiences, kan du använda dessa tekniker på bara om någon leksak.DelarProtoSnap eller ArduinoUSB-kabelElektroni...

Kinect 2-spelare skjutspel

Har du någonsin velat göra egna Kinect spel?Eller kanske du har ännu inte hört av Microsofts mångsidig djup kamera?Tack och lov, har du kommit till rätt ställe. Vi kommer att gå steg för steg genom att skapa en datorstyrd 2 Kinect spelare.Steg 1: Pro...

Hur man styr en bearbetning skiss med två Arduino ingångar

Denna tutorial ska show dig hur man bygger en grundläggande Arduino krets som kan styra en rolig färgade bollen skiss bearbetning.Du behöver:1 x Arduino ombord (jag använder en Uno)1 x skärbräda1 x foto-motstånd1 x 10 k Ohm motstånd (brun-svart-Orang...

Ball anhängare använder vision bearbetning

Video processing har alltid en utmaning att robot byggare som kodningen är komplexa och människor som inte har kunskapen i MATLAB kan inte göra mycket, men i den här guiden vi kommer att lära att programmera en robot att följa en gul färgad boll, med...

Styra ppt med bluetooth-modulen.

Jag vill göra ppt domänkontrollant utan USB-port-styrenheten.Jag har sett någon göra den ppt registeransvarige med flex sensorn.Flex sensorn mycket dyrt. Så jag bestämde mig att använda bluetooth för att göra ppt controller.Steg 1: delar-WIZwiki-W750...

Accelerometer baserad gestigenkänning för att styra en LED

Dessa material och den information som finns i detta instructable är från studenter på programvara för platser (www.softwareofplaces.com)Klass vid PUC-Rio universitet. Innehållet representerade här är studentens sista projekt för klass utvärdering tu...

Med MikroTik Router styrelsen 433 & Arduino att styra två lysdioder

I denna tutorial kommer jag förklara hur man styr två lysdioder med MikroTik router styrelsen och Arduino.MikroTik 433 är en router styrelsen baserat på Linux-kärnan, det innehåller 3 Ethernetport och 3 mini PCI-port som används för att ansluta trådl...

Bearbetning kontroller R/C bil med XBee moduler

detta instructable är en modifiering av min presentation till Bearbetning Chicago gemenskapen vid (EVL) elektroniska visualisering Laboratory, University of Illinois i Chicago den 1 okt 2012. I ämnetBearbetning bibliotek serienBearbetning och trådlös...

Hur man styr en Arduino styrda robotarm av Dobot teamet

Vi säger alltid, Dobot är en hög precision, flera control desktop robotarm. I senaste instructables, har vi visat dig hög precision och funktionen desktop genom att bygga en laser cut och lödning Dobot arm. Detta instructable, vi kommer att försöka v...

Hur man bygger en 8 x 8 x 8 LED cube och styra med en Arduino

det finns en hel del LED kuber på Instructables, så varför göra en annan? De flesta är för små kuber som består av 27 eller 64 lysdioder, sällan större eftersom de är begränsade till antalet utgångar på mikrokontroller. Denna kub blir 512 lysdioder,...

Hur man kontrollerar GizDuino med bearbetning *

För några veckor sedan, har jag publicerat en Instructable om "Hur du styr GizDuino med Visual Basic" -.Jag kommer nu dokument ett annat sätt att kontrollera GizDuino med hjälp av open source bearbetning program som kan laddas ner från denna län...

Använda en PIC mikrokontroller för att styra en Hobby Servo

detta instructable beskriver hur man integrerar hobby servon (den typ som används i RC flygplan, bilar, etc.) i dina microcontroller projekt.Steg 1: Hur servon är skiljer sig från vanliga motorer i en vanlig DC motor, vridmoment motorn utövar på axel...

Styra en Arduino med telefonen.

I detta Instructable jag ska visa hur du styr dina saker med telefonen och arduino styrelsen. Jag har kontrollerat allt från rökmaskiner för jul ljus är med detta program.Video:ledsen videon är ganska märkligt eftersom min kamera försöker justera lju...

CNC G-kod tolk med bearbetning

Hej killar, jag försöker göra mitt eget CNC router så jag kan underlätta PCB i åratal.Vad jag försöker göra är en G-kod tolk som kan skickar signaler till en arduino ombord. Så kan arduino styrelsen styra en enkel CNC router för att rita en krets öve...