This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[PROYECTO] Generador de Pulsos/Encoder portable
#1
Bueno, más que un generador de pulsos, es una placa con una ruedecita y una pantalla Sonrisa

Esto surgió mientras pensaba en cómo testear un motor DC, y me pareció una herramienta muy útil en el taller. La idea es tener un encoder genérico, que se pueda configurar el rango, precisión, etc, y luego ampliarlo con placas que hagan cosas concretas. Por ejemplo, un testeador de pololus, que estoy harto de tener que conectarlos a una placa para ver si funciona bien. O una conversor digital a analógico para generar ondas, etc.

Quería algo que fuese compacto (la caja la diseñaré con la impresora 3D), asi que todo es autónomo, mediante dos pilas de 1.5V (incluye un circuito para amplificar a 5V), porque lo que más me revienta es tener que andar con cargadores, etc. (aunque cosas como los motores, no me quedará más remedio)

Este es el esquema, open hardware, para lo que os pueda servir...

[Imagen: srollv1.jpg]

Cualquier idea es bienvenida.
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#2
Te va a quedar muy compacto. Has mirado si lo puedes hacer con PIC? De ser asi, puedes solicitar una muestra y ahorrarte el atmega.
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#3
grafisoft escribió:Te va a quedar muy compacto. Has mirado si lo puedes hacer con PIC? De ser asi, puedes solicitar una muestra y ahorrarte el atmega.

es q tengo un par de ATmega por aqui, por eso lo he diseñado con este. Nunca he programado con el PIC...
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#4
Hay partes del esquema que no me resultan claras, la pantalla la conectas por I2C?, supongo que tienes un encoder para seleccionar la frecuencia, el duty cycle?, vamos genericamente vas a conseguir un PWM controlado por un encoder verdad?, Las entradas de los encoders porque tienes tres?, A, B, C? Tendras una entrada que sera un trigger, para disparar la señal? y con MIN/MAX a que te refieres?

Otras dudidas, con que programa has realizado el esquematico? y como programas el atmega? que IDE usas?

Muchas Gracias¡¡¡
  Responder
#5
El esquematico esta hecho con Altium Designer (antes protel)
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#6
Triggerr escribió:Hay partes del esquema que no me resultan claras, la pantalla la conectas por I2C?, supongo que tienes un encoder para seleccionar la frecuencia, el duty cycle?, vamos genericamente vas a conseguir un PWM controlado por un encoder verdad?, Las entradas de los encoders porque tienes tres?, A, B, C? Tendras una entrada que sera un trigger, para disparar la señal? y con MIN/MAX a que te refieres?

Otras dudidas, con que programa has realizado el esquematico? y como programas el atmega? que IDE usas?

Muchas Gracias¡¡¡

hace un poco más que PWM, ya que envía la posición absoluta del encoder por SPI y i2C... Creo que es algo útil para cacharrear y probar cosas rápidamente.

el programa que utilizo es el altium

la pantalla se maneja por puerto serie, 9600 baudios. UART_TX sale del atmega y va al RX (tienes razon que deberia de llamarse UART_RX). Y ahora uqe lo dices, tengo que revisar el datasheet para ver si puedo dejar el resto de pines flotando. LA pantalla se puede ajustar con unos jumpers para leer de i2c, spi o uart (por defecto uart)

lo de min/max me parecio una idea interesante. El tema es que la rueda es infinita, pero estuve pensando darle la posibilidad de que, mediante un menú, poder definir una posicion min max (por ejemplo, ir de 0 a 100 en 5 vueltas). Al llevar a las 5, MAX se pone a 1, y al reves. Como unos límites por software.

El encoder tiene 3 posiciones para darte el paso. Basicamente sigue una secuenda ABC -> ACB -> CAB, y así sabes si vas para delante o para atrás. He puesto un encoder algo bueno, de 30 posiciones por vuelta, para que sea más chulo de mover, pero de todos modos, eso se podrá ajustar (por ejemplo, puedes ir de 0 a 100 en 10 vueltas, o en 100 vueltas, de ese modo ganas precisión).

Trigger es una entrada para lanzar un evento. Es digital, se dispara o no, lanzando una interrupción (como el pulsador del encoder). Pensé meter un trigger tipo osciloscopio, pero tendriamos que meterno en el voltaje de referencia, y creo que complica un poco el diseño (siempre puedes hacer una placa que se conecte y haga precisamente eso)
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#7
Podrias dar mas informacion sobre esa pantalla?. EL enviar la posicion relativa por comunicacion SPI, I2C, que te interesa para la comunicacion con modulos externos no?

No conocia encoders con tres salidas, si bien con 2.

Un Saludo¡¡
  Responder
#8
Triggerr escribió:Podrias dar mas informacion sobre esa pantalla?. EL enviar la posicion relativa por comunicacion SPI, I2C, que te interesa para la comunicacion con modulos externos no?

No conocia encoders con tres salidas, si bien con 2.

Un Saludo¡¡

pues para ser sincero... solo la conozco por el datasheet Sonrisa

http://www.newhavendisplay.com/specs/NHD...FBW-V3.pdf

lo que he leido... le mandas la info por el UART, a 9600 baudios, y luego es como una consola normal serie. Si envias un caracter expecial (0xfe creo), el siguiente caracter es un comando.

Los hay para borrar la pantalla, para cambiar la conf y enviar a 115200 bps, posicionar el cursor, etc. Pero ya te digo, ni idea, hasta que la pruebe. Eso si, 17 euros... :/ Si a alguien se le ocurre algo mejor, estoy a tiempo. La pantalla la seleccione por el tema de ahorrar pines, y que va a 5v, asi no hay que tener varios voltajes en la placa (muchas son mas economicas, pero van a 3.3v, y entonces entrariamos en el tema de convertir 5V a 3.3V, que hay q usar un conversor lineal que es muy ineficiente, rutar los 3v3 por la placa, que la voy a isolar en casa y es de solo 1 cara, etc)
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#9
derethor escribió:pues para ser sincero... solo la conozco por el datasheet Sonrisa

http://www.newhavendisplay.com/specs/NHD...FBW-V3.pdf

lo que he leido... le mandas la info por el UART, a 9600 baudios, y luego es como una consola normal serie. Si envias un caracter expecial (0xfe creo), el siguiente caracter es un comando.

Los hay para borrar la pantalla, para cambiar la conf y enviar a 115200 bps, posicionar el cursor, etc. Pero ya te digo, ni idea, hasta que la pruebe. Eso si, 17 euros... :/ Si a alguien se le ocurre algo mejor, estoy a tiempo. La pantalla la seleccione por el tema de ahorrar pines, y que va a 5v, asi no hay que tener varios voltajes en la placa (muchas son mas economicas, pero van a 3.3v, y entonces entrariamos en el tema de convertir 5V a 3.3V, que hay q usar un conversor lineal que es muy ineficiente, rutar los 3v3 por la placa, que la voy a isolar en casa y es de solo 1 cara, etc)

Umm, parece interesante esa pantalla, de todas formas, no te has planteado conectar la pantalla tambien por I2C?, y aparte por el I2C mandar los datos que quieras?, o en tal caso, pantalla por I2C y mandar los datos por puerto serie?

Nose cual es tu idea respecto a que quieres conectar por I2C, modulos externos con mas funcionalidades?

Un Saludo¡
  Responder
#10
Triggerr escribió:
derethor escribió:pues para ser sincero... solo la conozco por el datasheet Sonrisa

http://www.newhavendisplay.com/specs/NHD...FBW-V3.pdf

lo que he leido... le mandas la info por el UART, a 9600 baudios, y luego es como una consola normal serie. Si envias un caracter expecial (0xfe creo), el siguiente caracter es un comando.

Los hay para borrar la pantalla, para cambiar la conf y enviar a 115200 bps, posicionar el cursor, etc. Pero ya te digo, ni idea, hasta que la pruebe. Eso si, 17 euros... :/ Si a alguien se le ocurre algo mejor, estoy a tiempo. La pantalla la seleccione por el tema de ahorrar pines, y que va a 5v, asi no hay que tener varios voltajes en la placa (muchas son mas economicas, pero van a 3.3v, y entonces entrariamos en el tema de convertir 5V a 3.3V, que hay q usar un conversor lineal que es muy ineficiente, rutar los 3v3 por la placa, que la voy a isolar en casa y es de solo 1 cara, etc)

Umm, parece interesante esa pantalla, de todas formas, no te has planteado conectar la pantalla tambien por I2C?, y aparte por el I2C mandar los datos que quieras?, o en tal caso, pantalla por I2C y mandar los datos por puerto serie?

Nose cual es tu idea respecto a que quieres conectar por I2C, modulos externos con mas funcionalidades?

Un Saludo¡

si, lo he considerado

En cuanto a funcionalidad, es lo mismo el UART que el i2c. Los dos envían los caracteres a la pantalla y esta los muestra.

Pero el objetivo de la placa es mandar la posicion del encoder a la placa de expansión, y eso lo hago por PWM, i2c y SPI. Y no quería enviar en el mismo bus los datos de la pantalla (que no tienen porque ser realtime) con los datos i2c que se envía a la placa de expansión. Usar el i2c para ambas cosas me duplica los datos en el bus.

Además, a la hora de programar, veo más claro tener el UART como una consola normal y corriente, y el i2c para enviar datos en una rutina independiente.
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#11
Comprendo, yo te lo comentaba por lo que decias de que la pantalla cosatab 17€, quizas si que se complique el asunto al programar una rutina de comunicacion I2C (Yo me se la teoria, nunca he echo ninguna siempre empleo librerias especificas), que usar el I2C para enviar datos y el UART para la pantalla.


Un Saludo¡
  Responder
#12
Triggerr escribió:Comprendo, yo te lo comentaba por lo que decias de que la pantalla cosatab 17€, quizas si que se complique el asunto al programar una rutina de comunicacion I2C (Yo me se la teoria, nunca he echo ninguna siempre empleo librerias especificas), que usar el I2C para enviar datos y el UART para la pantalla.


Un Saludo¡

he visto pantallas más económicas que usan i2c, pero van a 3.3V, y entramos en lo que comentaba, tener 2 voltajes en la placa, etc. En qué pantallas estabas pensando?
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#13
derethor escribió:he visto pantallas más económicas que usan i2c, pero van a 3.3V, y entramos en lo que comentaba, tener 2 voltajes en la placa, etc. En qué pantallas estabas pensando?

Revisando el data de tu LCD, la unica caracteristica aparte de la comunicacion un poco diferente al resto es la posibilidad de retroiluminacion en varios colores si no lei mal, puediendo prescindir de esta caracteristica tienes LCDs 2x16 a 5V con comunicacion I2C y algunos creo que SPI (Desconozco por completo este protocolo de comunicacion), te dejo por aqui uno por ejemplo:

http://www.ebay.es/itm/1602-16x2-LCD-Cha...2ecba34765

Otro tema es que sea un inconveniente el uso del I2C para el LCD y para la comunicacion con otro modulos, aunque no debiera de ser problema, pero nose si sera muy complejo programarlo, porque ya se sabe todo hablado es mas facil jejejeje.

Un Saludo¡
  Responder
#14
[Imagen: b9NjdU7.png]

Le he dado una vuelta al tema del LCD, y no me daba cuenta que se pueden usar en modo 4 pines con un select, asi que he metido uno normal que he encontrado en ebay por 4 euros. Eso sí, ya no tiene trigger externo.

me falta por ajustar el valor de la resistencia que controla el contraste en el LCD... quizás lo suyo sea un potenciometro.

lo siguiente será el PCB... como voy a insolarla en casa, tendré que tener cuidado con las pistas, que no sean muy gordas.

gracias por los consejos!!
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#15
derethor escribió:Le he dado una vuelta al tema del LCD, y no me daba cuenta que se pueden usar en modo 4 pines con un select, asi que he metido uno normal que he encontrado en ebay por 4 euros. Eso sí, ya no tiene trigger externo.

me falta por ajustar el valor de la resistencia que controla el contraste en el LCD... quizás lo suyo sea un potenciometro.

lo siguiente será el PCB... como voy a insolarla en casa, tendré que tener cuidado con las pistas, que no sean muy gordas.

gracias por los consejos!!

De este modo te saldra mucho mas asequible, economicamente hablando ejjeje.

Para el contraste yo tambien pondria un potenciometro, todos los LCDS lo llevas normalmente. A no ser que lo controles con otro pin del arduino.

Tienes el codigo ya hecho?, para usar el Atmega imagino que lo usas sin Bootloader, con que lo programas?

Al respecto del PCB, con insoladora si pillas el truco no tendras problema aunque tengas pistas finas.

Un Saludo¡¡
  Responder
#16
Triggerr escribió:Tienes el codigo ya hecho?, para usar el Atmega imagino que lo usas sin Bootloader, con que lo programas?

lo suyo sería hacerlo con arduino, pero para que fuese sencillo, habría que meterle un FTDI o algo, aunque a mi no me gusta nada usar las libs de rduino, meten mucho código que no es necesario.

Para esto, que es más sencillo, un programa sencillo en C. Lo compilo con el avr-gcc en linux, y lo subo con el buspirate por ICSP. Meteré el código en un github para poder ir siguiendolo.

sabes de livs para programar el LCD? asi puedo ir mirando algo de esta pantalla...
javier loureiro varela

impresoras 3D, CNC, programación, diseño de placas PCB y muchas ganas de hacer cosas :)
  Responder
#17
Conozco las libreria del LCD pero escrita en Procesing no en C, nose si te valdrian.

Le e echado un ojo por encima a:

http://extremeelectronics.co.in/avr-tuto...with-avrs/

Quizas te valga de ayuda.

Un Saludo¡¡
  Responder
#18
De Atmega nada. De PIC tengo librerias y se hacer cositas jajajaja.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  APORTE DIY - Construye tu Generador de Señales kuadri 0 1,216 17-08-2018, 09:26 PM
Último mensaje: kuadri
  Compra Generador de Funciones Arbitrario ivanVK 4 2,435 26-04-2016, 01:47 PM
Último mensaje: Jorgito
  [Ayuda] [Friorifico][Generador][SAS] alvaroaldama92 0 1,163 11-06-2015, 07:53 PM
Último mensaje: alvaroaldama92
  Buscando el generador de funciones BBB sifou 1 1,458 07-12-2013, 05:16 PM
Último mensaje: pablet