progetto open source per avanzamenti automatici su arduino

Moderatore: Junior Admin

Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9023
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da McMax »

sulla manovra a mano sono d'accordo... infatti io ho fatto un sistema con ruote dentate che disimpegnano il riduttore.
Quello dell'annuncio è reversibile però.... provato e funziona!
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da yrag »

Ah, buono...
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

Come vedi era una strada gia' intrapresa :risatina:

io avevo pensato di accoppiare la madrevite con la puleggia motrice azionata dal motoriduttore mediante due piattelli che per frizione si trascinano a vicenda, regolando la pressione fra di loro è anche possibile pensare ad un blocco meccanico per gli avanzamenti che una volta raggiunto faccia poi slittare i piattelli senza che si rompa nulla

sarebbe figo una sorta di blocco stellare così da poter regoalre + spallamenti con un unico setup..


cmq il sistema con motore pp mi attizza di + per la possibilita' di incrementare funzioni di controllo + specifiche


in ultimo se ho capito bene, usando l'encoder in questo modo in pratica si regola solo l'avanzamento in funzione del passo che si vuole ottenere ma non si puo' mai staccare la chiocciola dalla madrevite, pena perdere la sovrapponibilita' delle passate?

è come avere una scatola norton ma continuando a filettare con il metodo classico, ovvero vado avanti, spengo, inverto, rivado avanti


io pensavo di sincronizzare la partenza del carro partendo da un punto noto in modo che si possa aprire la chiocciola arrivati nella gola di scarico e non fermare mai il motore
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Non esistono domande stupide ma solo risposte inutili
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9023
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da McMax »

no, aspetta, con questo sistema ti scordi di filettare a meno di indexare anche la vite... ma a quel punto torniamo alla soluzione PP che è molto meglio.
Il mio intervento era solo per sensibilizzarti sul fatto che, dovendo spendere energie e tempo per sviluppare un sistema con PP e micro, tanto vale aggiungerci un encoder e usarlo come ELS così a quel punto fai tutto.

Per usarlo come avanzamento della sovrapponibilità delle passate ce ne frega il giusto, ed a quel punto puoi togliere la chiocciola e tornare a mano col carro.

Io nel mio ho sia vite che barra scanalata; quest'ultima è sempre inserita mentre la vite la posso disimpegnare dalla semi-norton.... usando la barra per l'avanzamento posso farla girare sempre nella stessa direzione e l'inversione la faccio meccanicamente dal grembiale, sia per il longitudinale che per il trasversale.
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

aspe' non ci stiamo capendo :risatina:

io son partito dal voler fare solo gli avanzamenti e il sistema di con il motoriduttore e il variatore di giri gia' bastava ed avanzava

poi da cosa nasce cosa e ho deciso di provare la strada dei pp per la possibilita' di poter avere un controllo sul processo
ovviamente come hai gia' detto, potendo determinare l'avanzamento significa poter determinare anche un qualsiasi passo
rimane solo da sincronizzare il movimento con il mandrino

a me piaceva molto l'idea di poter staccare la chiocciola, in questo modo si puo' filettare anche a velocita' elevata perchè non si rischia che l'inerzia del motore faccia andare a sbattere l'utensile da qualche parte...
Non esistono domande stupide ma solo risposte inutili
Avatar utente
McMax
CAPO OFFICINA
Messaggi: 9023
Iscritto il: dom gen 31, 2010 21:46
Località: Bussero (MI)

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da McMax »

il discorso dell'apertura della chiocciola è il medesimo sia con gli ingranaggi che con la vite elettronica. Vale sempre la regola che se il passo della vite che stai facendo è uguale o un sottomultiplo del passo della vite madre puoi aprire e chiudere quando vuoi; diversamente va fatto girare il mandrino al contrario.
Ad esempio, se la vite del tornio è da 6mm, puoi aprire e chiudere la chiocciola a piacimento con i passi 0,75; 1,5; 3; 6
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

okok ma ribadisco, a me piaerebbe poter aprire la chiocciola a piacere e poi riattaccarla a volo, si risparmia tantissimo tempo che non ad invertire il motore e tutto il resto

vero che se non facciamo produzione, poco male...
ma secondo me con un piccolo accorgimento si puo' fare ;)
Non esistono domande stupide ma solo risposte inutili
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da yrag »

:shock: Madonna... ma siete proprio degli sfarticati ! Ma fate i tornitori o gli elettronici ?
Avatar utente
onorino
CAPO OFFICINA
Messaggi: 41551
Iscritto il: mar mar 23, 2010 22:18
Località: Artena(Roma)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da onorino »

potete usare un ingranaggio , tipo il pignone della bici , in avanti ingrana , poi con il volantino tornate indietro , con il tipico rumore da bici , cosi luk unisci le due passioni :risatina:
la democrazia funziona fino a quando fate quello che dico io!
Mc Mazzafrusten meccanico mannaro
il riparatore di riparazioni
er robin hood de no'antri
tagliatore scelto di puntarelle
http://www.lievitoedintorni.it/phpbb/index.php
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da yrag »

Ecco ! ci mancavano i ciclisti...
Avatar utente
onorino
CAPO OFFICINA
Messaggi: 41551
Iscritto il: mar mar 23, 2010 22:18
Località: Artena(Roma)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da onorino »

:risatina:
la democrazia funziona fino a quando fate quello che dico io!
Mc Mazzafrusten meccanico mannaro
il riparatore di riparazioni
er robin hood de no'antri
tagliatore scelto di puntarelle
http://www.lievitoedintorni.it/phpbb/index.php
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

azz mi hai dato un'ideona! ma per tutta un'altra cosa... :risatina:
Non esistono domande stupide ma solo risposte inutili
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

// librerie da includere

#include <AccelStepper.h>
#include "Timer.h"


// Define the stepper and the pins it will use

AccelStepper X_AXIS(1, 9, 7);
//AccelStepper Y_AXIS(2, 10, 8); // predisposizione per secondo driver


// Define input button pins

// IN 0 RESERVED
// IN 1 RESERVED X AXIS
// IN 2 RESERVED Y AXIS
#define MAIN_ENABLE_PIN 2 // pulsante di abilitazione principale
#define RIGHT_PIN 3 // pulsante selezione direzione dx
#define LEFT_PIN 4 // pulsante selezione direzione sx
#define JOI_ENABLE_BUTTON 5 // pulsante abilitazione joi
#define HOLD_STATUS_PIN 6 // pulsante abilitazione velocita' costante
// IN 7 RESERVED DIR X
// IN 8 RESERVED DIR Y
// IN 9 RESERVED STEP X
// IN 10 RESERVED STEP Y
#define MAIN_ENABLE_PIN_OUT 11 // abilitazione principale
#define JOI_ENABLE_PIN_OUT 12 // led di stato joi abilitato
#define HOLD_STATUS_PIN_OUT 13 // led di stato velocita' costante abilitata


// Define our analog pot input pin

#define SPEED_PIN A0 // riferimento analogico velocita' asse x
#define SPEED_PIN_2 A1 // riferimento analogico velocita' asse x


// Define our maximum and minimum speed in steps per second (scale pot to these)

#define MAX_SPEED 1300
#define MIN_SPEED 10


// VARIABLES

int MAIN_ENABLE = 0;
int JOI_ENABLE_STATUS = 0;
int HOLD_STATUS = 0;
int CENTRAL_ISTERESIS = 498;
int BL_ENABLE = 0;

static float current_speed = 0.0; // HOLD_STATUSs current motor speed in steps/second
static char sign = 1; // HOLD_STATUSs -1, 1 or 0 to turn the motor on/off and control direction
static int analog_value = 0; // HOLD_STATUSs raw analog value.
static int analog_value_2 = 0; // HOLD_STATUSs raw analog value.

Timer t;

void setup() {
// The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go
X_AXIS.setMaxSpeed(1500.0);

// Set up the button inputs, with pullups
pinMode(LEFT_PIN, INPUT);
pinMode(MAIN_ENABLE_PIN, INPUT);
pinMode(RIGHT_PIN, INPUT);
pinMode(HOLD_STATUS_PIN, INPUT);
pinMode(JOI_ENABLE_BUTTON, INPUT);

pinMode(JOI_ENABLE_PIN_OUT, OUTPUT);
pinMode(MAIN_ENABLE_PIN_OUT, OUTPUT);
pinMode(HOLD_STATUS_PIN_OUT, OUTPUT);

t.every(250, CLOCK_CICLE);

digitalWrite(MAIN_ENABLE_PIN_OUT, HIGH);

}

void loop() {


if (digitalRead(MAIN_ENABLE_PIN) == 0) { // verifica main enable, resetta a 0 lo stato delle altre modalita'
MAIN_ENABLE = ! MAIN_ENABLE;
digitalWrite (MAIN_ENABLE_PIN_OUT, ! MAIN_ENABLE);
if (MAIN_ENABLE == 0 ) {
HOLD_STATUS = 0;
JOI_ENABLE_STATUS = 0;
}
delay (250);
}

if (MAIN_ENABLE == 0) {
blink_if_not_enable();
}

if (digitalRead(HOLD_STATUS_PIN) == 0) { // abilitazione della modalita' velocita' costante
if (MAIN_ENABLE == 1) {
HOLD_STATUS = ! HOLD_STATUS;
JOI_ENABLE_STATUS = 0;
digitalWrite (HOLD_STATUS_PIN_OUT, HOLD_STATUS);
delay (250);
if (HOLD_STATUS == 1) {
X_AXIS.stop();
}
}
}

if (digitalRead(JOI_ENABLE_BUTTON) == 0) { // abilitazione della modalita' joi
if (MAIN_ENABLE == 1) {
JOI_ENABLE_STATUS = ! JOI_ENABLE_STATUS;
HOLD_STATUS = 0;
digitalWrite (JOI_ENABLE_PIN_OUT, JOI_ENABLE_STATUS);
delay (250);
}
}

if (digitalRead(LEFT_PIN) == 0) { // rotazione sinistra
if (HOLD_STATUS == 0){
sign = 1;
delay (250);
}
}

if (digitalRead(RIGHT_PIN) == 0) { // rotazione destra
if (HOLD_STATUS == 0){
sign = -1;
delay (250);
}
}

// allineamento degli atati ai led fisici

digitalWrite (HOLD_STATUS_PIN_OUT, HOLD_STATUS);
digitalWrite (JOI_ENABLE_PIN_OUT, JOI_ENABLE_STATUS);


// ciclo di esclusione selettiva delle modalita'

if (HOLD_STATUS == 1){
pot_semplice();
}

if (JOI_ENABLE_STATUS == 1){
pot_joi();
}
}


void CLOCK_CICLE () { // legge ogni 250mS il valore dei potenziometri
analog_value = analogRead(SPEED_PIN);
analog_value_2 = analogRead(SPEED_PIN_2);
}

void blink_if_not_enable (){ // ciclo per far lampeggiare i led di stato se l'enable principale è a 0
delay (125);
BL_ENABLE = ! BL_ENABLE;
digitalWrite(HOLD_STATUS_PIN_OUT, BL_ENABLE);
digitalWrite(JOI_ENABLE_PIN_OUT, BL_ENABLE);
delay (125);
}

void pot_joi () { // modalita' joi
if (analog_value > CENTRAL_ISTERESIS - 15 && analog_value < CENTRAL_ISTERESIS + 15) {
current_speed = 0;
}

else {
current_speed = map(analog_value, 0,1023, MAX_SPEED, -MAX_SPEED);
}

X_AXIS.run();
X_AXIS.setSpeed(current_speed);
X_AXIS.runSpeed();
t.update();
}

void pot_semplice() { // modalita' velocita' costante
current_speed = sign * map(analog_value_2, 0,1023, MAX_SPEED, MIN_SPEED);
X_AXIS.run();
X_AXIS.setSpeed(current_speed);
X_AXIS.runSpeed();
t.update();
}
Non esistono domande stupide ma solo risposte inutili
yrag
CAPO OFFICINA
Messaggi: 32785
Iscritto il: dom nov 06, 2011 17:34
Località: Napoli

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da yrag »

papa.jpg
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
luk2k
CAPO OFFICINA
Messaggi: 8597
Iscritto il: lun set 08, 2008 00:10
Località: portici (na)
Contatta:

Re: progetto open source per avanzamenti automatici su ardui

Messaggio da luk2k »

yrag, lo so... fa un po' c...re ma è il codice attuale :risatina:
avendo scopiazzato in giro è una mezza accozzaglia di roba, pero' funziona


quando avro' le idee + chiare cerchero' di ottimizzarlo, eliminare le parti ridondanti e magari commentarlo decentemente :risatina:


detto questo ora cercherei di capire come muoverci, fino a questo punto sta tutto su un arduino 2009 ma ho gia' finito tutti gli ingressi digitali e non sono nemmeno riuscito a portar fuori tutti gli stati ma ho previsto 2 assi...

da qui in poi penso si debba iniziare a ragionare su un arduino mega che ha ben 50 ingressi digitali contro i 13 della board classica
Non esistono domande stupide ma solo risposte inutili
Rispondi

Torna a “Ufficio progetti”