Eines de l'usuari

Eines del lloc


public:projectes:cnc:polargraph00

Polargraph

Depres de varis anys i varis intents, amb el coneixement de motors pas a pas, de les plaques, AdaFruit(AF) i demés, RAMPS(MARLIN), CNC Shield per Arduino(GRBL),per de les diferents lliberires arduino, AFMotor per al AdaFruit i del AccelStepper per a GRBL i el seu fork per impresores 3D, Marlin.

I del Processing, que fa un entorn de programació per artistes i aficionats.

Arduino:

Vin = 7-12 V (limit 6-20V) I/O pin = 20 mA 3.3V = 50mA

EasyDriver 4.4 (sparkfun) enable-step-dir 6-30V 200*8=1600 (per defecte)

easydriverspecificacions.pdf

easydriver_arduino.pdf

easydriver_v44_sch.pdf

Cal triar quins pins pose arduino-EasyDriver

Mirem el polargraph-firmware(server-a1):

********** POLARGRAPH_SERVER_a1 *******************

//   i. Adafruit Motorshield v1. The original, and still the best.
//   -------------------------------------------------------------
#define ADAFRUIT_MOTORSHIELD_V1
#include <AFMotor.h>


//   iii. Using discrete stepper drivers? (eg EasyDriver, stepstick, Pololu gear)
//   ----------------------------------------------------------------------------
//   Don't forget to define your pins in 'configuration.ino'.
//#define SERIAL_STEPPER_DRIVERS 

*******************************************************
Caldrà descomentar el #define SERIAL_STEPPER DRIVERS 
i cometar el #define ADAFRUIT_MOTORSHIELD_V1
*******************************************************



// configuration.ino
#ifdef SERIAL_STEPPER_DRIVERS
#define MOTOR_A_ENABLE_PIN 3
#define MOTOR_A_STEP_PIN 4
#define MOTOR_A_DIR_PIN 5
#define MOTOR_B_ENABLE_PIN 6
#define MOTOR_B_STEP_PIN 7
#define MOTOR_B_DIR_PIN 8
AccelStepper motorA(1,MOTOR_A_STEP_PIN, MOTOR_A_DIR_PIN); 
AccelStepper motorB(1,MOTOR_B_STEP_PIN, MOTOR_B_DIR_PIN); 
#endif

Ha compilat de seguida despres d'instal·lar la llibreria AccelStepper.

instructables-instruccions.pdf

Processing

1. Compilar el programa, caldrà afegir llibreries.

a. Des del mateix editor amb l'eina cercar llibreries.
b. Afegir la llibreria al mateix directori que el programa.
c. Arrastar-la al aditor, que posarà el .jar al directori code.

2. Configurar la màquina

3. Pixelar l'imatge, en escala de grisos, la grandaria del pixel no ve determinada per el detall que nosaltres vulguem, si no per la grandaria del punter(llapis, boigraf…)

No es el píxels del gràfic, el software analitza una àrea i li dona un nivell de grisos.

Primers problemes, algun motor gira del reves

Es mouen però no en el sentit correcte.

void configuration_motorSetup()
{
#ifdef SERIAL_STEPPER_DRIVERS
  pinMode(MOTOR_A_ENABLE_PIN, OUTPUT);
  digitalWrite(MOTOR_A_ENABLE_PIN, HIGH);
  pinMode(MOTOR_B_ENABLE_PIN, OUTPUT);
  digitalWrite(MOTOR_B_ENABLE_PIN, HIGH);
  motorA.setEnablePin(MOTOR_A_ENABLE_PIN);
  motorA.setPinsInverted(false, false, true);
  motorB.setEnablePin(MOTOR_B_ENABLE_PIN);
  motorB.setPinsInverted(true, false, true); // this one turns the opposite direction to A, hence inverted.
#endif
}

cal investigar la llibreria AccelStepper, a la documentació:

void AccelStepper::setPinsInverted 	( 	bool  	directionInvert = false,
		bool  	stepInvert = false,
		bool  	enableInvert = false 
	) 	

Caldrà canviar així el primer paràmetre, que es la direcció i que un està a false i altre a true.

Ha funcionat amb les dos en false
public/projectes/cnc/polargraph00.txt · Darrera modificació: 2017/12/10 18:16 per crevert