Mostrando entradas con la etiqueta Robots. Mostrar todas las entradas
Mostrando entradas con la etiqueta Robots. Mostrar todas las entradas

domingo, 19 de noviembre de 2017

Usos para Raspberry Pi

Muy buenas a todos y todas!!!

Esta publicación va con un poco de retraso... ya tenía la Raspberry Pi 2 desde hacia bastante tiempo, pero como la tenia en otros usos y no he podido hacerle una entrada en el blog como se merece.

En principio esta entrada va a ser un poco presentación de la placa.
Vamos a echar un vistazo a las distintas posibilidades que nos ofrece:

martes, 15 de noviembre de 2016

Arduino: Brazo robot con servos ( Robot arm ) Parte 2

Buenas a todos!!!

Buenas a todos!!! Como ya publique hace un tiempo, tenia este brazo robot de 4 ejes hecho con una impresora 3D, en la primera entrada no publique código por un problema que tuve con el PC, pero esta vez va completo.

Bueno todo empezó cuando buscando algo, vaya usted a saber que... encontré un viejo gamepad USB, (a decir verdad encontré varios) y se me ocurrió la idea de usar los thumbsticks o joys para controlar los movimientos del brazo.


Después de desmontar el mando en este modelo vienen los dos joys montados en una misma plaquita. 

Con la ayuda de un multímetro identificamos alimentación y las salidas de los potenciómetros además de los dos pulsadores que tiene cada joy, en mi caso solo tuve que seguir las pistas y hacer una pequeña modificación con la resistencia que venia de casa en el joypad.

Solo nos hace falta:

  • Arduino UNO o NANO
  • 4 microservos del tipo 9g
  • 2 Joystick de 2 ejes y pulsador

Una vez tengamos todas las piezas el montaje es el siguiente:

Los ejes de los joystick controlan los movimientos y los pulsadores que llevan incorporados se utilizan para abrir y cerrar la pinza.

domingo, 31 de enero de 2016

Arduino: Driver L298N y Bluetooth HC-06

Rover Arduino HC-06

Muy buenas a todos los Arduineros y Arduineras!!!

Ya iba siendo hora de poner algo de comunicación serial, y aunque parezca ya un poco avanzado, es muy sencillo utilizar el bluetooth HC-06 en Arduino.

Con el emisor/receptor bluetooth HC-06 he construido este sencillo Rover que fácilmente se podrá controlar desde cualquier terminal Android que disponga de conexión Bluetooth.

El módulo HC-06:

Módulo HC-06 bluetooth

El HC-06 es un dispositivo de comunicación inalámbrica operando en la frecuencia de los 2,4GHz.

Se conecta a en los pines TX y RX y sus datos los envía y recibe con un protocolo serial de nivel lógico TTL.

Por defecto, viene con un usuario y un password predefinidos que normalmente serán:
User: HC-06 y contraseña 1234. El seteo de la velocidad de transmisión suele venir configurado a 9600,8,N,1.

Para una mayor comodidad usare la librería SoftwareSerial. h para asignarle la entrada de datos a los puertos 2 y 3 y así no tener problemas a la hora de cargar el archivo por USB

lunes, 16 de febrero de 2015

Arduino: Brazo robot con servos ( Robot arm )

Muy buenas a todos Arduineros y Arduineras!!!

Infotronikblog tiene ahora su propio brazo robot. En total 3 ejes más pinza, aunque es el modelo básico, el modelo completo tiene 4 ejes más pinza. Puedes descargar el modelo en Thingiverse.

Este diseño es más que suficiente para enseñar como funciona un brazo robot y las 3 posiciones espaciales (X Y Z) en las que se moverá el brazo. Los ejes de referencia son:

  • Eje X: Es el movimiento de izquierda a derecha.
  • Eje Y: Es el movimiento de arriba o abajo.
  • Eje Z: Es el movimiento de avance o retroceso.

Ahora que ya sabemos por donde nos movemos, estos son los componentes que moverán los ejes que componen el brazo:

  • Arduino UNO o NANO.
  • 4 servos de tipo 9g.
  • 4 pulsadores.
  • 1 potenciómetro.

La parte blanca esta impresa en ABS y la parte azul es PLA, ya que es de las primeras cosas impresas y querían probar los diferentes materiales. Después de montarlo, creo que es mejor el PLA, ya que es mas rígido.

Los movimientos corren a cargo de 4 servos de 9g que van conectados a los pines 2, 3, 4, 5 de Arduino. Para la primera prueba (solo la pinza) utilice dos pulsadores, uno para abrir y otro para cerrar muy parecido al segundo ejemplo del articulo "Arduino moviendo un servo".


Para la segunda prueba (bazo completo) utilice cuatro pulsadores conectados a los pines 6, 7, 8, 9 asignado a cada uno de los servos y un potenciómetro en el pin A0 para darle movimiento. De tal manera que si pulsamos uno de los botones mientras movemos el potenciómetro accionaremos el servo asignado a ese pulsador.



Pulsando el botón y moviendo el potenciómetro podemos mover el brazo en cualquiera de sus ejes.


Si bien el sistema no es del todo perfecto, ya que si no movemos el potenciómetro antes de accionar el pulsador el servo adquiere la posición del ultimo movimiento. Pero es más que suficiente para este ejemplo.

Una mejora puede ser también implementar la memoria EPROOM para almacenar los movimientos en determinadas posiciones y para después reproducirlos en secuencia haciendo así una tarea repetitiva.

Aquí tenéis un vídeo para que veáis un poco mejor como funciona:


Y aquí el código que hace que funcione:


#include <servo.h>

#define POT A0
#define SWITCH1 2
#define SWITCH2 3
#define SWITCH3 4
#define SWITCH4 5
#define SERVO1 6
#define SERVO2 7
#define SERVO3 8
#define SERVO4 9


int posServo1 = 90; // Angulo servo 1 (base)
int posServo2 = 90; // Angulo servo 1 (antebrazo)
int posServo3 = 90; // Angulo servo 1 (brazo)
int posServo4 = 90; // Angulo servo 1 (pinza)


void setup() 
{ 
  Serial.begin(115200);

  servo.attach(sp1);
  pinMode(SWITCH1, INPUT_PULLUP);
  pinMode(SWITCH2, INPUT_PULLUP);
  pinMode(SWITCH3, INPUT_PULLUP);
  pinMode(SWITCH4, INPUT_PULLUP);
  
}

void loop() 
{
  
  // Show the value of the buttons on the serial monitor
  Serial.print("b1=");
  Serial.println(digitalRead(b1));
  Serial.print("b2=");
  Serial.println(digitalRead(b2));

  int potValue = analogRead(POT)
  int position = map(potValue, 0, 1023, 0, 180);
  
  
  if (digitalRead(SWITCH1) == HIGH)  servo1.write(position);
  else if (digitalRead(SWITCH1) == HIGH)  servo1.write(position);
  else if(digitalRead(SWITCH1) == HIGH)  servo1.write(position);
  else (digitalRead(SWITCH1) == HIGH)  servo1.write(position);

}

Saludos a todos!!

jueves, 31 de octubre de 2013

Base oruga Tamiya track & whell (Prueba 2)

Muy buenas a todos!!!

He estado probando diferentes configuraciones para el set de ruedas oruga de Tamiya. y por el momento para hacer las pruebas me quedo con la típica configuración de un tanque. Para la alimentación de los motores voy a utilizar un driver L293D. Utilizare unos de los dos canales HPWM que tiene el 16F876A para controlar la velocidad.

Al driver L293D le he puesto un ventilador que ahora mismo va fijo, pero cuando el proyecto este más avanzado solo se encendera cuando el Driver se caliente, esto lo haré con un Lm35.

Para la transmisión de los datos lo haré con unos módulos de radio frecuencia de 433mhz que compre por Ebay. Aun no se la distancia a la que es capaz de transmitir y recibir...

Todo va controlado con un 16F876A con bootloader que es el que se encarga de recibir los datos a trabes del puerto RC0. El HPWM situado en el RC2 (CCP1). Los 4 movimientos posibles están situados en RB7, RB6, RB5, RB4. Por el momento esos son los únicos pines que voy a utilizar.

Todo el conjunto va alimentado con una batería de 9,6V.

Para enviar los datos al tanque estoy utilizando un convertidor USB-RS232 y un max232 conectado a el transmisor de RF.
Y el software para los movimientos he rescatado un programa que hice hace tiempo llamado Peyutsubot 2.5 al cual le he encontrado un par de fallos y estoy intentando subsanar, además de incluir el control de PWM.

Ire poniendo avances, saludos!!!

viernes, 14 de octubre de 2011

Base oruga motores y track set Tamiya


Esta es la nueva base que he fabricado para mi próximo proyecto.
La base esta fabricada en plexiglas de 4mm en su totalidad y para el sistema de tracción he utilizado el set de cadenas y ruedas de Tamiya.
La motorización corre a cargo de Tamiya también, con su conjunto de 2 motores bidireccionales con reductora. Todo alimentado por un L293D.


El metraquilato es de 4mm para que aguante bien el peso de todo el conjunto. El metraquilato, en principio, me parecía un material poco apropiado para hacer esto, pero una vez que empecé y fue cogiendo forma ya no tuve dudas.

Para el corte utilice la sierra de calar es si a su mínima velocidad, ya que si lo haces muy rápido, la sierra se calienta demasiado y funde el metraquilato. Una vez aprendí esto, todo lo demás salio muy bien.


Bueno ahora la probare con la placa para pruebas, modificando un poco los programas que tengo para el 16F628A seguro que puedo adaptarlos al 16F876A.

Otra cosa sera el arrastre que pueda tener, ya que este robot tendrá cable en vez de RF y espero poder con el max232 llegar hasta los 20 metros.
No utilizare RF por el tema de la alimentación, aunque siempre se le puede adaptar ;)



Y aquí un video de su funcionamiento:


Un Saludo!!

By PeYuTrOn

sábado, 9 de julio de 2011

Arduino: El documental

He encontrado un documental sobre Arduino, había escuchado algo sobre  este documental, pero no había profundizado mucho en el tema. 

Así que ahora toca darle un vistazo a todo lo relacionado con Arduino su historia y sus virtudes.

jueves, 10 de marzo de 2011

Sigue lineas con microcontrolador 16F628A y BTrainer

Esto es lo ultimo que me ha dado por hacer, un coche seguidor de linea. Es decir un coche al que le pones una linea negra sobre un fondo blanco y va siguiendo la linea.

La verdad es algo sencillo de hacer y algo más complicado si lo quieres hacer bien, me explico:
Empezando por la base, no es una muy buena base para este tipo de practica, es algo más difícil de controlar. La base ideal seria dos ruedas cada uno con un motor y una rueda loca como rueda de apoyo.


Esta es la parte inferior donde están puestos los tres CNY70. Esta es la primera prueba que hice poniéndolos a mucha distancia y montándolos un poco de "aquella manera" sobre el mismo chasis...
No funciono... bueno lo que es el circuito si funcionaba bien el problema era que al estar fijos no podía regular los sensores y hacia lo que quería.



Aquí ya están mejor, la colocación es MUY IMPORTANTE, si no no detectara la linea, hay que alinearlo bien sobre todo en altura. Hay por ahí algún esquema donde ponen los CNY70 con unos potenciómetros, no los he llegado ha probar, pero supongo que con esto podremos hacer un reglaje más "fino".

Si podemos quitarle vibraciones mejor también.


Esta es la parte inferior, donde se ven los sensores CNY70, como se ve están encendidos, esto solo puede verse con el móvil y no se si con las cámaras de fotos también pasara (Esto también es útil para saber si el mando de la tele tiene pilas jejeje)


La idea ya la tenia en mente aunque la verdad lo he hecho un poco por hacer. Parte de la información la he sacado de la web de Glafebre que hizo el Hyperion donde tendréis más información y el programa original, el mio tiene algunas variaciones, pero fue el que me inspiro.

Código en PBP:


@ DEVICE PIC16F628A, WDT_OFF ' Watchdog Timer desconectado
@ DEVICE PIC16F628A, PWRT_OFF ' Power-On Timer conectado
@ DEVICE PIC16F628A, BOD_OFF ' Brown-Out Detect conectado
@ DEVICE PIC16F628A, MCLR_OFF ' Master Clear Externo desconectado
@ DEVICE PIC16F628A, LVP_OFF ' Low-Voltage Programming desconectado
@ DEVICE PIC16F628A, CPD_OFF ' Data Memory Code Protect desconectado


DEFINE OSC 4

'-----CONFIGURACION DE LOS PUERTOS--------
PORTB=%11110000
TRISB=%11110000

'------------PROGRAMA PRINCIPAL------------
pause 3000
loop:

IF (PORTB.5=0) AND (portb.6=1) AND (portb.7=1) THEN GOSUB AVANCE

IF (PORTB.7=0) AND (portb.5=1) AND (portb.6=1) THEN GOSUB IZQUIERDA

IF (PORTB.6=0) AND (portb.5=1) AND (portb.7=1) THEN GOSUB DERECHA

IF (PORTB.5=0) AND (portb.6=0) AND (portb.7=0) THEN GOSUB PARO

IF (PORTB.5=1) AND (portb.6=1) AND (portb.7=1) THEN GOSUB PARO

GOTO loop

END

'--------------SUBRRUTINAS-----------------

AVANCE:

PORTB.0 = 1
PORTB.1 = 0
PORTB.2 = 0
PORTB.3 = 0

return

ATRAS:
PORTB.0 = 0 
PORTB.1 = 0 
PORTB.2 = 0
PORTB.3 = 0

RETURN

DERECHA:
PORTB.0 = 1
PORTB.1 = 0
PORTB.2 = 1 
PORTB.3 = 0

RETURN

IZQUIERDA:

PORTB.0 = 1
PORTB.1 = 0
PORTB.2 = 0: 
PORTB.3 = 1

RETURN

PARO:

PORTB.0 = 0 
PORTB.1 = 0
PORTB.2 = 0
PORTB.3 = 0

RETURN




By PeYuTrOn

miércoles, 9 de marzo de 2011

Base para RC varios usos

He estado preparando este coche como base para varios proyectos que tengo pensados, aunque no se el tiempo que me llevara...


Primero removí todos los componentes que venían y me puse a ver como ponían los dos puentes H, la batería y un condensador de 2200uF.













La batería al final la puse en el centro para guardar un poco el centro de gravedad, y aunque a un chasis así no le puedes pedir mucho la verdad lo he notado, antes la tenia en un lateral y tendía ha hacer trompos ahora también los hace pero tarda un poco más :P

También se ven los dos puentes H para los motores, el de la izquierda es para las ruedas delanteras y el de la derecha es para avance/retroceso.














Esta es la vista inferior, la batería y el condensador de 2200uF.




















Este Tornillo sujeta el motor para que no se salga por las vibraciones. Busque varios métodos pero este es el más sencillo y el más efectivo.


También le puse el interruptor para on/off y ahora mismo lo tengo para hacer un sigue lineas que espero publicar pronto.







By PeYuTrOn

miércoles, 8 de diciembre de 2010

Conseguir 5V desde RS-232 para modulo RF


ATENCIÓN: ESTO PUEDE DAÑAR TU ORDENADOR VIGILA BIEN LAS CONEXIONES MIDELAS CON UN POLIMETRO Y RECUERDA QUE TODO LO QUE HAGAS QUEDA BAJO TU RESPONSABILIDAD!!!


Después de mucho cacharrear con mi tanque de RF y tener tantos cables por ahí colgando, en concreto del puerto serie y el USB de donde obtenía los 5v para alimentar el MAX232 y el modulo de RF, decidí investigar si habría alguna solución para ahorrar cables y componentes.

Después de mucho buscar, comparar, mirar datas y comentarios de gente más entendida, opte por usar un solo transistor para la comunicación y obtener la corriente de los pines DTR y RTS igual que hace el programador JDM para alimentar un 78L05 y obtener los 5V.

Bien después de eso he creado el siguiente circuito:

Explico un poco así por encima los componentes:

  • Los pines 4 y 6 son el DTR
  • Los pines 7 y 8 son el RTS
  • El pin 3 es el que se utiliza para la transmisión de datos
  • El pin 5 en masa (GND)
  • D1 y D2 son dos diodos 1N4148. Comentar que primero puse unos 1N4007 y no funciono. Son para separar las corrientes de DTR y RTS.
  • T1 es un transistor BC547 (aunque creo que seria mejor un BC337) y su colector va conectado atraves de R2 al pin 3 del puerto serie
  • T2 es un regulador de voltaje 78L05, el que tiene el encapsulado TO-92 con el TO-220 no funcionó.
  • C1 y C2 son para estabilizar la corriente que nos llega de DTR y RTS y el 78L05
  • C3 y C4 son los condensadores para alimentación del modulo de cebek

Mi modulo de RF tiene unos pines que hay que cambiar según la alimentación del modulo, supongo que si tenéis otro tipo de modulo tendréis que mirar el tema de la alimentación.

DTR y RTS se activan mediante software, próximamente explicare como hacerlo en VB.

Unas cuantas Fotos:





Este es el aspecto una vez terminado y funcionando.
By PeYuTrOn

viernes, 26 de noviembre de 2010

Modificación RF Video y Audio

Tras un desafortunado accidente mi cámara inalámbrica dejo de funcionar (si caen a más de metro y medio... se rompe) por suerte he aprovechado la electrónica para hacer un transmisor, solo que ahora ademas de las imagenes de una cámara puede enviar las imagenes de cualquier aparato AV. Por el momento solo lo he probado con una cámara de fotos que tenia salida AV directa y funciona bien. 

Ahora solo tengo que añadírselo al Peyutsubot.





Esta es la carcasa de un cartucho de tinta vaciado con los agujeros para los RCA y la salida de 9V

Esta es la placa donde estaba montada la cámara, de aquí he quitado el micrófono (rojo y negro de a izquierda) el Verde (audio) y el amarillo(vídeo) lo demás lo he dejado tal y como estaba porque no se la alimentación del transmisor, asi que asi no habrá problemas.

Este es el transmisor, Rojo alimentación+,azul audio,negro alimentación -, y amarillo vídeo.

La electrónica la he dejado completa, no tengo el data del transmisor( y la verdad tampoco lo he buscado mucho) así que decidí dejarlo todo y anular el vídeo de la cámara(el amarillo) y conectarlo al RCA(V) lo mismo con el cable azul que va al RCA(A). También tiene una salida de 9V para alimentar la nueva cámara.


Este es el transmisor terminado.


Ahora ya podre volver a utilizarlo!!!

domingo, 24 de octubre de 2010

Peyutsubot 2.4 Beta

Saludos a todos!!

Este es el programa que llevo desarrollando y mejorando desde hace un tiempo.
Por el momento esta en construcción, pero espero tener algo un poco más serio dentro de poco.
Bueno echarle un vistazo y a ver que os parece!!


Este es el enlace con el instalador y el programa en PBP.

Saludos!!

By PeYuTrOn

martes, 19 de octubre de 2010

Puente H con driver L293D y L293NE

Driver L293D

Muy buenas a todos y todas!!!

Aunque parezca mentira después de buscar el driver L293D por varias tiendas de mi zona no había manera de encontrar ninguno.

Por suerte encontré uno parecido, el L293NE, pero tiene algunas diferencias.

Tanto el L293D como el L293NE son integrados que tiene 4 drivers que pueden configurarse como:

  • 2 puentes H completos
  • 4 drivers medios puente

🔧 Características Técnicas Comunes

  • Voltaje de operación: 4.5V a 36V
  • Corriente máxima por canal: 600mA
  • Picos de corriente hasta 1.2A
  • Protección contra sobrecalentamiento
  • Diodos internos de supresión de retroceso (flyback)

Esta es la tabla para 1 puente H:



Bueno por fin lo encontré y me puse ha hacer la placa para añadirlo al Peyutsubot. Aquí el esquema:

Haz click en la imagen para agrandar

El esquema original lo encontré en esta pagina lab.guilhermemartins.net. Aunque con algunos cambios (espero que no se moleste el autor). Además le he añadido un disipador con un poco de pasta, por los calentones y tal, aunque creo que me he pasado con el tamaño, era por no cortalo y ha quedado esto:

Driver L293D

⚠️ Consideraciones Importantes

  1. Disipación de calor:
    • L293D: Requiere disipador en aplicaciones de >300mA
    • L293NE: Mejor disipación gracias a su patilla metálica
  2. Protección eléctrica:
    • Usar condensadores de desacoplamiento (100nF) cerca de los pines de alimentación
    • Implementar fusibles o PTC para protección contra cortocircuitos
  3. Compatibilidad de voltajes:
    • Asegurar que el voltaje de lógica (Vcc1) sea compatible con el microcontrolador
    • El voltaje de motores (Vcc2) puede ser mayor que Vcc1



🛠️ Tips de Implementación

  1. Para motores de alta corriente:
    • Conectar canales en paralelo para duplicar capacidad de corriente
    • Usar disipadores de calor adecuados
  2. Control de velocidad:
    • Utilizar modulación por ancho de pulso (PWM) en los pines enable
    • Frecuencia recomendada: 1-5 kHz
  3. Reducción de ruido eléctrico:
    • Colocar condensadores cerámicos (100nF) muy cerca de los pines de alimentación del motor
    • Usar filtros RC en las entradas de control



Conclusión:

El L293D es ideal para proyectos educativos y prototipos, mientras que el L293NE ofrece mejor disipación de calor para aplicaciones más exigentes. Ambos proporcionan una solución robusta y económica para el control de motores en una amplia variedad de aplicaciones.

Si queréis más información en este post de Robotsperu tengo un hilo abierto sobre las modificaciones del original y algunos consejos muy útiles para mejorarlo.

Es casi imprescindible leer el Datasheet del L293D

Otros artículos sobre electrónica que te pueden interesar:

Saludos a todas y a todos!!!

jueves, 7 de octubre de 2010

Oruga cebek C-6083 V2

Durante un viajecito encontre una tienda donde vendian unos servos a muy buen precio, asi que me decidi y compre unos cuantos jejeje pensando en actualizar la oruga y hacerle un nuevo chasis más robusto.

El anterior no iba mal, pero los servos estaban un poco forzados por la tensión de las gomas y eso tarde o temprano se habria roto. Asi que esta tarde me he puesto y ya esta terminado y, la verdad, estoy muy contento con el reultado. Aun tengo que hacerle el circuito, y seguramente le pondre otros servos para el control de la camara. Pero bueno eso sera más adelante. 

Por el momento aquí van las fotos:

PeYuTrOn