Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Proyecto Slider para DSLR
#1
Hola a todos,

Antes de nada deciros que soy nuevo en el foro, me presente esta mañana en el general. Ando por estos lares por necesidad, la verdad es que no se mucho de electrónica y el mundo de la programación y electrónica es desconocido para mi, aun así por necesidad y no poder gastar un pastizal en un aparato especifico me he aventurado a montar un slider motorizado con Arduino, la verdad es que lo poco que he visto me mola un monton pero... esto no es lo mio, tan solo espero que podáis echarme una mano desinteresada con este proyecto.

Al grano, como dije estoy INTENTANDO montar un slider motorizado, la verdad es que ya lo tenía, pero era con un simple motor y un regulador de voltaje y el resultado a la hora de hacer algún timelapse con la cámara no era lo mejor, ya que no podía ponerlo mas de 30 minutos. Buscando mucho por internet dí con un proyecto en Arduino que me parecio bastante bien.

El proyecto es este: http://computers.tutsplus.com/tutorials/...-cms-21539

Actualmente solo tengo el display y el Arduino, esta semana que entra tendré todas excepto el motor.

El primer problema que me surge es al cargar el sketch en Arduino los botones no me responden bien, tan solo me funciona el botón "Right", de primeras cargué el sketch sin definir los valores ADC que daban los diferentes botones, porque no supe hasta hoy que tenia que cambiar esos valores, así que cargue un sketch para que me diera esos valores que necesitaba, los resultados fueron :

Select : 641
Left : 412
Right : 0
Up : 101
Down : 257
Al apretar el botón de la derecha se resetea todo, imagino que será para eso mismo

Pues bien cargo esos valores en el sketch y me queda esto:

Cita:#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);    //set LCD output pins

//define stepper driver pins
const int stp = 11;    //can't use pin 10 with the SS LCD as it's the backlight control.
//if it goes low, backlight turns off!
const int dir = 12;

//define trigger pin
const int trig = 13;

//BUTTONS
//define button values
const int btnUp = 101;
const int btnDn = 257;
const int btnL = 412;
const int btnR = 0;
const int btnSel = 641;
const int btnNone = 5;

//define button-reading variables
int btnVal = 5;
int adcIn = 0;

//declare button poll function
int readLcdButtons() {
  delay(190); //debounce delay, tuned experimentally. delay is fine as program shouldn't be doing anything else
  //at this point anyway
  adcIn = analogRead(12); //read value from pin A0

  /*threshold values confirmed by experimentation with button calibration sketch returning the following ADC read values:
   right: 0
   up: 143
   down: 328
   left: 504
   select: 741
   */

  if (adcIn > 1000) return btnNone;
  if (adcIn < 50)   return btnR;
  if (adcIn < 250)  return btnUp;
  if (adcIn < 450)  return btnDn;
  if (adcIn < 650)  return btnL;
  if (adcIn < 850)  return btnSel;

  return btnNone; //if it can't detect anything, return no button pressed
}


Pues al cargar esto los botones funcionan peor que antes, además que la pantalla no hace mas que parpadear como si estuviera pulsando algún botón constantemente, ¿Qué hice mal?

Gracias de antemano chicos
Citar
#2
Hola @TomasCarrasco88,

¿Por que has asignado eso valores a los botones?, quiero decir, que estás declarando constantes y has puesto unos valores arbitrarios que no termino de entender

//BUTTONS
//define button values
const int btnUp = 101;
const int btnDn = 257;
const int btnL = 412;
const int btnR = 0;
const int btnSel = 641;
const int btnNone = 5;

Poco te puedo ayudar, pero tengo interés en ver tu proyecto en marcha. ¿como tienes conectada la LCD al arduino?
Citar
#3
(30-11-2015, 10:40 AM)vcode escribió: Hola @TomasCarrasco88,

¿Por que has asignado eso valores a los botones?, quiero decir, que estás declarando constantes y has puesto unos valores arbitrarios que no termino de entender

//BUTTONS
//define button values
const int btnUp = 101;
const int btnDn = 257;
const int btnL = 412;
const int btnR = 0;
const int btnSel = 641;
const int btnNone = 5;

Poco te puedo ayudar, pero tengo interés en ver tu proyecto en marcha. ¿como tienes conectada la LCD al arduino?



Gracias Vcode, La verdad es que no se que decirte, según entendí tenia que poner ahí los valores que me lanzara uno de los sketch que me daban en dicho proyecto y los valores que me dio fueron los que puse, excepto el de btnNone que no se a que botón se referia, el sketch que use fue este es posible que me haya equivocado por completo y eso no debiera tocarlo. Como ya dije no tengo ni idea de Arduino aunque al final acabare por enterarme un poco, o eso espero... respecto al proyecto voy a hacerle algunas fotos al slider y lo que tenia hecho anteriormente para que lo veáis, era demasiado simple e inútil para timelapse
Gracias!

Edito1:

Vale me parece que según te entiendo eso que cambié debía dejarlo como estaba, lo dejo tal cual y todo sigue sin funcionar, solo que ya la pantalla no parpadea, el único boton que funciona bien es el "right", el select es como si fuera el left, el resto no funciona. El sketch completo del programa es este https://github.com/RobTC/SliderCam

Edito2:

Añado mas info, he creado una carpeta en google drive para ir incluyendo allí cosas varias, dentro tenéis un video con el primer problema que me surge, el sketch que he usado en este momento es tal cual lo descargue, tan solo modifiqué :

int readLcdButtons() {
delay(190);

venia con 50 por defecto pero al apretar el botón, a veces saltaban dos menus de golpe por eso el cambio


https://drive.google.com/folderview?id=0...sp=sharing

Gracias!
Citar
#4
El fallo podria estar aqui:
Código:
adcIn = analogRead(12); //read value from pin A0
Que no es lo mismo que el sketch del autor:
Código:
adcIn = analogRead(0); //read value from pin A0

En tu caso estas leyendo una entrada digital (a no ser que estes usando un mega o similar ,que tienen mas entradas analogicas...)
Citar
#5
Modificado, sigue funcionando bien solamente el botón right. En los comentarios de donde saque este proyecto hay una persona que le pasa lo mismo o algo parecido y lo solucionó cambiando unos valores del sketch original, esta persona dice esto...

"Great tutorial and GREAT project. I follow all the steps, but I'm not able to change values on the LCD display. I've not the cursor flashing for selecting distance, steps, etc etc. What's wrong? Thanks for your reply
Solved. I had to change the button values! Thanx Rob"

Gracias!
Citar
#6
SOLUCIONADO el primer problema que me surgió!!! el problema estaba en este punto:

if (adcIn > 1000) return btnNone;
  if (adcIn < 50)   return btnR;
  if (adcIn < 250)  return btnUp;
  if (adcIn < 450)  return btnDn;
  if (adcIn < 650)  return btnL;
  if (adcIn < 850)  return btnSel;

Lo modifique, le puse los siguiente valores teniendo en cuenta los resultados que me lanzo el sketch para ver el adc de los botones!

if (adcIn > 900) return btnNone;
  if (adcIn < 50)   return btnR;
  if (adcIn < 150)  return btnUp;
  if (adcIn < 300)  return btnDn;
  if (adcIn < 450)  return btnL;
  if (adcIn < 750)  return btnSel;

Chicos muchas gracias por la ayuda, seguro que me van surgiendo problemas así que os iré preguntando, y dar por hecho que según vaya avanzando os iré contando y por supuesto os iré enseñando los avances que haga con este proyecto, seguro que en un futuro le puede venir bien a alguien.

De momento os dejo unas imágenes de el slider en este momento, lo podéis ver en esta carpeta https://drive.google.com/folderview?id=0...sp=sharing
Citar
#7
No te olvides de poner los progresos del proyecto!!
Citar
#8
De nuevo por acá con nuevos problemas!!! jajaja esto funcionara!!!!

Bueno he recibido todas las piezas esta misma mañana y ya he roto algo... creo que es el controlador del motor pero no estoy seguro.

Resulta que el motor venia con los cables sueltos, sin el cabezal, estuve mirando como son las conexiones y ví por internet dos formas diferentes de conectarlo, el caso es que no estaba seguro pero me puse a probar, y el motor hacia unos ruidos raros pero no se movía, al final me puse a cambiar la posición de los cables y dejo incluso hasta de hacer ruidos, ya no hace nada de nada, no se que tan delicado puede ser el motor pero me parece que lo he roto o bien rompí el controlador.

¿Que opináis? hay alguna manera de comprobar el estado del motor sin el controlador? y manera de comprobar el estado del controlador sin el motor? se me ocurrio poner un led en las conexiones del A4988 pero creo que no es la mejor manera de comprobarlo.

Gracias!
Citar
#9
(03-12-2015, 02:00 PM)TomasCarrasco84 escribió: ¿Que opináis? hay alguna manera de comprobar el estado del motor sin el controlador? y manera de comprobar el estado del controlador sin el motor? se me ocurrio poner un led en las conexiones del A4988 pero creo que no es la mejor manera de comprobarlo.

Gracias!
Para comprobar el motor, lo que yo haría es poner el multimetro para medir continuidad y probar las bobinas para ver si "siguen vivas", si lo están, entonces lo másprobable es que el problema esté en el driver.

Si puedes, dinos los modelos del motor y del driver que tienes, con esa info te podremos ayudar mejor.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Proyecto: Base de carga para relojes automáticos miguelgomez18 22 2,163 10-04-2016, 03:49 PM
Último mensaje: miguelgomez18
  Proyecto sckay 46 3,086 23-11-2015, 04:17 PM
Último mensaje: Iván
  Novato - Dudas proyecto First Person View para coche o Heli pedrotronic 3 614 29-10-2014, 11:28 AM
Último mensaje: pedrotronic
  [PROYECTO] Ordenador A bordo para Coche cansi22 35 8,534 23-05-2014, 11:54 AM
Último mensaje: cansi22
  Proyecto: Iluminación Led para escritorio giltesa 25 5,389 07-09-2013, 08:49 PM
Último mensaje: Regata