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

Receptor RC con Arduino y NRF24





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 módulo NRF24L01 (1€-2.5€) LINK eBay
3. Módulo serial TTL/FTDI FT232RL (Para programar el Arduino. Se podrá usar para futuros proyectos también) (2€-3€) LINK eBay
4. Bateria 9V (2€)
5. Cables conectores, soldador, estaño (0€)



Introducción!

Ya tenemos una señal que nos llegara desde e transmisor creado en otro tutorial. Debemos recibir dicha señal, mapear los valores en el rango deseado y usar una salida PPM para conectarl nuestro receptro a cualquier otra aplicación RC (dron, robot, etc...). Otra opción sería usar 4 salidas analógicas, una para cada canal igual que un receptor RC normal. El uso de comunicación PPM es mucho ams util en el caso de hacer una comunicación entre dos arduinos así que si nuestro receptor lo vamos a conectar a un otro arduino que controlara un robot sería mejor utilizar el canal PPM.

Esquemático!

Conexiones!

Primero de todo necesitamos 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. Una vez lo programamos conectaroemos el Vcc directamente al pin RAW con un voltaje entre 6 y 12 voltios.

Para el módulo NRF24 conectaremos los pines de GND y Vcc, pero atención. El módulo utiliza 3.3 voltios asi que lo conectaremos al segundo Vcc de 3.3 voltios. Conectamos los 5 pines necesarios a los pines digitales del arduino 9, 10, 11, 12 y 13. Conectamos el módulo FTDI a un PC a través del USB y estamos listos para programar.



Puedes descargar la librería NRF24 aquí:

Para instalarla simplemente ir a "Programa" luego en "importar librería" y abrid el archivo .zip que se ha descargado.



Codigo!

/* Receptor de 4 canales utilizando NRF24 (salida PPM) */

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
////////////////////// CONFIGURATION del PPM//////////////////////////
#define channel_number 4 //tendremos 4 canales
#define sigPin 2 //Utilizaremos el pin 2 del arduino
#define PPM_FrLen 27000 //cadros por segundo del PPM en microsegunods (1ms = 1000µs)
#define PPM_PulseLen 400 //configuramos el ancho del pulso PPM
//////////////////////////////////////////////////////////////////

int ppm[channel_number];

const uint64_t pipeIn = 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;

setPPMValuesFromData();//llamamos esta fución que mapeará
//las señales recibidas
}

void setPPMValuesFromData()
{
ppm[0] = map(data.throttle, 0, 255, 1000, 2000);
ppm[1] = map(data.yaw, 0, 255, 1000, 2000);
ppm[2] = map(data.pitch, 0, 255, 1000, 2000);
ppm[3] = map(data.roll, 0, 255, 1000, 2000);
//Esete es un ejemplo utilizado para un dron. El dron necesita señales
//en microsegunods para el control de los motores de 1000 a 2000. Es por eso
//que he mapeado los datos de esta manera. Cambiad los valores para que se
//ajusten a su aplicación.
}

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

void setupPPM() {
pinMode(sigPin, OUTPUT);
digitalWrite(sigPin, 0); //Ponemos el pin de la señal PPM en su estado "normal" (off)

cli();
TCCR1A = 0; // el registro TCCR1 lo ponemos a 0
TCCR1B = 0;

OCR1A = 100;
TCCR1B |= (1 << WGM12); // encendemos el modo CTC
TCCR1B |= (1 << CS11); // 8 prescaler: 0,5 microsecondos a 16mhz
TIMSK1 |= (1 << OCIE1A); // Habilitamos interupción por timer
sei();
}

void setup()
{
resetData();
setupPPM();

radio.begin();
radio.setAutoAck(false);
radio.setDataRate(RF24_250KBPS);

radio.openReadingPipe(1,pipeIn);
radio.startListening();

}

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

unsigned long lastRecvTime = 0;

void recvData()
{
while ( radio.available() ) {
radio.read(&data, sizeof(MyData));
lastRecvTime = millis();
}
}

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

void loop()
{
recvData();

unsigned long now = millis();
if ( now - lastRecvTime > 1000 ) {
// Ha perdido la señal?
resetData();
}

setPPMValuesFromData();
}

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

#error Error creado especialmente para configurar esta parte. Asegurese de que tu clockMultiplier es correcto.
#define clockMultiplier 1 // configura esto a 2 si utilizas un arduino de 16MHz, dejalo en 1 si es de 8MHz

ISR(TIMER1_COMPA_vect){
static boolean state = true;

TCNT1 = 0;

if ( state ) {
//end pulse
PORTD = PORTD & ~B00000100; // apagamos el pin2
OCR1A = PPM_PulseLen * clockMultiplier;
state = false;
}
else {
//start pulse
static byte cur_chan_numb;
static unsigned int calc_rest;

PORTD = PORTD | B00000100; // encendemos el pin2.
state = true;

if(cur_chan_numb >= channel_number) {
cur_chan_numb = 0;
calc_rest += PPM_PulseLen;
OCR1A = (PPM_FrLen - calc_rest) * clockMultiplier;
calc_rest = 0;
}
else {
OCR1A = (ppm[cur_chan_numb] - PPM_PulseLen) * clockMultiplier;
calc_rest += ppm[cur_chan_numb];
cur_chan_numb++;
}
}
}





Ver el anterior tutorial aquí:








Electrónica

El funcionamiento del siguiente dispositivo está basado en el efecto Edison. Edison fue el primero que observó en 1883 la emisión termoiónica, al colocar una lámina dentro de una bombilla para evitar el ennegrecimiento que producía en la ampolla de vidrio el filamento de carbón. Cuando se polarizaba positivamente la lámina metálica respecto al filamento, se producía una pequeña corriente entre el filamento y la lámina. Este hecho se producía porque los electrones de los átomos del filamento, al recibir una gran cantidad de energía en forma de calor, escapaban de la atracción del núcleo (emisión termoiónica) y, atravesando el espacio vacío dentro de la bombilla, eran atraídos por la polaridad positiva de la lámina. El ingeniero británico Sir John Ambrose Fleming (1849-1945) aplicó el efecto Edison a un tubo para detectar las ondas hertzianas e inventó así el DIODO, primer tubo electrónico en el que se había hecho el vacío y en cuyo interior existía un ÁNODO (electrodo positivo) y un CÁTODO (electrodo negativo). El último, al alcanzar el estado de incandescencia, emitía electrones con carga negativa que eran atraídos por el ánodo; es decir, el diodo actuaba como una válvula que sólo dejaba pasar la corriente en un sentido. El otro gran paso lo dio Lee De Forest cuando inventó el triodo en 1906. Este dispositivo es básicamente como el diodo de vacío, pero se le añadió una rejilla de control situada entre el cátodo y la placa, con el objeto de modificar la nube electrónica del cátodo, variando así la corriente de placa. Este fue un paso muy importante para la fabricación de los primeros amplificadores de sonido, receptores de radio, televisores, etc. Lee De Forest es considerado el Padre de la electrónica, ya que antes del Triodo, solo nos limitábamos a convertir la corriente alterna en corriente directa o continua, o sea, solo se construían las fuentes de Alimentación, pero con la creación del Triodo de Vacío, vino la Amplificación de todo tipo de señales, sobre todo la de Audio, la Radio, la TV y todo lo demás, esto hizo que la industria de estos equipos tuvieran un repunte tan grande que ya para las décadas superiores a 1930 se acuñara la palabra por primera vez de "Electrónica" para referirse a la tecnología de estos equipos emergentes. Conforme pasaba el tiempo, las válvulas de vacío se fueron perfeccionando y mejorando, apareciendo otros tipos, como los tetrodos (válvulas de cuatro electrodos), los pentodos (cinco electrodos), otras válvulas para aplicaciones de alta potencia, etc. Dentro de los perfeccionamientos de las válvulas se encontraba su miniaturización. Pero fue definitivamente con el transistor, aparecido de la mano de Bardeen y Brattain, de la Bell Telephone Company, en 1948, cuando se permitió aún una mayor miniaturización de aparatos tales como las radios. El transistor de unión apareció algo más tarde, en 1949. Este es el dispositivo utilizado actualmente para la mayoría de las aplicaciones de la electrónica. Sus ventajas respecto a las válvulas son entre otras: menor tamaño y fragilidad, mayor rendimiento energético, menores tensiones de alimentación, etc. El transistor no funciona en vacío como las válvulas, sino en un estado sólido semiconductor (silicio), razón por la que no necesita centenares de voltios de tensión para funcionar. A pesar de la expansión de los semiconductores, todavía se siguen utilizando las válvulas en pequeños círculos audiófilos, porque constituyen uno de sus mitos1 más extendidos. El transistor tiene tres terminales (el emisor, la base y el colector) y se asemeja a un triodo: la base sería la rejilla de control, el emisor el cátodo, y el colector la placa. Polarizando adecuadamente estos tres terminales se consigue controlar una gran corriente de colector a partir de una pequeña corriente de base. En 1958 se desarrolló el primer circuito integrado, que alojaba seis transistores en un único chip. En 1970 se desarrolló el primer microprocesador, Intel 4004. En la actualidad, los campos de desarrollo de la electrónica son tan vastos que se ha dividido en varias disciplinas especializadas. La mayor división es la que distingue la electrónica analógica de la electrónica digital. La electrónica es, por tanto, una de las ramas de la ingeniería con mayor proyección en el futuro, junto con la informática.