Montaje inspirado en una de las máquinas que se pueden ver en el video de Youtube "My not perpetual motion machines (compilation)"
Dispone de 2 motores PAP y no más de media docena de piezas, es por tanto muy sencillo y también lo son las curvas que dibuja, lemniscata y circunferencia.


Video en acción
El código también es muy sencillo:
#include "MeMegaPi.h"
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
MeStepperOnBoard PAP[2] = {MeStepperOnBoard(PORT_1),
MeStepperOnBoard(PORT_2)};
//----------------para los PAP
int vel= 2000;
int pasos = 16;
int recorrido =50000;
//==================================
void setup() {
Serial.begin(115200);
for(int i=0;i<3;i++){
PAP[i].setSpeed(vel);
PAP[i].setMaxSpeed(vel);
PAP[i].setAcceleration(vel);
PAP[i].setMicroStep(pasos);
PAP[i].enableOutputs();
PAP[i].setCurrentPosition(0);
}
delay (2000);
}
//==================================
void loop() {
PAP[0].moveTo(-recorrido);
PAP[1].moveTo(recorrido);
while (PAP[1].currentPosition() != recorrido) {
PAP[0].run();
PAP[1].run();
}
PAP[0].setCurrentPosition(0);
PAP[1].setCurrentPosition(0);
}
Montaje inspirado en una de las máquinas que se pueden ver en el video de Youtube "My not perpetual motion machines (compilation)"
Dispone de 2 motores PAP y no más de media docena de piezas, es por tanto muy sencillo y también lo son las curvas que dibuja, lemniscata y circunferencia.


[Video en acción](https://vimeo.com/220070830 "Vimeo")
--
El código también es muy sencillo:
````
#include "MeMegaPi.h"
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
MeStepperOnBoard PAP[2] = {MeStepperOnBoard(PORT_1),
MeStepperOnBoard(PORT_2)};
//----------------para los PAP
int vel= 2000;
int pasos = 16;
int recorrido =50000;
//==================================
void setup() {
Serial.begin(115200);
for(int i=0;i<3;i++){
PAP[i].setSpeed(vel);
PAP[i].setMaxSpeed(vel);
PAP[i].setAcceleration(vel);
PAP[i].setMicroStep(pasos);
PAP[i].enableOutputs();
PAP[i].setCurrentPosition(0);
}
delay (2000);
}
//==================================
void loop() {
PAP[0].moveTo(-recorrido);
PAP[1].moveTo(recorrido);
while (PAP[1].currentPosition() != recorrido) {
PAP[0].run();
PAP[1].run();
}
PAP[0].setCurrentPosition(0);
PAP[1].setCurrentPosition(0);
}
````
editado 22 Sep '17 a las 5:30 pm