Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   ASM y Microcontroladores (https://www.clubdelphi.com/foros/forumdisplay.php?f=44)
-   -   Puerto COM/USB (https://www.clubdelphi.com/foros/showthread.php?t=56443)

Delar 17-05-2008 15:55:25

Puerto COM/USB
 
Yo tengo 2 motores, quiero saber como podria hacer, bien sea por un puerto serial o por un USB que cuando pulse un boton se mueva un motor y si pulso otro se mueva otro. Si me deciis los componentes que deberia usar para enviar datos y que hacer para identificar lo que recibe el circuito de los motores ya me las apaño, pero es que no se por donde empezar.

Saludos

JoseFco 17-05-2008 16:10:24

Cita:

Empezado por Delar (Mensaje 287383)
Yo tengo 2 motores, quiero saber como podria hacer, bien sea por un puerto serial o por un USB que cuando pulse un boton se mueva un motor y si pulso otro se mueva otro. Si me deciis los componentes que deberia usar para enviar datos y que hacer para identificar lo que recibe el circuito de los motores ya me las apaño, pero es que no se por donde empezar.

Saludos

Hola Delar.

Puedes usar el ComPort para enviar los comandos a un microcontrolador y que este sea el que funcione como driver de los motores.
Despues depende del tipo de motor que quieres usar,la corriente del mismo,etc.

Un Saludo.

MaMu 17-05-2008 16:18:12

Cita:

Empezado por Delar (Mensaje 287383)
Yo tengo 2 motores, quiero saber como podria hacer, bien sea por un puerto serial o por un USB que cuando pulse un boton se mueva un motor y si pulso otro se mueva otro. Si me deciis los componentes que deberia usar para enviar datos y que hacer para identificar lo que recibe el circuito de los motores ya me las apaño, pero es que no se por donde empezar.

Saludos

Primero empeza por el hardware, porque en base a este vas a definir la técnica de programación. Si usas serial, tiene la ventaja de que tu hardware va a ser minimo en cuanto a componentes y costo, pero tenes limitada la distancia de operacion, en USB se invierte la situacion. Si necesitas controlar esto a mucha distancia, yo te suguiero que utilices el puerto serie y hagas una pequeña interfase 232/485 y uses solo un par de cables, pero como dijo JoseFco habrá que ver que tipo de motor usas, los requerimientos del sistema, etc.

Saludos

JoseFco 17-05-2008 16:40:22

Aqui te dejo el componente que puedes usar para el serial port.

http://www.sixca.com/eng/articles/serdel/index.html

Al final esta el enlace para que puedas obtener el componente.

Un Saludo.

Delar 17-05-2008 16:41:10

Los motores son los pequeñitos, redondos y grises, con 2 cables... no se si sabeis los que os digo, lo mas simple que hay, un cable a un lado de la pila, el otro a otro lado y se pone a funcionar...
Necesitaria unos 75cm desde el ordenador hasta la placa, no se si usar USB o serial, preferiria usar serial. Y eso es todo

Josef: Ya me he instalado el ComPort

EDIT: Aqui os dejo una imagen de un robot que usa el mismo motor que yo. http://img.icnea.net/Forum/E6001/fotos/c-9801-nou.jpg

JoseFco 17-05-2008 16:48:21

Cita:

Empezado por Delar (Mensaje 287394)
Los motores son los pequeñitos, redondos y grises, con 2 cables... no se si sabeis los que os digo, lo mas simple que hay, un cable a un lado de la pila, el otro a otro lado y se pone a funcionar...
Necesitaria unos 75cm desde el ordenador hasta la placa, no se si usar USB o serial, preferiria usar serial. Y eso es todo

Josef: Ya me he instalado el ComPort

EDIT: Aqui os dejo una imagen de un robot que usa el mismo motor que yo. http://img.icnea.net/Forum/E6001/fotos/c-9801-nou.jpg

Ok, entoces te hace falta ayuda para crear el programa Delphi?
Hablas de una placa, es que tienes ya un hardware? que tipo es ?
En la seccion ASM Y Microcontroladores de este foro podras encontrar un hilo llamado Control relay, encontraras ideas de como usar el ComPort para mandar datos por el puerto serie.

Un Saludo.

MaMu 17-05-2008 16:48:24

Es un simple motor de CC. Con la distancia que necesitas, el puerto serie te alcanza y sobra. Ahora habra que ver como es que lo quieres controlar, si usando PWM, o un simple switch a fuente. Que microcontrolador vas a usar? en casi de que lo uses, o sino que decodificador tenias pensado usar?

Saludos

Delar 17-05-2008 16:56:43

Cita:

Empezado por JoseFco (Mensaje 287396)
Ok, entoces te hace falta ayuda para crear el programa Delphi?
Hablas de una placa, es que tienes ya un hardware? que tipo es ?
En la seccion ASM Y Microcontroladores de este foro podras encontrar un hilo llamado Control relay, encontraras ideas de como usar el ComPort para mandar datos por el puerto serie.

Un Saludo.

Cita:

Empezado por MaMu (Mensaje 287396)
Es un simple motor de CC. Con la distancia que necesitas, el puerto serie te alcanza y sobra. Ahora habra que ver como es que lo quieres controlar, si usando PWM, o un simple switch a fuente. Que microcontrolador vas a usar? en casi de que lo uses, o sino que decodificador tenias pensado usar?

Saludos

No se que micro voy a usar, ya que me estoy iniciando en esto y no se cual seria el mas adecuado. Tengo varios por casa de haber hecho otras pruebas, si quereis os digo cuales y me deciis si sirven.

MaMu 17-05-2008 16:57:45

Si, contanos un poco que componentes tenes, a ver que se puede armar.

Saludos

Delar 17-05-2008 17:00:53

Cita:

Empezado por MaMu (Mensaje 287400)
Si, contanos un poco que componentes tenes, a ver que se puede armar.

Saludos

Tengo el cable, los motores, y tengo 1 microchip que he de buscar, no se donde lo tengo, y otro que es LM324N. Te adjunto una imagen del micro:
http://upload.wikimedia.org/wikipedi..._Amplifier.png
http://www.robodacta.com.mx/prods/ci14.jpg

MaMu 17-05-2008 17:03:01

Cita:

Empezado por Delar (Mensaje 287401)
Tengo el cable, los motores, y tengo 1 microchip que he de buscar, no se donde lo tengo, y otro que es LM324N. Te adjunto una imagen del micro:
http://upload.wikimedia.org/wikipedi..._Amplifier.png
http://www.robodacta.com.mx/prods/ci14.jpg

EL LM324N no es un microcontrolador, es un Cuadruple Amplificador Operacional.
El de microchip posiblemente sea un PIC que posiblemente te sirba, habra que ver bien lo que es.

Saludos

Delar 17-05-2008 17:07:13

Serviria un PIC 16F84A? Si no me equivoco tengo uno de esos... y seria mas sencillo hacer que los 2 motores giren a un lado o a otro segun lo que reciban en vez de hacer girar a un motor o a otro?

MaMu 17-05-2008 17:11:28

Cita:

Empezado por Delar (Mensaje 287403)
Serviria un PIC 16F84A? Si no me equivoco tengo uno de esos... y seria mas sencillo hacer que los 2 motores giren a un lado o a otro segun lo que reciban en vez de hacer girar a un motor o a otro?

Si, el 16F84A te alcanza y sobra. Ahora bien, vos con los motores podes hacer lo que quieras, activar uno a uno, los dos juntos, uno girando en un sentido en otro, o ambos, etc.

Ahora si estamos bien, lo que habria que definir, es la etapa de potencia, es decir el driver que vas a controlar para el manejo de los motores y sentido de giro, yo me inclinaria por un simple puente H, con un supresor de señal si fuese necesario ya que vas a experimentar (claro, ya que un motor no gira simultaneamente en dos sentidos, se arregla con una simple compuerta logica), esto ya quedaria a tu gusto.

JoseFco 17-05-2008 17:13:04

Cita:

Empezado por Delar (Mensaje 287403)
Serviria un PIC 16F84A? Si no me equivoco tengo uno de esos... y seria mas sencillo hacer que los 2 motores giren a un lado o a otro segun lo que reciban en vez de hacer girar a un motor o a otro?

Se puede hacer que giren en el sentido que quieras y puedes cambiar su velocidad tambien.ya eso es cosa de crear un buen hardware.
Ese PIC 16F84 esta perfecto para lo que quieres hacer.

Un Saludo.

Delar 17-05-2008 17:23:26

Cita:

Empezado por MaMu (Mensaje 287404)
Si, el 16F84A te alcanza y sobra. Ahora bien, vos con los motores podes hacer lo que quieras, activar uno a uno, los dos juntos, uno girando en un sentido en otro, o ambos, etc.

Ahora si estamos bien, lo que habria que definir, es la etapa de potencia, es decir el driver que vas a controlar para el manejo de los motores y sentido de giro, yo me inclinaria por un simple puente H, con un supresor de señal si fuese necesario ya que vas a experimentar (claro, ya que un motor no gira simultaneamente en dos sentidos, se arregla con una simple compuerta logica), esto ya quedaria a tu gusto.

El puente H es el que permite girar al motor en ambos sentidos no? Pues entonces un puente H.
Ahora... como empiezo a montar el circuito?

MaMu 17-05-2008 17:26:40

Cita:

Empezado por Delar (Mensaje 287407)
El puente H es el que permite girar al motor en ambos sentidos no? Pues entonces un puente H.
Ahora... como empiezo a montar el circuito?

Usas algun programa de diseño? El Proteus te vendria genial, y para programar el PIC, si programas en assembler usa el MPLAB. Una vez que virualmente este funcional, recien ahi arma el circuito fisicamente.

Delar 17-05-2008 17:35:30

Cita:

Empezado por MaMu (Mensaje 287410)
Usas algun programa de diseño? El Proteus te vendria genial, y para programar el PIC, si programas en assembler usa el MPLAB. Una vez que virualmente este funcional, recien ahi arma el circuito fisicamente.

Nunca he usado programas de diseño, mañana cuando me ponga a hacer toda la cosa probare el Proteus. Sobre ASM, no se nada. Y mira que he intentado aprender, pero me supera. Asi que una ayudita no vendria mal, aunque volvere a mirarme cosas de ASM para ver si consigo algo por mi mismo.

coso 17-05-2008 19:04:17

me suscribo, q me interesa

saludos

MaMu 17-05-2008 19:46:13

Bueno, somos más. Entren a
http://www.terawiki.clubdelphi.com/D...Win32/Recursos
y descarguen el archivo "motor_serial_pic.zip", ahi tienen el posible diseño del hardware base, el cual pueden modificar para adaptar los valores de tensión etc.
Espero que les sea útil.

coso 17-05-2008 19:48:51

En que electrodomesticos es posible encontrar un PIC16F84A? Voy a hacer desgüace :D:D

MaMu 17-05-2008 19:56:19

Cita:

Empezado por coso (Mensaje 287432)
En que electrodomesticos es posible encontrar un PIC16F84A? Voy a hacer desgüace :D:D

Es dificil encontrarlos en un electrodomestico, y por el precio que vale, lo compras en una tienda de componentes electronicos, no vale la pena romperse el coco buscandolo.

coso 17-05-2008 20:05:15

mmm te tomo nota se necesita algun componente mas? no solo motores, sino lo q decias de amplificadores, transformadores...para por ejemplo, hacer un brazo robotico (desde una lampara de esas flexon)

gracias ;)

MaMu 17-05-2008 20:29:33

Cita:

Empezado por coso (Mensaje 287435)
mmm te tomo nota se necesita algun componente mas? no solo motores, sino lo q decias de amplificadores, transformadores...para por ejemplo, hacer un brazo robotico (desde una lampara de esas flexon)

gracias ;)

Todo depende de lo que quieras armar, hacer un brazo robot con motores de continua, es desastrozo. Lo ideal y lo que se usa son motores Paso a Paso, para controlar cada uno de los 6 grados de libertad (3 del griper, pinza, o mano, como gustes y 3 del brazo) y en casos de menor escala, se pueden usar hasta servomotores. Las razones van desde el concepto de torque, hasta el cálculo de posicionamiento global en el espacio de un punto.

JoseFco 17-05-2008 20:33:51

Hola Amigos.

Aqui les dejo tambien otra alternativa al control de motores.


Se puede usar el OUT 3 y 4 para el segundo motor.

Un Saludo.

MaMu 17-05-2008 20:37:18

Cita:

Empezado por JoseFco (Mensaje 287441)
Hola Amigos.

Aqui les dejo tambien otra alternativa al control de motores.


Se puede usar el OUT 3 y 4 para el segundo motor.

Un Saludo.

Esta opción es la que más me gusta a mi, el problema es que por ejemplo
aca en Argentina el L293D, que es un puente H embebido, es caro. Con el precio de este integrado solo, armo 6 puentes con transistores. Pero en fin,
exelente componente.

coso 17-05-2008 20:49:38

o sea, 3 grados de libertad->3 L293D, el pic y ... algo mas?

JoseFco 17-05-2008 20:52:47

Hola MaMU.

La ventaja que tiene ese diceño que nos regalas, es que podemos usar trancistores de mas potencia y rodar motores mas potentes.

Un Saludo.

JoseFco 17-05-2008 20:53:45

Cita:

Empezado por coso (Mensaje 287445)
o sea, 3 grados de libertad->3 L293D, el pic y ... algo mas?

jajajajaja pero que quieres hacer amigo?

MaMu 17-05-2008 21:00:17

Cita:

Empezado por coso (Mensaje 287445)
o sea, 3 grados de libertad->3 L293D, el pic y ... algo mas?

Grado de libertad = a cada movimiento, por ejemplo, el codo, el antebrazo, la muñeca, la pronación de la misma, etc.
extende tu brazo y mano y hace de cuenta que bailas balet, cada movimiento de tu brazo, es un grado de libertad. Si miras el L293D te das cuenta que puede controlar 2 motores, por ahi con un poco de astucia, algunos mas.

Delar 17-05-2008 21:29:14

Y sobre la programacion ASM... ¿alguien puede dar algun ejemplo? :P
No se nada de ASM, pero me voy a poner a aprender ahora mismito.

Saludos

MaMu 17-05-2008 22:34:23

Cita:

Empezado por Delar (Mensaje 287454)
Y sobre la programacion ASM... ¿alguien puede dar algun ejemplo? :P
No se nada de ASM, pero me voy a poner a aprender ahora mismito.

Saludos

A ver, dame un ejemplo de como queres que funcione y lo hacemos, te envio una base en ASM con ese funcionamiento. y vos despues lo retocas a tu gusto.

Saludos

coso 17-05-2008 23:43:03

bueno seria lo primero q hago :D tenia pensado un brazo mecanico rotacion sobre z y luego las otras dos partes rotacion en x (eso son 3 grados de libertad no?) no tengo ni idea de electronica pero si de programacion y me estaba picando hace tiempo de hacer algo :D a ver si lo sigo

Saludos, y gracias

Delar 18-05-2008 00:35:44

Cita:

Empezado por MaMu (Mensaje 287461)
A ver, dame un ejemplo de como queres que funcione y lo hacemos, te envio una base en ASM con ese funcionamiento. y vos despues lo retocas a tu gusto.

Saludos

Mientras este pulsada la tecla W en el form de Delphi, el motor gira en un sentido, y mientras este pulsada la S gira en el otro.
Es eso lo unico que quiero... de todas maneras, tengo 2 dudas mas:
1. Se podria hacer lo mismo sin un Max232?
2. Si se hiciese con un solo motor, se haria bastante mas sencilla la cosa? Porque si es asi lo puedo hacer solo con uno, el segundo lo iba a poner de "apoyo".

Saludos

JoseFco 18-05-2008 01:02:31

Cita:

Empezado por Delar (Mensaje 287492)
Mientras este pulsada la tecla W en el form de Delphi, el motor gira en un sentido, y mientras este pulsada la S gira en el otro.
Es eso lo unico que quiero... de todas maneras, tengo 2 dudas mas:
1. Se podria hacer lo mismo sin un Max232?
2. Si se hiciese con un solo motor, se haria bastante mas sencilla la cosa? Porque si es asi lo puedo hacer solo con uno, el segundo lo iba a poner de "apoyo".

Saludos

Hola Delar. El 16F84 lo puedes conectar sin usar un Max232 y aqui esta la forma.




Eso que quieres hacer es mas facil si se crea un programita con botones y le mandas un codigo al uC por el serial port y este pues rotara el motor en un sentido, luego le das al otro boton y el uC recivira otro comando que equivale a deterce y rodar en sentido contrario.De lo contrario tendrias que hacer un procedure cuando aprietas la tecla que mande un comando al uC via puerto serie y en el evento al soltar la tecla entonces mandar otro comando que se detenga.;) Algo asi.

Un Saludo.

MaMu 18-05-2008 02:07:17

Lo que dice JoseFco es cierto, ya que el Pic 16F84A puede manejar tensiones CMOS sin problemas, hasta 14.9V se lo aguanta como nada. De todas maneras, podes hacer una converscion con transistores, sin depender de un MAX232. A veces yo cometo el error de querer hacer todo muy perfecto, hasta el extremo. En los ultimo post de JoseFco, no deja de sorprenderme con sus ideas tan buenas y sencillas.
Quizas despues de esto, podamos tirar ideas y hacer algo en el ClunDelphi, quizas algun proyecto que nazca de la mezcla de dos amores, Delphi y Electronica.

Saludos

JoseFco 18-05-2008 02:22:51

Cita:

Empezado por MaMu (Mensaje 287497)
Lo que dice JoseFco es cierto, ya que el Pic 16F84A puede manejar tensiones CMOS sin problemas, hasta 14.9V se lo aguanta como nada. De todas maneras, podes hacer una converscion con transistores, sin depender de un MAX232. A veces yo cometo el error de querer hacer todo muy perfecto, hasta el extremo. En los ultimo post de JoseFco, no deja de sorprenderme con sus ideas tan buenas y sencillas.
Quizas despues de esto, podamos tirar ideas y hacer algo en el ClunDelphi, quizas algun proyecto que nazca de la mezcla de dos amores, Delphi y Electronica.

Saludos

Por el camino que va esto, terminare estudiando PIC.:D:D:D

Un dia de estos comenzare a estudiarlos.Ahora tengo unos dias de relajo, pero pronto estare algo acupado con algunos proyectos.Tendre que dejar este buro y ponerme en el del frente que es donde se "desguazan" los eguipos creo que asi fue como dijo el amigo.

JoseFco 18-05-2008 02:42:28

Hola Amigos.

Aqui les dejo esto espero que les pueda ayudar.

http://www.kmitl.ac.th/~kswichit/ap275/ap275.htm

Es una alternativa en el caso de no contar con un Max 232.

Delar 18-05-2008 15:00:43

Cita:

Empezado por JoseFco (Mensaje 287495)
Hola Delar. El 16F84 lo puedes conectar sin usar un Max232 y aqui esta la forma.




Eso que quieres hacer es mas facil si se crea un programita con botones y le mandas un codigo al uC por el serial port y este pues rotara el motor en un sentido, luego le das al otro boton y el uC recivira otro comando que equivale a deterce y rodar en sentido contrario.De lo contrario tendrias que hacer un procedure cuando aprietas la tecla que mande un comando al uC via puerto serie y en el evento al soltar la tecla entonces mandar otro comando que se detenga.;) Algo asi.

Un Saludo.

Y me podrias decir el codigo en ASM para hacer eso?
Y otra cosa, donde van los motores en el circuito que has dibujado mas arriba?

JoseFco 18-05-2008 16:48:18

Hola Delar.

La foto esa es una referencia de que si se puede conectar un 16F84 al puerto serie sin un Max232.
Desafortunadamente no te puedo ayudar con el codigo del 16F84 jamas he tenido un PIC en mis manos.Si fuera el caso de un Atmel 89Cxx o 89Sxx con mucho gusto te daria una ayuda en el codigo.
Dime algo tienes el programador para el 16F84?


Un Saludo.

Delar 18-05-2008 17:03:08

No, pero encontré esto:
http://www2.ing.puc.cl/~jlortiz/programador.php


La franja horaria es GMT +2. Ahora son las 16:29:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi