Programador de ESC con arduino

Programador de ESC con arduino

Para el control de los motores brushless, ampliamente utilizados en radiocontrol, se utiliza un circuito electrónico denominado ESC.


Estos controladores se programan con una emisora de Radio Control y su correspondiente receptor al que conectamos el ESC. Una vez programados, se controlan como si fueran servos normales.
Hay una serie de códigos acústicos a base de pitidos que emite el ESC con los que sabemos los parámetros que estamos configurando.
Habrá que consultar el datasheet del ESC para conocer esos códigos.

Para nuestro proyecto (un zepellin) no necesitabamos la emisora, ya que pensamos controlar el zepellin desde una tablet por WIFI. El control lo haremos con un arduino y una RaspberryPi.

Aquí os presentamos un circuito con arduino UNO que nos permite programar los ESC sin necesidad de comprarnos una emisora de RC. Dispone de tres botones que hacen el efecto de mando al máximo, medio y mínimo que genera el mando de RC. Os dejamos el esquema y el programa del arduino. Sólo hay que conectar el ESC y seguir los códigos de pitidos para programarlos como nos interese.

Aquí va el programa que hay que cargar en el arduino:

#include <Servo .h>

Servo esc;

int ACELERAMAX;
int ACELERAMED;
int ACELERAMIN;
void setup(){
pinMode (2,INPUT);
pinMode (3,INPUT);
pinMode (4,INPUT);
esc.attach (9);
// esc.writeMicroseconds(0);
Serial.begin (9600);
}
void loop() {
ACELERAMIN = digitalRead(2);
ACELERAMED = digitalRead(3);
ACELERAMAX = digitalRead(4);

if(ACELERAMAX == 0) {
esc.writeMicroseconds(1990);
Serial.println («Max»);
}

else if(ACELERAMED == 0) {
esc.writeMicroseconds(1470);
Serial.println («Med»);
}

else if(ACELERAMIN == 0) {
esc.writeMicroseconds(1130);
Serial.println («Min»);
}

}

Aplicaciones móviles para clase

Aplicaciones móviles para clase

Hace un año tuvimos el cambio de LOGSE a LOE en el ciclo de grado superior de electrónica. En el caso de este ciclo no ha sido un simple ajuste de temarios, los cambios han sido de más calado, pasando de desarrollar circuitos electrónicos a mantenerlos. Como todos los cambios ha habido opiniones para todos los gustos pero en general no acaba de convencer a la mayoría del sistema educativo. El cambio ha supuesto y continúa suponiendo un gran esfuerzo del profesorado para adaptar los temarios, las asignaturas, el material… Todo ello ha coincidido con recortes de sueldos, aumento de ratios, recortes de equipamientos y aumento de matrículas provocados por la crisis. Como a nuestros gobernantes no les ha parecido suficiente, están apunto de cambiar otra vez de sistema educativo para pasar a otro denominado LOMCE, esperemos que por el bien del sistema educativo quede solo en un susto.

Con el cambio a LOE, una de las primeras dudas que tuve en electrónica digital, ahora llamada Equipos Microprogramables (menudo nombrecito), es que ¿Siendo el ciclo mantenimiento, había que seguir dando Karnaugh sin tener que diseñar? La respuesta es si porque está en el DCB, ¿pero con cuanta profundidad? he decido que no mucha. Con 4 entradas y sin profundizar mucho es más que suficiente, no merece la pena dedicar mucho tiempo, porque las posibilidades tecnológicas que hay hoy en día hace que dedicar mucho tiempo a algunas cosas sea perder el tiempo.
Por una parte hay múltiples videos de distintos autores (algunos mejores que otros) donde nos explican las técnicas y como usarlas. Un ejemplo de ello es un video sobre la realización de Mapas de Karnaugh de «profesorparticular09».

Pero además no hace falta dominar la técnica ya que hay software que es capaz de simplificar una tabla de la verdad de múltiples entradas. Sin este software es prácticamente imposible simplificar la tabla a mano cuando tenemos 5, 6, 7… entradas. Para la simplificaciones complejas hasta ahora usaba Multisim 11, aunque es un software simple de usar, supone una larga instalación, muchos Megas de disco duro ocupado, es de pago y le daba un uso muy reducido. Encima para las simulaciones de circuitos digitales usamos Proteus 7 en vez de Multisim 11, por lo que no tiene mucho sentido tener los dos softwares instalados. El problema es que Proteus no trae (o no se la he encontrado) la opción de realizar simplificaciones de tablas de la verdad.
En su lugar acabo de encontrar una solución simple y muy accesible tanto para los alumnos como para mi mismo. En el Play Store de Android hay aplicaciones que realizan esta función. Son muy simples de usar, son gratuitas, realiza simplificaciones de 10 entradas y sin apenas esfuerzo. Aunque hay muchas aplicaciones la que he usado es FLXKarnaugh. Os dejo una imagen para que veáis como queda en una tablet.

Cada vez hay más aplicaciones simples que de una manera sencilla nos ahorra mucho trabajo. Otro tipo de aplicaciones que llevamos usando unos cuantos años, son las aplicaciones para comunicación por bluetooth. La primera que descubrimos fue el «Blue Control«, con este software se obtiene un entorno de botones ideal para poder dirigir un robot o aplicarlo a cualquier proyecto. Aunque está en ingles explicado, es muy sencillo de entender gracias a la ayuda que trae. Su funcionamiento es muy simple al pulsar un botón se envía un carácter por bluetooth, este caracter lo recibe un receptor bluetooth que tenemos conectado a un microcontrolador. Solo nos queda hacer un programa que según el carácter recibido, realice una acción o otra.

Ahora ya no necesitamos tanto el Blue Control ya que hemos ido obteniendo conocimientos y formación en Android. De esta manera los alumnos están pudiendo realizar sus propias aplicaciones con los botones que necesitan y la estructura que quieran. Pero echábamos en falta un Hiperterminal como en Windows pero para el movil, hasta que el año pasado encontramos la aplicación BlueTerm.

Esto va en aumento cada poco tiempo estamos encontrando aplicaciones de móviles que nos ayudan y nos hacen la vida más sencilla. Ya estamos esperando la aplicación que Tknika está desarrollando para hacer el seguimiento de los alumnos en clase. Espero que también desarrollen una aplicación para meter la faltas de asistencia y no tengamos que seguir usando la página web ¿Que aplicaciones habéis encontrado para poder usar en clase?

Características de una Impresora 3D Tumaker Voladora

Características de una Impresora 3D Tumaker Voladora

¿Qué es una impresora 3D? 

Es un dispositivo capaz de generar objetos solidos tridimensionales partiendo de un diseño digitalizado. Las impresoras 3D construyen objetos solidos mediante capas de hilo  que se imprime pulverizando un material adherente que se fija en finas capas superpuestas. Las capas reproducen físicamente el objeto  capa a capa. Se pueden utilizar diferentes materiales y colores en una sola impresión.

Lellenda 1: La impresora 3D Voladora
.

TUMAKER

El objetivo es trabajar para alcanzar los límites de la tecnología, con el fin de poner las herramientas en manos de las personas creativas y empresas innovadoras para que sean capaces de avanzar hacia una sociedad mejor y más sostenible.

Tumaker es algo más que una empresa de impresoras 3D, producen valor añadido y acompañamiento experto para educar y ayudar a tu empresa, colegio, colectivo o a ti mismo a utilizar un ecosistema de fabricación personal asequible y de calidad.

Lellenda 2: Tumaker fabricación personal

.
VOLADORA
La Voladora es la actual impresora 3D de Tumaker, se fabrica totalmente en Oiartzun y se divide en dos partes fundamentales, el Hardware y el Software.

HARDWARE  

Se refiere a las partes tangibles o físicas.

ELECTRÓNICA

La placa que utiliza la Voladora es Megatronics V2, es una placa que tiene las entradas/salidas configuradas para el uso de la impresora 3D como (motores de los «ejes X, Y, Z», motores del extrusor, finales de carrera, termistores, ventiladores variables, resistencias para calentar el Hotend y la cama,..)  y el micro controlador de la placa es un Arduino Mega 2560. Para controlar la tensión de los motores se utilizan los «Stepper-s» también conocidos como (Pololu-s o Driver-s).

Lellenda 3: Megatronisc V2

.

Fuente de alimentación externa de 12v y hasta 18A.
Conectividad de la electrónica, tiene la opción de conectarse mediante USB y SD Card.

MECÁNICA

Todo el diseño de la Voladora se ha hecho en Tumaker.

  • EL chasis está compuesto por perfiles de aluminio de alta resistencia y embellecedores de metacrilato colores personalizables al gusto del cliente.
  • Apoyos paramétricos, las patas de la impresora reducen las vibraciones, ruidos y permite ajustar la altura de la impresora.
  • Rodamientos lineales dobles de alta calidad en los ejes X, Y, Z para el desplazamiento ligero.
  • Varillas rectificadas y calibradas.

EJES X, Y, Z 

Los ejes X, Y, Z utilizan motores paso a paso, estos motores son ideales para la creación de objetos tridimensionales por tener gran precisión es sus movimientos, convierte una serie de impulsos eléctricos en desplazamientos angulares discretos, es decir,  avanzar una serie de grados.

 

Lellenda 4: Motor paso a paso

.

La Voladora utiliza correas para convertir los movimientos de los motores paso a paso en desplazamientos precisos del carro (que es donde va el Hotend).

Lellenda 5: Correas de los ejes X e Y

  .

EXTRUSOR

El extrusor es una de las partes más importantes de las impresoras 3D. La Voladora utiliza el sistema  de extrusión Bowden porque es ligero y optimizado, permite impresiones más rápidas y más precisas proporcionando mejores resultados que los sistemas tradicionales de extrusión directa.
El extrusor también utiliza motores paso a paso por su gran precisión.

Lellenda 6: Extrusor

.

El sistema Bowden es el mismo sistema que utiliza el freno de las bicicletas, pero en vez del cable se utiliza el filamento, consisten en llevar el mismo movimiento y fuerza que hace el motor del extrusor en el filamento, al Hotend, sin pérdidas.

Lellenda 7: Bowden

.

CARRO (HOTEND)

El carro es el objeto que sujeta el Hotend, como el nombre indica «final caliente» es la punta donde sale el filamento fundido.
Los Hotend que pueden utilizar las Voladoras son un J-head o un All-metal. (Actualmente en las nuevas versiones que están a punto de salir, se utiliza un All-metal el «E3D»)¿Cómo consigue que el filamento salga fundido?

El Hotend en su interior tiene una resistencia y un termistor. El termistor es un sensor resistivo de temperatura, con ello sabemos la temperatura que tiene el Hotend. La resistencia se utiliza para calentar el Hotend y fundir el filamento. (Con un PID adecuado conseguiremos que el Hotend consiga le temperatura que deseemos en el menor tiempo posible y con la mayor exactitud.)
El extrusor empuja el filamento a través del Bowden y sale fundido del Hotend.

 

Lellenda 8: Filamenta saliendo del Hotend

.

  • La Voladora puede tener dos Hotend-s para conseguir imprimir objetos de diferentes materiales y colores.
  • Los Hotend-s pueden tener diferentes diámetros de  boquilla: 0.3mm/0.5mm… el que utiliza la Voladora es 0.4mm

CAMA DE IMPRESIÓN

La cama de impresión es la superficie donde se creara el objeto tridimensional, el tamaño de la superficie donde se puede imprimir es de 25x25x19 cm. Una Voladora puede llevar cama caliente o no. Se compone de un termistor para saber que temperatura tiene y una resistencia para calentar.
La cama caliente es una superficie que se calienta para que se adhiera mejor el filamento fundido y tiene una superficie de impresión de 21×21 cm.

Lellenda 9: Cama caliente

.
FILAMENTO

El filamento es el material que se funde y crea el objeto tridimensional. Puede ser de diferentes colores y de diferentes materiales (PLA, ABS, Nylon, resina de madera, filamento soluble, material flexible, filamento conductor,..)
Cada filamento es diferente y se funde a diferentes temperaturas, las temperaturas varían dependiendo del material y del color, es recomendable utilizar la temperatura que recomienda el fabricante.

Lellenda 10: Piezas de diferentes materiales y colores

.
SOFTWARE

Equipamiento lógico de un sistema informático, los programas que se utilizan son los siguientes:

CURA

Es un software que filetea los objetos diseñados en otros software-s como (SolidWorks, SolidEdge, SketchUp,…). Una vez fileteado conseguiremos un archivo «G-code», esto es un conjunto de órdenes en lenguaje C que necesitamos para la impresión 3D.
Los tipos de ficheros que se pueden usar en estos software-s son: STL, OBJ, AMF (los más utilizados y los que se recomiendan) entre otros.

REPETIER HOST 

Una vez tienes el «G-code» se carga en el software Repetier Host que es el programa que le manda las órdenes que interpreta del «G-code» a la impresora 3D y así creando el objeto tridimensional.
También se puede controlar la impresora 3D.

FIRMWARE

Es un bloque de instrucciones de máquina para propósitos específicos. El firmware que utiliza la Voladora es uno llamado «Marlin» pero con muchas modificaciones y ajustada a la Voladora, únicamente sirve para esta impresora 3D. El firmware, es un programa en lenguaje C y se carga en el micro controlador Arduino Mega 2560.

CLIENTES 

PARTICULARES

Uno de los habituales clientes son los particulares, creativos y con imaginación, también conocidos como «MAKERS». Esta impresora 3D, la Voladora, es perfecta para este tipo de clientes, con precios razonables y con multitud de accesorios.

CENTROS DE FORMACIÓN

Otro de los clientes son los centros de formación, suelen interesarse por las nuevas tecnologías y la innovación, (la Voladora es una tecnología medianamente nueva, al alcance de todos, e innovadora) además da rienda suelta a la imaginación de los alumnos.
El pionero en crear laboratorios de impresoras 3D «Fab-Lab»  es el Instituto de formación profesional Don Bosco, pero esto no sería posible sin la colaboración del departamento de Electrónica y la empresa Tumaker.

EN ÁREAS DE LA MEDICINA 

La Voladora es una perfecta herramienta de trabajo para varios ámbitos de la medicina, por la calidad de impresión que tiene, por el bajo coste, por la diversidad de materiales,..
Suelen adquirir esta impresora los médicos especializados, tales como, Odontólogos, Podólogos, Cirujanos… para crear moldes, prótesis, implantes…

Dado electrónico

Dado electrónico

En este post os vamos a exponer como construir y desarrollar un dado electrónico (ver Ilustración I).

I. Ilustración: Dado eléctronico

Se pretende diseñar un dado electrónico que al pulsar un botón pulsador va a hacer una secuenciación de luces en los 6 diodos leds que constituyen el dado, y que al soltar el botón nos sacará un número aleatorio del uno al seis. Después de 3 segundos, los diodos leds se apagaran.

Para construir este prototipo es necesario hacer el siguiente acopio de material:

  • 7 Diodos led
  • 1 Array de resistencias de 330 Ohm
  • 1 Regulador  7805
  • 1 Condensador  220 Kpf , K5m
  • 1 Resistencia Pull up, 10kOhm
  • 1 Pulsador
  • 2 Interruptores
  • 1 Conectores molex 9pin
  • 2 Conectores molex 2 pin
  • 1 PIC  16F886
  • 1 PCB a doble cara
  • 1 Caja diseñada e imprimida en una impresora 3D

Las Ilustraciones II, III y IV muestran los esquemas en Proteus y Ares que se han utilizado en las diferentes fases de desarrollo del dado:

.

Ilustracion II: Esquema ISIS para la simulación

 

Ilustracion III: Esquema ISIS para la PCB

 

Ilustracion IV: Esquema ARES de la PCB

.
Este es el código fuente que se ha generado para programar el PIC16F886:

 #include <16f886 data-blogger-escaped-.h="">
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES PUT                      //Power Up Timer
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOCPD                    //No EE protection
#FUSES NOBROWNOUT               //No brownout reset
//#FUSES IESO                     //Internal External Switch Over mode enabled
//#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOWRT                    //Program memory not write protected
#FUSES BORV40                   //Brownout reset at 4.0V
#FUSES INTRC_IO
//#FUSES INTRC

#use delay(clock=4000000)

int numale=0;   //Creamos una variable donde guardaremos el numero aleatorio
int x=0x01;  //Inicializamos una variable que luego utilizaremos en la secuenciacion de los leds

#int_RTCC //Inicio del tratamiento de la interrupción del TMR0
void rtcc_secuenciacion(void)     //Funcion del TMR0 Secuenciacion de los LEDS
{
   rotate_left(&x,1);  //Funcion rotate para desplazar un bit hacia la izquierda
   output_b(x);  // Mostramos el valor de la variable X
   delay_ms(300); // Esperamos 300ms
}

void main(void) //Programa principal
{
    setup_adc_ports(NO_ANALOGS);
    set_tris_a(0b11111111);  //Declaramos el Puerto “A” como entrada
    set_tris_b(0b00000000);  // Declaramos el Puerto “B” como salida
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);    //TMR0 interno con preescaler de 1
    set_timer0 (0); // Cargar el TMR0 al maximo valor
    setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 ); //Timer1 interno
    set_timer1(0); // Cargar el Timer1 al maximo valor
    enable_interrupts(global); //Habilita interrupciones
    disable_interrupts(int_timer0); // desabilitar interrupcion del TMR0
    disable_interrupts(int_timer1); // deshabilitar interrupcion del TMR1
    output_b(0); // Inicializacion de los LED a apagados
    
    while(1) //Bucle infinito
    {
        while(input(PIN_A0)==0)  // Esperamos a que se pulse el boton, mientras no se pulse no pasa de este bucle
            ;
        delay_ms(20);  // un delay para evitar el efecto rebote de los pulsadores
        enable_interrupts(int_timer0);    //habilitamos interrupcion del TMR0
        while(input(PIN_A0)==1)  //Un bucle que parara en cuanto se deje de pulsar el boton
            ;
        delay_ms(20);
        disable_interrupts(int_timer0);  // desabilitar interrupcion del TMR0
        numale=(get_timer1()%6)+1; //Obtencion del numero aleatorio que guardaremos en una variable, con la function get_timer1 conseguimos un numero practicamente aleatorio con la formula aplicada
        if (numale==1){ // Nos mostrara el numero 1 en los LEDs en caso de que el numero aleatorio sea 1
            output_b(0b10000000);
            
        }
        else if (numale==2){
            output_b(0b00011000);
            
        }
        else if (numale==3){
            output_b(0b10011000);
            
        }
        else if (numale==4){
            output_b(0b01011010);
            
        }
        else if (numale==5){
            output_b(0b11011010);
            ;
        }
        else if (numale==6){
            output_b(0b01111110);
        
        }
        delay_ms(3000); // Esperamos 3 seg
        output_b(0);
     }
}

La caja o envolvente del dado (ver ilustracion V) ha sido bajada de thingiverse en esta dirección:

http://www.thingiverse.com/thing:26278/#files

Ilustracion V: Diseño 3D de la caja

Trás ensamblar todos los elementos que constituyen el proyecto este es el producto final (ver Ilustración VI y VII):

Ilustración VI: Vista interna del proyecto

Ilustración VII: Dos dados diferentes

 

.

Cadenas, sistemas y herramientas manuales de montaje y de soldadura de PCB´s

Cadenas, sistemas y herramientas manuales de montaje y de soldadura de PCB´s

IDK elektronika enpresaren kolaborazioarekin PCB-en montatze-lan eta soldatze-lanen prozedurak aztertzeko aukera izan dugu. Bideo kamera eskuan hartu eta IDK-tik bueltaka ibili gara eskuzko soldatze teknika eta erremintak ezagutzeko, baita montatze eta soldatze makinen funtzionamendua bertatik bertara ikusteko ere.

Bizipen erreal bat ingurune produktibo erreal batean! Grabatutakoarekin 2 bideomuntai hauek uzten dizkizuegu PCB-en eraikuntzara bideratutako euskal enpresa baten teknologia ezagutzeko.
.

Montatze eta soldatze-lan kate eta sistemak

.

 

  Eskuzko soldatze-lanen teknikak eta erremintak