English
Español

Albert Einstein joven físico desconocido, empleado en la Oficina de Patentes de Berna, publicó su teoría de la relatividad especial.


El primer circuito integrado fue desarrollado en 1959 por el ingeniero Jack S. Kilby1 (1923-2005) pocos meses después de haber sido contratado por la firma Texas Instruments.
Noticias

BadAss Tank





Qué necesitamos?

Todos los precios son bajos debido al envio desde China. Dependerá de ti si vale la pena esperar o no...

1. Un micro controlador Arduino pro mini (recomendado por su tamaño) (2€-3€) LINK eBay
2. Un micro controlador Arduino Mega (tambien se puede utilizar otro pro mini) (7€) LINK eBay
3. Dos reguladores de tensión a 3.3V (se pueden comprar o construir)(1€-2€) LINK eBay
-Ver video regulador de tensión
4. Dos módulos NRF24L01(4€-5€) LINK eBay
5. Módulo serial TTL/FTDI FT232RL (Para programar el Arduino. Se podrá usar para futuros proyectos también). En caso de utiliszar arduinos con USB no haá falta! (2€-3€) LINK eBay
6. Bateria 9V (2€)
7. Dos motores DC (Con caja engranajes). (6€) LINK eBay
8. Puente H (Se puede comprar o construir). (4€) LINK eBay
9. Bateria 12V (10€) LINK eBay
10. Cables conectores, soldador, estaño (0€)
11. Próxima actualización (0€)



Introducción!

Hola.
Tendremos una serie de videos e imagenes que te guiarán a lograr construir tu propio robot de rádio control, en este caso un tanque.
Intentaremos utilizar material barato, reciclar cosas ya estropeadas pero llegar a tener un tanque final muy guapo. Queremos establecer una comunicación de radio frecuencia entre dos arduinos. Un arduino estara en el mando y enviara los datos de control e otro estara dentro del tanque e recibirá los datos enviados, e procesara los movimientos.

Tendremos la parte del mando, donde cojeremos dos potenciómetros de un mando bluetooth estropeado. Haremos la conexión de las salidas de cada uno de los 4 potenciómetros con las entradas anaógicas de arduino pro mini. Los datos leídos los envairemos a travéz de una comunicación radio frecuencia con los módulos NRF24. COnstruiremos un mando con la impresora 3D o con acrylico e soldaremos una PCB con todos los modulos y ya tendríamos nuestro emisor.

El robot tenderá un Arduino Mega ya que gracias a sus muchos pines, podremos conectar a nuestro robot un monton de partes extra. El arduino recibirá los datos del emisor a través del módulo NRF24, procesará esos datos e controlará dos motores DC utilizando un puente H e salidas PWM.

Construiremos el puente H con transistores BJT o MOSFET. Será bastante potente como para alimentar 4A a los motores, que es más que suficiente.

Finalmente añadiremos un cañon e un laser para hacer nuestro tanque mas MALO.


Descarga todos los esquemáticos aqui:


Esquemático!

Conexiones FTDI!

Necesitaremos alimentar el Arduino conectando Vcc del módulo FTDI al Vcc de 5 voltios del arduino. También conectaremos el GND con cualquiera de los GND del microcontrolador. Ya tenemos alimentado el Arduino. Si usais un arduino pro mini aqui tenéis la conexión con el modulo FTDI para poder programar el microcontrolador:


Codigo emisor!

/* Transmisor de 4 canales utilizando NRF24 */

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
const uint64_t pipeOut = 0xE8E8F0F0E1LL;
//Este código unico lo deberá llevar el receptor también

RF24 radio(9, 10);

//Podemos llegar hasta estructuras de 32 bytes
struct MyData {
byte throttle; //definimos cada byte para cada entrada analogica
byte yaw;
byte pitch;
byte roll;
};

MyData data;

void resetData()
{
//definimos el valor inicial que vamos a transmitir antes de leer el valor
//analógico de las entradas
data.throttle = 0;
data.yaw = 127;
data.pitch = 127;
data.roll = 127;
}

void setup()
{
radio.begin();
radio.setAutoAck(false);
radio.setDataRate(RF24_250KBPS);

radio.openWritingPipe(pipeOut);

resetData();
}

/**************************************************/

// Tenemos que mapear los valores de las entradas de 0-1024 a 0-255
//ya que los pulsos de arduino funcionan en ese rango,
//luego en el receptor volveremos a mapear los datos en el rango deseado

int mapJoystickValues(int val, int lower, int middle, int upper, bool reverse)

{
val = constrain(val, lower, upper);
if( val < middle )
val = map(val, lower, middle, 0, 128);
else
val = map(val, middle, upper, 128, 255);
return ( reverse ? 255 - val : val );
}

void loop()
{
// Hacemos la lectura de las entradas analogicas
//Si dejasis en "true" os invertirá los datos
//Si dejais en false enviara los datos de 0 a 1024
//Este apartado es por si conectais los potenciometros al revés y para
//calibrar bien las entradas y enviar los datos perfectamente.

data.throttle = mapJoystickValues( analogRead(0), 13, 524, 1015, true );
data.yaw = mapJoystickValues( analogRead(1), 1, 505, 1020, true );
data.pitch = mapJoystickValues( analogRead(2), 12, 544, 1021, true );
data.roll = mapJoystickValues( analogRead(3), 34, 522, 1020, true );

radio.write(&data, sizeof(MyData));//Enviamos los datos
}





Ver otro tutorial aquí: