Regalos para apasionados de la tecnologia


En  la actualidad  se pueden encontrar todo tipo de artilugios tecnológicos a cualquier precio y para todos los gustos, pero a veces queremos llegar más lejos  construyendo nosotros mismos muestras propias creaciones . En esta linea, tanto para  potenciar nuestra creatividad ,como ayudarnos en nuestros proyectos hemos pensado en una lista de regalos tecnológicos que  quizás puedan servir de inspiración  .

Raspberri Pi 3

Actualmente es una de las placas mas potentes que existe (incluso mucho mas que Arduino y todos sus clones) gracias a su potente chipset Broadcom a 1.2 GHz con procesador ARM Cortex-A53 de 64 bits y cuatro núcleos,coprocesador multimedia de doble núcleo Videocore IV, memoria de 1 GB LPDDR2 y Bluetooth v4.1 así como sus conexiones :

  • Ethernet,
  • HDMI
  • VGA
  •  CSI,
  •  USB ( 4 puertos)
Esta nueva versión  integra un chip que la dota con conectividad Wifi y Bluetooth 4.1 de bajo consumo y cuenta con administración de energía mejorada que permite trabajar con más dispositivos USB,Permite usar más energía a los puertos USB. Podrás conectar más dispositivos a los puertos USB sin necesidad de usar hubs USB alimentados. También al no necesitar usar adaptadores WiFi por USB, tendrá más energía disponible en los puertos.
Raspberry pi 3
Para empezar a usar esta estupenda placa  tendremos que crear la imagen del SO en una SD  como describimos en este post. En cuanto a periféricos ,podemos conectar un ratón o teclado convencional con conexión usb ,  o la mejor opción ,optar por  un mini teclado y ratón  inalambricos a 2.4GHz que se pueden comprar por 15€ .Esta opción alimentada por baterías de litio , simplificará las conexiones al usar un sólo puerto usb para el dongle  y nos permitirá interactuar con la RPIII con mayor libertad.
raton y teclado en dongle
En cuanto a  la alimentación  podemos usar  un  cargador de móvil  convencional siempre que suministre al menos 1Amp (5VDC)  y si se pregunta por la caja , aunque se puede comprar lo mejor es construirnosla nosotros mismos ,al puro estilo maker.
La RPI como podemos ver en este blog , permite desde crear un ordenador económico  con Pixel (Debian) hasta un emulador de juegos clásicos ,un NAS, un hub domótico ,aplicaciones de IoT o el centro multimedia definitivo. Sale por 40 euros.

 

Kuman K11 Arduino

Para aquellas personas que opte por Arduino , exite un Kit de iniciación para Arduino con 31 componentes donde se incluye como no podia ser otra manera el corazón :na placa compatible con Arduino UNO R3.

Ademas por supuesto ,si le e gusta puede ir ampliando con más componentes. El precio del kit  básico incluido el Ardunino Uno R3 cuesta 46 euros.

 

 

Kit de inicacion para Arduino

Los componentes que incluye este kit son los siguientes;

  •  UNO R3 + cable USB x1
  •  Desarrollo Junta de Expansión x1
  • Mini tabla de pan x1
  •  Placa de pan 830 Point Solderless x1
  •  Caja de componentes SMD x1
  • LED (rojo) x5
  •  LED (amarillo) x5
  •  LED (verde) x5
  •  Buzzer activo x1
  •  Buzzer pasivo x1
  •  Mini botón x4
  •  Displays LED de siete segmentos (1 dígito) x2
  • Interruptores de bola x2
  • LDR (Resistencia dependientes de la luz) x3
  •  Potenciómetro x1
  •  Sensor de temperatura LM35 x1
  •  Sensor de llama x1
  • Sensor infrarrojo x1
  •  Resistencias de 220 ohmios x8
  • Resistencias de 1k ohmio x5
  • Resistencia de 10k ohmios x5
  • Cabezal de 40 pines x1
  • Hembra de 4pcs los 20cm al cable femenino x1 de Dupont
  •  Cables de puente x20
  • Batería 9V x1
  •  Clip de batería de 9V x1
  •  Control Remoto IR x1
  •  1602 Módulos LCD x1
  •  Servomotores SG90 9G x1
  •  Tarjeta de conductor ULN2003 x1
  •  Motor paso a paso 5V x1
  •  Caja de almacenaje x1

Este es un Super Starter Kit actualizado, desarrollado especialmente para aquellos principiantes que estén interesados en Arduino  con componentes de alta calidad,  pues como vemos, incluye un conjunto completo de componentes electrónicos útiles para Arduino conteniendo todos los componentes que necesita para comenzar su aprendizaje de programación para Arduino .

Es perfecto para las personas que desean iniciarse en el mundo del arduino o tengan alguna asignatura en sus estudios, ya que tiene una gran variedad de accesorios que le permiten “trastear” en el increíble mundo de Arduino ( la verdad no he visto que fuera necesario comprar nada mas). Todos los componentes ademas están organizados en una caja de plástico con separadores ,lo cual   se agradece para tenerlo todo recogido.

Los tutoriales detallados incluyendo la introducción del proyecto y el código fuente, contactando con el vendedor,   aunque en este humilde blog, o en Internet, encontrará miles de ejemplos para sacarle el máximo partido a este kit.

 

 

Memoria diminuta

Si su televisor o centro multimedia tiene capacidad para reproducir contenido desde una memoria USB, este modelo de Sandisk es USB 3.0 para una transferencia rápida de archivos desde su ordenador, y a la vez muy pequeño para que pase desapercibido en el puerto de su televisor.

El modelo de  64GB  sale por unos  17€  ,pero las hay de  128 GB  por  30€. ( o de capacidades inferiores de 16GB o 32GB rondando los precios entre 6€ y 10€)

 

memoria diminuta

SSD de 120 GB

Gracias a un disco sólido se  puede ampliar la vida útil de un ordenador y maximizar la inversión actual al sustituir la unidad de disco duro convencional ( que podrá seguir usando gracias a una económica  caja )   por una unidad de estado sólido (SSD) Kingston.

Esta es  la forma más rentable de mejorar de manera espectacular la capacidad de respuesta del sistema mejorando machismo el tiempo de arranque y en general el rendimiento  ya que el tiempo de acceso a disco  es espectacularmente mejor que en los discos convencionales.

Este modelo  incluyen una controladora LSI SandForce optimizada para memoria Flash de nueva generación con la que ofrecen el súmmum de la calidad y la fiabilidad de dos marcas líder de SSD. Al estar constituidas por componentes de estado sólido y no tener piezas móviles, son resistentes a los golpes y las caídas. Las unidades de estado sólido Kingston están respaldadas por soporte técnico gratuito y la legendaria fiabilidad Kingston

Este modelo de  SSD  con una capacidad de 120GB ( mas que suficiente para contener Windows 10) o de 2.5 pulgadas para potenciar su PC o para incluirlo en un NAS, sale por por poco dinero: 48 euros.

ssd de 12GB

Kit de herramientas

Ya sea para montar la última gráfica que le ha llegado ,así como para cambiar la pantalla rota de su smarthone ,la verdad es que  uno nunca sabe cuándo necesitará un set de herramientas tan completo pues incluye diferentes puntas para diferentes propósitos: puntiaguda para alta precisión, curvada para exactitud ergonómica y redondeada para levantar componentes más pesados

Son perfectas para tareas que requieran coger, sujetar, extraer y/o apretar con componentes .Incluye capa protectora contra la ESD para evitar dañar los componentes electrónicos sensibles

 

De iFixit y cuesta 55 euros. quizás un poco alto pero es sabido que esta marca destaca por su alta calidad ,asi que deberíamos  sopesar esta importante característica pues a veces nuestras herramientas no están a la altura de lo que esperamos de  ellas.

Clon de hromecast

La manera más sencilla y con más compatibilidad para ver contenido en un televisor controlando la fuente desde un smartphone. El original de Google cuesta sobre los 40€  pero hay  muchas versiones clónicas que hacen prácticamente la misma función  , por muchísimo  menos coste como por ejemplo el MiraScreen que cuesta sólo  14 euros. 

Este dispositivo soporta compartir Pantalla pudiendo usar Airplay, miracast o  DLNA (DLNA: Estándar) y la conectividad apoyada es  Wi-Fi: 802.11b / g / n inalámbrica de 2.4GHz WiFi 150Mbps  y  lleva  antena externa  WiFi para proporcionar 10M cobertura

La salida de vídeo es hasta 1080p HDMI de salida soportando  los formatos :

  • Video :AVI / DIVX / MKV / TS / DAT / MPG / MPRG / MOV / MP4 / RM / RMVB / WMV. Soporte de formatos de audio: MP1 / MP2 / MP3 / WMA / OGG / ADPCM-WAV / PCM-WAV / AAC.
  • Audio : .MP3, WAV.
  • Fotos : JPEG / BMP.

 

 

Mirascreen

El consumo de energía ultra bajo, consumiendo  pocas mA y es portátil compacto  para facilitar su transporte.

Hay  personas que lo usan en el coche  pues muchos reproductores de coche cuentan con soporte HDMI, de esta forma desde un teléfono inalámbrico podemos conectarlo  a la pantalla del coche convirtiendo su coche al instante en vehículo inteligente. Otras utilidad  de  est dispositivo es el  E-learning, reunión de negocios pues  nos liberamos de las ataduras de cable, siendo  las reuniones en inteligentes y eficientes. Tambien son perfectas para disfrutar de la gran pantalla como  Ver películas, jugar, crear su propio cine exclusivo,ver fotos juegos ,etc  .

Por cierto el mando a distancia se hace desde el propio  Teléfono ,Labtop o Tablet PC.

 

Sable electrónico Kylo Ren

Para terminar para los mas pequeños   ( o no ) , para practicar de cara a nuevos juegos de Star Wars o simplemente porque quiere ser  como un niño con zapatos nuevos. Este sable se ilumina y lo componen diferentes piezas teniendo el  mismo aspecto que la película.Incluye daga de luz  simulando clásicos sonidos y luces. Es ademas combinable con otros sables Master Jedi (se venden por separado)

Cuesta 30 euros.

sable laser

 

 

Construcción de un droide casero


Para los amantes de Star Wars, si se tienen las ganas  y el tiempo suficiente  también es posible  crear su propia versión de un BB8 en tamaño real usando materiales reciclados.De hecho debido a la limitación de materiales, el autor recurrió a su ingenio usando muchos materiales que encontró a su alrededor como por ejemplo desodorantes roll-on como rodamientos de bolas, de lona como fibra de vidrio, bolas de Navidad como el ojo & etc ..).

Puede parecer poco ortodoxo pero haciendo uso de estos materiales el enfoque en la construcción del proyecto no requiere  impresoras 3D,  CNC o fresadoras.

El androide puede ser controlado por cualquier smartphone y ademas también habla . El diseño del conjunto además el autor decidió limitarlo a $ 120, para que sea más barato que el juguete esfero .

Mas concretamente el autor uso para el cuerpo  del  droide los siguientes materiales:

  • Pelota de playa inflable ( diámetro: 50 cm)
  •  Antiguo Periódico
  •  Llanura de tela de lona
  •  2 botellas de cola blanca ( a.k.a pegamento Elmer )
  • 1 Botella de Woodglue
  •  Negro, gris y naranja ( mandarina ) pintura de aerosol
  •  Roll-on Desodorantes

Y para la cabeza de BB8  los siguientes:

  • Espuma de poliestireno de la bola ( diámetro: 300 mm / 12 pulgadas )
  • Bola de Navidad ( tamaño de un ojo BB8 )
  • Una  antena de WiFi ( Prop solamente)
  • Paños Percha
  • Roll-on Desodorantes
  • Negro, gris y naranja ( mandarina ) pintura de aerosol
  •  Super pegamento
  • Imanes de neodimio

Por supuesto también  hará falta de una mínima  electrónica para gobernar el droide :

  • Arduino Uno
  • Pololu Dual VNH5019 Motor Shield
  • 2x Pololu (19:1) 37D Metal Gearbox
  • Módulo Bluetooth HC05
  • Pack de 4 Cell batería de litio ( 2x )
  • Interruptor,jack  DC  , cable s , estaño para soldar,tec

Aparte de ser muy espectacular  BB8 también tiene un diseño muy interesante de construcción  de modo que uno  no puede dejar de preguntarse cómo funciona este droide

Realmente tomó un poco de ingeniería avanzada y una mente creativa para inventar una cosa así. La idea de cómo funciona el mecanismo, implica en gran medida los conceptos de la física y la electrónica. Todo es cuestión de mantener simpre estable el  centro de gravedad. El diseño BB8 original que se utilizó forma la película, utiliza un diseño de rueda de hámster. Básicamente, hay un robot de dos ruedas rodando dentro de una esfera. La cabeza se mantiene pegada  gracias  a la presencia de imanes.

 

Además, este sitio web explica muy bien, cómo funciona BB8! (http://www.howbb8works.com/ )

Para el cuerpo el autor coloco tiras de papel de periódico en la superficie de la pelota de playa  con su mezcla de pegamento. Básicamente es como una enorme piñata utilizando  la pelota de playa como  molde para el papel maché.

Para acelerar el proceso  adema se puede  utilizar un secador de pelo para acelerar el proceso de secado. O tal vez encender  un ventilador eléctrico para el papel maché y  dejar secar durante la noche.

Sobre el papel ya seco se pude poner  fibra de vidrio o lienzo normal en lugar de la fibra de vidrio. El lienzo se endurece muy bien y funciona como un buen papel maché. (Cartón tela)

Para el proceso de alisado se hace con una multiherramienta con el accesorio de lijar y  una lata de masilla de madera cuidadosamente aplicándolo sobre la superficie exterior del cuerpo de BB8 usando un aplicador de metal para hacer el trabajo. La masilla llena los vacíos.Cualquier exceso de masilla será eliminada después del proceso de lijado.

Una vez seca la masilla el autor lijo  la superficie del cuerpo del BB8 utilizando  un grano grueso (100-400 grit) de papel de lija.

Lijado el cuerpo utilizando videos e imágenes de la red como nuestra referencia dibujo formas circulares mediante el uso de una brújula. Mientras que las líneas rectas que cae sobre la superficie curva del cuerpo pueden ser rastreados con cinta métrica de sastre. Una vez perfilado el autor pintó el cuerpo de BB8 con 3 colores diferentes de pintura en aerosol: blanco, gris y naranja.

Respecto a la cabeza, mide  30 cm de diámetro. Básicamente se trata de una cabeza semicircular con un borde biselado, un poco fuera de la mediana. Se pude utilizar un contenedor de basura como una plantilla, a continuación, utilizar un marcador para marcar su recorte y una sierra para cortar la pelota de espuma de poliestireno en la mitad (casi la mitad).Puede reducir el peso de ahuecamiento la parte interna de la pelota o mediante la fusión / quema de la espuma de poliestireno usando un soplete o un encendedor.Una vez aplicada masilla el autor también pintó la cabeza de BB8 con 3 colores diferentes de pintura en aerosol: blanco, gris y naranja.

BB8  tiene dos antenas: Una es una antena inopertiva de WiFi caliente pegada a la cabeza. Por la otra antena, se utilizó un alambre sólido blanco.

BB8 tiene un mecanismo magnético que mantiene la cabeza erguida. Él tiene una interna y externa. En este  diseño, el autor ha pegado en caliente de cuatro desodorantes roll-on (como  improvisadas rodillos) en una placa de madera redonda. A continuación se adjunta un servo con dos grandes imanes que se le atribuye. La placa está montada a la base con cuatro árboles de madera alargados.

Mecanismo 

Se utiliza una madera MDF de 1/4 del grosor de la base del mecanismo robótico dentro del cuerpo de BB8.

En cuanto a la  batería es una de 4 celdas construida en base de  cuatro baterías 18650 (3.7v 2000 mAh) de iones de litio en serie. 18650 baterías recargables son muy baratos y comunes hoy en día. Hizo dos conjuntos de éstos y los conectó en paralelo que dan un total de 14,4 V (4,000mAh)

Ya solo queda montar la caja de engranajes de metal junto con los soportes en la plataforma de MDF / madera utilizando tuercas y tornillos .

Gracias a una aplicación de teléfono a través de Bluetooth se envían caracteres cada vez que se pulsa un botón. El módulo Bluetooth recibe los datos mientras que el Arduino interpreta y procesa estos datos. El Arduino envía señales al blindaje del conductor del motor para dar una señal de ir por la conmutación de los motores.

Solo nos queda montar el Arduino a la plataforma, enchufar el controlador del motor Escudo encima del Arduino,conectar los cables del motor izquierda a M1A y M1b,conectar los cables del motor derecho de M2A y M2B y finalmente las   baterías Ion-Litio

Para terminar tenemos que conectar el modulo de bluetooth al escudo de Arduino:

 

bluettooth

Y  solo queda programar Arduino . Antes de cargar el código / programa para la placa Arduino Uno, asegúrese de instalar el controlador de biblioteca de Pololu motor. También, por favor no se olvide de desconectar las líneas TX-RX del módulo Bluetooth desde el Arduino. Esto se hace para evitar que el módulo Bluetooth de interferir con el Arduino durante el proceso de programación.

No sabe cómo instalar una biblioteca de Arduino? Encontrar las instrucciones aquí! ( Haga clic en mí ).

 

El autor ha usado  una  aplicación de teléfono  llamada  ‘Arduino Bluetooth RC Car’. Es una aplicación muy fácil de usar.

Cómo usarlo:

  • Descargar la aplicación de la forma de Play Store / itunes.
  •  Poner en marcha la aplicación
  • Abra la ventana de configuración (icono de llave inglesa)
  • Toque; conectar.
  • Seleccione HC-05 (El nombre del módulo Bluetooth)
  •  La luz roja cambiará a verde una vez que se establece la comunicación BT.

 

!Y con esto ya estaría listo el droide!

Si quiere ver el proceso completo puede ver el siguiente vídeo de construcción de droide:

 

 

Es un proyecto grande pero todo está explicado gracias a Instructables y el vídeo anterior  de YouTube . Si cree que no es posible, en el siguiente vídeo puede verlo en acción:

 

Fuente   aqui 

LLega al mercado un MiniArduino


En muchos proyectos ocurre que no es necesario utilizar muchos pines o se necesita una placa lo más reducida en tamaño posible, de modo que Adafruit ha diseñado el Trinket, que es la primera placa programable con el IDE de Arduino que utiliza un ATtiny85.

Este pequeño microcontrolador está lleno de sorpresas con sólo 9gr de peso   y medidas  12 x 7,5 x 1 cm

2016-04-06_23h51_27

No se deje engañar por su pequeño tamaño pues Trinket, tiene 8K de memoria flash, 512 bytes de SRAM y 5 pines I/O incluyendo pines PWM. Puede funcionar a 8 y 16 MHz modificando su oscilador por software.

Se puede programar directamente desde el entorno IDE de Arduino haciendo una simple modificación (ver documentación), aunque tenga en cuenta que debido a que tiene un microcontrolador diferente no es 100% compatible, sino que hay algunas variaciones, como por ejemplo la cantidad de pines disponibles. Por todo lo demás es una placa a un precio muy reducido llena de posibilidades para su proximo proyecto.

Otra peculariedad es que como incluye los pines  sin soldar,puede soldar cables directamente sobre los pads o montar los pines.

Características:

  • Microcontrolador: ATtiny85 (8K flash, 512 byte SRAM, 512 bytes EEPROM)
  • Oscilador interno de 8MHz, puede ajustarse por software a 16MHz
  • USB bootloader con LED indicador. Puede programarse con un USBtinyISP para que pueda programar con AVRdude (con una simple modificación de configuración) y / o el IDE de Arduino (con algunas modificaciones sencillas de configuración)avrdude o desde el IDE de Arduino (con una simple modificación)
  • Conexión Micro-USB para alimentación y programación (no tiene puerto serial)
  • 5.25K bytes disponibles para el programa (2.75K los utiliza el bootloader)
  • Alimentación: 5V ( disponible también en 3V)
  • Regulador interno 3.3V a bordo o regulador de potencia 5.0V con capacidad de salida de 150 mA y ultra-bajo de deserción. Se puede alimentar hasta con 16V
  • Incluye protección de polaridad, protección térmica y limitador de corriente
  • LED a bordo de energía LED verde y rojo pin # 1 LED
  • Botón de reposición para entrar en el gestor de arranque o reinicio del programa. No hay necesidad de desconectar / reconectar el tablero cada vez que desea restablecer o actualizar!
  • 5 GPIO – 2 compartidos con la interfaz USB. Los 3 pines IO independientes tienen 1 entrada analógica y 2 de salida PWM también. Los 2 pines IO compartidos tienen más de 2 entradas analógicas y una salida PWM más.Hardware I2C / SPI capacidad de ruptura y sensor de interconexión.
  • Pulsador de RESET
  • Soporte I2C / SPI
  • Funciona con la mayoría de librerías básicas de Arduino
  • Dimensiones: 31 x 15.5 x 5 mm
  • Peso: 1.85 gramos

 

trinket5.png

trinket_adafruit_products_tour.gif

Hay dos versiones del Trinket: 3V y 5V. Ellos son casi idénticos, pero hay ligeras diferencias en la asignación de señales: uno tiene un pin de salida 3V en la parte inferior derecha, el otro tiene un pin de salida de 5V vez.

Vamos a empezar con los mejores pasadores BAT + y USB + y GND

  • BAT + es el pin de entrada de la batería +. Si desea encender la Trinket de un adaptador de alimentación o batería o panel solar o cualquier otro tipo de fuente de alimentación, conecte el pin + (positivo) aquí! Se pueden conectar hasta 16 V DC. Si usted tiene una Trinket de 3V, querrá al menos de entrada 3.5V para conseguir una buena salida de 3.3V. Si usted tiene una Trinket 5V, se sugiere 5,5 V o superior. Esta entrada está protegida contra polaridad invertida.
  • USB + es el pin de salida USB +. Si desea utilizar la energía de 5V USB para algo, como la carga de una batería, o si necesita más de 150mA de corriente (este pin puede suministrar 500 mA + de puertos USB) o para detectar cuando la Trinket está conectado a USB, esta patilla tener 5V en él si y sólo si su enchufado en algo a través del conector mini-B
  • GND es el terminal de tierra común, que se utiliza para la lógica y el poder. Está conectado con el suelo USB y el regulador de potencia, etc. Este es el pin que querrá utilizar para cualquier y todas las conexiones a tierra

 

A continuación vamos a cubrir los 5   pines GPIO (General Purpose Entrada Salida)Todos los pines GPIO pueden utilizarse como entradas digitales, salidas digitales, para los LED, botones e interruptores, etc. Ellos pueden proporcionar hasta 20 mA de corriente. No conecte un motor u otro componente de alta energía directamente a los pines! En su lugar, utilizar un transistor para alimentar el motor de corriente continua de encendido / apagado

En un Trinket de 3V, el GPIO son 3.3V nivel de salida, y no debe ser utilizado con entradas 5V. En un Trinket de 5V, el GPIO están 5V nivel de salida, y se puede utilizar con entradas de 3V, pero puede dañar los dispositivos electrónicos que se 3V de entrada solo

Los 3 primeros pines  están completamente “libres”, no son utilizados por la conexión USB para que nunca tenga que preocuparse por la interfaz USB interferir con ellos en la programación:

  • GPIO # 0 – este está conectado a PB0 en la ATtiny85. Este perno se puede utilizar como una salida de PWM, y también se utiliza para los datos I2C, y la entrada de datos SPI.
  • GPIO # 1 – esto está conectado a PB1 en la ATtiny85. Este perno se puede utilizar como una salida de PWM, y también se utiliza para la salida de datos SPI. Este perno también está conectado al LED a bordo (como pasador 13 en un Arduino regular).
  • GPIO # 2 – esto está conectado a PB2 en la ATtiny85. Este perno se puede utilizar como una entrada analógica (conocido como analógica A1), y también se utiliza para el reloj I2C y el reloj SPI.

Los próximos 2 pines también se utilizan para la programación USB. Esto significa que cuando la placa está conectada a un ordenador y en modo de arranque o en el medio de la carga de un nuevo programa, que se utilizan para el envío de datos a / desde el ordenador! Es posible compartir estos pines si se tiene cuidado. El mejor uso de estos contactos es como salidas a cosas como LEDs, o ideas para cosas como botones y sólo asegúrese de no presionar los botones mientras está conectado a USB. No queríamos mantener estos pines del tablero pero le recomendamos no utilizarlos a menos que esté seguro de que los necesite, ya que podría tener que desconectar las conexiones de reprogramar la Trinket!

  • GPIO # 3 – esto está conectado a PB3 en el ATtiny85. Este pin se utiliza para la programación USB, pero también es una entrada analógica conoce como analógica A3
    Este perno tiene un pull-up 1.5K a 3.3V incorporado en el Trinket, para comm USB lo que puede ser difícil de utilizar para entrada analógica o digital.
  • GPIO # 4 – esto está conectado a PB4 en el ATtiny85. Este pin se utiliza para la programación de USB, pero también se puede utilizar como una salida analógica PWM y una entrada analógica conocida como Analog A2

Tenga en cuenta la numeración de los pines analógicos: Pin 2 es analógica 1, Pin 3 es analógica 3, Pin 4 es analógica 2. Para el Uno, los términos A1, A2 y A3 se asignan para usted. Para la ATtiny85, no lo son. Así que para el pinMode llama, utilice el número de pines (estarcido sobre la Trinket), para analogRead, utilice el número analógico.

Las últimas dos pines están en la parte inferior del tablero. En primer lugar es el pin de reset Rst. Esto está directamente conectado con pin de reset del ATtiny85 y también el botón de reinicio que se encuentra justo al lado de él. El pin de reset se utiliza para entrar en el gestor de arranque y poner a cero el tablero en caso de que desee reiniciarlo. También es posible utilizar este pin  para reprogramar el gestor de arranque o eliminar por completo el cargador de arranque si tiene un programador AVR como un AVR dragón, MKII o USBtinyISP. Si desea volver a programar el tablero cuando su en un recinto o caja, o de otro modo difíciles de alcanzar, alambre de un simple botón desde el pin RST al suelo y presione para entrar en el gestor de arranque durante 10 segundos. El LED # 1 pulsará para hacerle saber. El botón de reinicio no se puede utilizar como un GPIO, pero creemos que su mucho más útil como un botón de reinicio adecuado!

Por último tenemos el pin de salida del regulador. Hay un mini-regulador de potencia a bordo que se llevará hasta 16V DC de la conexión BAT + o USB y regular hacia abajo a una constante de 3,3 V o 5,0 V DC por lo que es seguro para usar con sus sensores y LEDs. En una Trinket de 3V, esta salida será de aproximadamente 3.3V. En una Trinket de 5V, la salida será 5V por lo tenga en cuenta en caso de que desee cambiar uno con el otro. Puede consumir hasta 150mA de salida de este pin. Si necesita más corriente, es posible que desee obtener directamente desde el USB + pasador, que suministra 5V 500 mA desde un ordenador o adaptador de pared

Ya   que conocemos   los pines del Trinket  , nos toca antes de empezar  instalar los drivers.  Si está utilizando Windows, antes de enchufar su tablero, tendrá que instalar un controlador posiblemente. Haga clic a continuación para descargar el instalador de controladores desde la pagina de Github( controlador de Windows para instalar los controladores adecuados para su placa . )

Descargue  y ejecute el instalador

flora_1download.png

Ejecutar el instalador! Como nos agrupamos los conductores SiLabs y FTDI así, tendrá que hacer clic a través de la licencia

flora_2lic.png

Seleccione los controladores que desea instalar:

flora_3select.png

De forma predeterminada, instalamos el 32u4 Pluma, Pluma M0, Flora y conductores Gemma / USBtinyISP Trinket / Pro / Trinket.

También puede, opcionalmente, instalar el Arduino Gemma (diferente de la Adafruit Gemma!), Conductores HUZZAH y Metro

Haga clic en Instalar para continuar la instalación

flora_4complete.png

 

Para Mac OS X o Linux no es necesario instalar ningún controlador.

¿Cómo iniciar el gestor de arranque?  

Antes de intentar cargar el código de la placa que debe estar en el modo de arranque. Eso significa que su escucha para un sketch o un programa que se enviará a ella

Cuando la placa  está en modo de arranque, el LED rojo se enciende . Una vez que el LED rojo se detiene pulsante, se debe presionar el botón de reinicio para volver a entrar en modo de arranque

La placa a debe estar conectada a un ordenador mediante un cable USB para entrar en modo de arranque. Puede entrar en el modo de arranque pulsando el pequeño botón en el tablero con la uña. El gestor de arranque ‘tiempo fuera’ después de 10 segundos, por lo que volver a entrar en el modo de arranque simplemente vuelva a presionar el botón!

!No presionar y mantener pulsado el botón de reinicio, y asegúrese de presionar y soltar!

 

 

Configuración con Arduino IDE

Lo más probable es, es si adquiere un placa  Trinket,  que quiera programarla  con el IDE de Arduino. Tenga en cuenta que la Trinket no es un completo compatible con Arduino, que utiliza un chip diferente (menor) que el Uno, Mega, Leonardo o de vencimiento. Sin embargo, hay muchos pequeños bocetos y bibliotecas que funcionan muy bien. Algunos ni siquiera puede necesitar otros que los números de pin nada.

A pesar de que la placa Trinket tiene un conector USB, no tiene una capacidad de “consola serie”, por lo que no se puede utilizar de serie para enviar y recibir datos a /desde un ordenador!

Cuando esté listo para cargar, asegúrese de que el “programador” en el menú Herramientas se establece en USBtinyISP!Configuración Arduino IDE
Sólo tiene que seguir los pasos de los pasos de la guía de configuración Adafruit Arduino IDE para agregar fácilmente el apoyo a la Trinket, Gemma, Pro Trinket y más al IDE de Arduino.Cuando haya terminado de instalar el gestor de IDE y tabla de poner en volver a esta página para continuar con la guía de la Trinket.Ejemplo  de Hello World  ( Parpadeo de un led)Después de instalar el IDE Arduino con soporte para tablas de Adafruit puede cargar un parpadeo ejemplo simple para probar la carga de la Trinket funciona como se espera LED. Abra el IDE de Arduino y reemplaze el código de sketch  con el código del led intermitente:

Si está utilizando Linux puede que tenga que ser “root” de ejecutar el programa de Arduino para tener acceso al puerto USB (o añadir excepciones udev)

En el siguiente ejemplo de  parpadeo  se enciende un LED durante un segundo y  luego se apaga durante un segundo , ejecutándose en un bucle indefinido.

 

  1. /*
  2. Blink
  3. */
  4. int led = 1; // blink ‘digital’ pin 1 – AKA the built in red LED
  5.  
  6. // the setup routine runs once when you press reset:
  7. void setup() {
  8. // initialize the digital pin as an output.
  9. pinMode(led, OUTPUT);
  10.  
  11. }
  12.  
  13. // the loop routine runs over and over again forever:
  14. void loop() {
  15. digitalWrite(led, HIGH);
  16. delay(1000);
  17. digitalWrite(led, LOW);
  18. delay(1000);
  19. }

 

Para subir el código a la placa trinket siga los siguientes sencillos pasos:

  •   Seleccionar la placa adecuada desde el menú Herramientas-> Placa  ->Adafruit Trinket 8Mhzadafruit_products_selecttrinket.gif
  •  Seleccionar USBtinyISP desde el Herramientas- > Programador   –>UsbtinyISP

trinket_adafruit_products_selectusbtiny.gif

 

 

A continuación, seleccione USBtinyISP desde  Tools-> Programmer submenú

Enchufe la  placa , asegúranadose   de ver pulsante el LED verde encendido (potencia bueno) y el LED rojo.

Pulse el botón si el LED rojo no está latiendo, para entrar en modo de arranque.

Haga clic en el botón Upload (o seleccione Archivo-> Cargar)

trinket_adafruit_products_upload.gif
Si todo va bien debería ver lo siguiente (no hay mensajes de error de color rojo) y, por supuesto, el LED rojo de la Trinket parpadeará de encendido / apagado una vez por segundo
trinket_adafruit_products_blinkOK.gif

¿Algo salió mal?  Si obtiene el mensaje de error avrdude: Error: No se pudo encontrar el dispositivo USBtiny (0x1781 / 0xc9f)
Eso significa que el gestor de arranque no estaba activo. Asegúrese de presionar el botón de la Trinket para activar el gestor de arranque antes de hacer clic en el botón Cargar.

trinket_adafruit_products_idecouldntfind.gif

Si se obtiene una gran cantidad de texto en rojo, errores y también una advertencia sobre Verificación frustrada, compruebe que ha actualizado el archivo anterior avrdude.conf – si no actualiza la descripción de la ATtiny85 en el archivo de configuración mediante su sustitución, el IDE no sabrá que ser paciente con el gestor de arranque de la Trinket y tendrá muchos errores de carga

trinket_adafruit_products_verifcationfail.gif

En Linux si obtiene el mensaje de error “usbtiny_receive: error al enviar mensaje de control: Error de protocolo (esperado 4, conseguido -71)”
Estos por lo general pueden ser ignorados y no deben interferir con la carga del programa. Desafortunadamente núcleo de Linux USB es un poco raro que comunica con el procesador ATtiny85 en la Trinket / Gemma y puede causar estos errores. Si una carga falla, inténtelo de nuevo ya que probablemente es un problema intermitente.

Programación con Arduino IDE

Una vez que haya recibido el ejemplo básico de parpadeo para trabajar, puede probar algunas de las otras funciones de Arduino y bibliotecas. Vamos a ver  más ejemplos de código  con  pinMode () , digitalWrite () y digitalRead ()

pinMode()
Puede utilizar pinMode () para realizar entradas y salidas en cualquiera de los pines digitales 0 # a través de # 4
digitalWrite también funciona bien, y también se puede utilizar con pinMode (INPUT) para activar la resistencia pull-up en un perno

Por ejemplo, para establecer digital # 0 como entrada, con un pull-up interna, y luego comprobar si se está tirando a tierra a través de un botón o interruptor y encender el LED rojo cuando se pulsa:

  1. /*
  2. Button
  3. Turns on an LED when a switch connected from #0 to ground is pressed
  4.  
  5. #define SWITCH 0
  6. #define LED 1
  7.  
  8. // the setup routine runs once when you press reset:
  9. void setup() {
  10. // initialize the LED pin as an output.
  11. pinMode(LED, OUTPUT);
  12. // initialize the SWITCH pin as an input.
  13. pinMode(SWITCH, INPUT);
  14. // …with a pullup
  15. digitalWrite(SWITCH, HIGH);
  16. }
  17.  
  18. // the loop routine runs over and over again forever:
  19. void loop() {
  20. if (! digitalRead(SWITCH)) { // if the button is pressed
  21. digitalWrite(LED, HIGH); // light up the LED
  22. } else {
  23. digitalWrite(LED, LOW); // otherwise, turn it off
  24. }
  25. }

analogRead ()

 Usted puede leer un voltaje analógico de digital # 2 (llamada analógica 1), digital # 3 (llamada analógica 3) y digital # 4 (llamadaanalógica 2)

Por ejemplo, para leer un voltaje analógico en el pin # 2, que llamarían analogRead (1) para leer un voltaje analógico enanalogRead pin # 4 de llamadas (2)

Esto es un poco confuso porque los pines analógicos están numerados de manera diferente que los pines digitales!

analogWrite ()

Hay algunas salidas PWM en la Trinket, puede llamar analogWrite () en digital # 0, # 1 y # 4.

Por ejemplo, para pulsar el built-in LED lentamente, subir este código:

Asegúrese de que está utilizando la última IDE Trinket para que pueda acceder a las capacidades de PWM pin de 4. Si no está utilizando la última IDE es necesario añadir manualmente las funciones como la siguiente en init y escribir valores analógicos al pin # 4. Sin embargo, si usted tiene la última IDE que incluye correcciones para hacer el pin # 4 se puede utilizar con la función de analogWrite Arduino!

  1. /*
  2. Pulse
  3. Pulses the internal LED to demonstrate the analogWrite function
  4. */
  5. int led = 1; // pulse ‘digital’ pin 1 – AKA the built in red LED
  6.  
  7. // the setup routine runs once when you press reset:
  8. void setup() {
  9. // initialize the digital pin as an output.
  10. pinMode(led, OUTPUT);
  11. }
  12.  
  13. // the loop routine runs over and over again forever:
  14. void loop() {
  15. for (int i=0; i<256; i++) {
  16. analogWrite(led, i); // PWM the LED from 0 to 255 (max)
  17. delay(5);
  18. }
  19. for (int i=255; i>=0; i–) {
  20. analogWrite(led, i); // PWM the LED from 255 (max) to 0
  21. delay(5);
  22. }
  23. }

 

I2C

Puede utilizar I2C con la Trinket! Si usted tiene nuestra v1.6.4 bordo gestor de paquetes o posterior (esa es la versión del paquete de soporte de Trinket, no IDE) y luego alambre trabajará en ATtiny85

En los tablones de la Trinket, el pin # 0 es la SDA (datos del bus I2C), el pin # 2 es SCK (reloj I2C).

Sabemos también las siguientes bibliotecas funcionan:

  • Adafruit NeoPixel – Control de hasta ~ 150 Neopixels a través de una Trinket!
  • SoftwareSerial – construido en la biblioteca SoftSerial puede (al menos) transmitir datos en cualquier pin digital.
  • Más como lo hacemos más pruebas y verificación!

La velocidad de reloj de 16 MHz por sólo Trinket de 5V!

El ATtiny85 se especifica solamente para funcionar a 16 MHz cuando se alimenta a 5V – que significa que oficialmente sólo se puede ejecutar la Trinket de 5V a 16 MHz.
Sin embargo, la serie AVR es bastante indulgente para el overclocking,
por lo que puede ser capaz de ejecutar la Trinket de 3V a 16 MHz. Tenga en cuenta que esto todavía está overclocking, el código puede funcionar escamosa o nada en absoluto! Overclocking no debe dañar el AVR, pero aun así, recomendaría quedarse con 8 MHz sólo para la versión de 3V, y 8 o 16 MHz sólo en la versión 5V.
soluciones de compromiso en potencia
La duplicación de la velocidad aumentará el consumo de energía sólo un poco. A las 8 MHz, la corriente extraída es alrededor de 9 miliamperios. Esa cifra incluye el LED de alimentación verde, que consume alrededor de 3 mA de modo que sea 6mA para el propio microcontrolador.

A los 16 MHz del sorteo es 12mA total. Restando el LED verde de corriente, que significa 9mA para el propio microcontrolador.

Cómo activar el reloj de 16 MHz

 En AVR-GCC :Podemos activar el reloj 16MHz ‘en el software’ simplemente pidiendo el chip para ajustar el reloj preescalar. Si está utilizando prima avr-gcc, ejecutar esta como la primera línea en main ()

clock_prescale_set (clock_div_1);

Es posible que tenga que añadir # include al archivo de modo que se reconocen los comandos. A continuación, asegúrese de compilar el código con F_CPU = 16000000
 IDE Arduino:Usando el modo de 16 MHz es muy similar cuando se utiliza el IDE de Arduino. Agregue la línea siguiente a la parte superior de su boceto Arduino (como la primera línea)

#include <avr / power.h>

Luego, en la configuración () – añadir lo siguiente como primera línea de la función:

si (== F_CPU 16000000) clock_prescale_set (clock_div_1);

A continuación, seleccione la Trinket de 16MHz en el menú Herramientas> Junta. Su código se compila y ejecuta a 16 MHz!

trinket_adafruit_products_select16.gif

Gestor de arranque de la reparación

 

El ATtiny85 no tiene una sección-cargador de arranque protegido. Esto significa que es posible sobrescribir accidentalmente el cargador de arranque (o incluso si desconecta la Trinket durante la carga que podría tener dificultades a partir de entonces)

Se puede utilizar un Arduino UNO para reprogramar el gestor de arranque en su Trinket (o Gemma). Este cargador no se ha probado para funcionar con cualquier otro tipo de Arduino.

Conectar:

  • Trinket VBAT + pin de Arduino 5V (o simplemente el poder que a través de un cable de la batería o USB)
  • Trinket GND pines a GND Arduino
  • RST Trinket para Arduino # 10
  • Trinket # 0 pinr para Arduino # 11
  • Trinket # 1 pin de Arduino # 12
  • Trinket # 2 pines de Arduino # 13

En un Gemma, pinzas de cocodrilo funcionan bien. la clavija de Reset se encuentra debajo del MiniUSB Jack. Puede que tenga que soldar un cable de forma temporal. Por otra parte, a veces sólo puede mantener pulsado el botón de reset mientras se ejecuta el boceto (tipo “G” para comenzar) y que podría funcionar. Soldar un alambre funciona mejor.

A continuación, descargar, descomprimir y ejecutar el boceto Trinketloader, escoger el que se adapte a su versión Arduino!

trinketloader_2015-06-09.zip

Descomprimir y abierto en el IDE de Arduino, seleccione la ONU y el puerto serie a la placa Arduino UNO que está subiendo demasiado y subirlo a la ONU.

Abre la consola serie a 9600 baudios y cuando se le dice que haga, pulse el botón de miniatura de la Trinket (o Gemma) o escribe en G en la consola de serie y haga clic en Enviar

Debería ver lo siguiente, la fusibles, firmware quemado y verificados! Se requiere de 2 segundos

trinketload.png
Mas información:

 

 

Por cierto puede comprar el Trinket lo en Amazon desde el siguinte enlace Adafruit Trinket – Mini Microcontroller – 3.3V Logic

Un coche RC que aparca sólo basado en Arduino


 

La mayor parte de las piezas utilizadas deben ser familiar para los fans de Arduino

El vehículo es una creación de la Universidad de Gotemburgo  de un estudiante llamado Dimitris Platis asi como de su equipo de Makers – Yilmaz Caglar, Aurélien Hontabat, David Jensen, Simeón Ivanov, Ibtissam Karouach, Jiaxin Li y Petroula Theodoridou – que en conjunto utilizan el nombre del equipo de Pegaso. El trabajo del equipo es impresionante, utilizando licencia GPLv3 , y una completa  documentación . De hecho el proyecto está maduro para que otros fabricantes interesados usen esta tecnología en sus propios del proyecto.

Originalmente, las direcciones de asignación de clase Platis ‘sugeria utilizar una placa computadora, una webcam, y un elaborado paquete de software de simulación llamado OpenDaVinci, y un chasis estéticamente poco atractivo, todo lo cual no era del entusiasmado  de estos makers. Así, él y su equipo decidió volcar los componentes propuestos y resolver el conjunto de problemas usando su propio enfoque.

He aquí un resumen del proyecto.

Disposición del sistema electrónico del coche

El diseño de la electrónica dentro del coche debe ser muy familiar para cualquiera que haya usado Arduino al prototipo de un proyecto. El Arduino MEGA conecta con tres sensores ultrasónicos, dos de los cuales están montados en la parte delantera del coche y uno en el parachoques trasero.Tres IR sensores también se conectan e a la MEGA y se despliegan de una manera similar. Un giroscopio y 9 tableros de medición inercial grado de libertad completan el paquete de sensores, pero se colocan dentro del chasis del vehículo.

Teléfono Android montado en el coche se encarga de cálculo de datos de los sensores que se le pasan a través de Bluetooth

Direcciones de dirección se transmiten de un procesamiento Android bordo visión teléfono en funcionamiento y se transmiten a través de Bluetooth, y el control electrónico de velocidad (ESC) maneja  la aceleración del coche (no se muestra).

Este vehículo * no * utiliza un protector de motor (sólo un ESC) o la biblioteca Smartcar Core. La biblioteca Smartcar Core, fue utilizado en un vehículo diferente (que a su vez de hecho utiliza un escudo de motor), de otro grupo de estudiantes, “.

Por último, y que tampoco se muestra en el diseño, se usa  un microcontrolador ATtiny85 que está programado con su propio boceto para manejar el control de LEDs para tales cosas son como romper, torneado, y la iluminación de la calzada.

 

 

El código aprovecha AndroidCar.h, una biblioteca hecha a la medida por el equipo de Pegaso, y los datos del sensor encuestas en el coche, que se envía a través de Bluetooth para el teléfono móvil a bordo.

La API se encarga de la transmisión de comandos de dirección de cómputos del teléfono y altera la posición del servo. Para conocer más sobre el API, eche un vistazo a los Smartcar Core ejemplos bocetos. Para obtener documentación sobre el código que encola el código de Arduino con el teléfono Android, que desea comprobar el Android-Car-duino repositorio. Y para un enfoque global de la adaptación de este conjunto de bibliotecas para su propio vehículo este wiki es para usted.

La información de dichos sensores es enviada a un smartphone con Andorid, que con ayuda de un software que analiza esos datos, envía en tiempo real las instrucciones adecuadas vía bluetooth al control de velocidad y la dirección del vehículo. Dependiendo de dicho software, el coche RC puede también moverse sin cambiar de carril o detectar y esquivar de forma muy precisa obstáculosque se encuentre en su camino, como podemos ver en el vídeo siguiente.

 

Los responsables del mismo son unos estudiantes de la Universidad de Gotemburgo que forman el grupo Team Pegasus, y que ofrecen su proyecto con licencia GPLv3 para que pueda hacerlo suyo y personalizarlo o mejorarlo si así lo desea.

Fuente aqui

Importación de librerias en Arduino parte 2de 2


 Importación de una biblioteca .zip

Las bibliotecas a menudo se distribuyen como un archivo ZIP o carpeta. El nombre de la carpeta es el nombre de la biblioteca.  Dentro de la carpeta será un archivo .cpp, un archivo .h ya menudo un archivo keywords.txt, carpeta de ejemplos, y otros archivos requeridos por la biblioteca.

Desde la versión 1.0.5, puede instalar las bibliotecas 3 ª parte en el IDE.

No descomprima la biblioteca descargada, dejarla como está.

En el Arduino IDE, vaya a Sketch> Incluir Biblioteca.  En la parte superior de la lista desplegable, seleccione la opción “Añadir .ZIP Biblioteca ”(“Add .ZIP Library”).

Se le pedirá que seleccione la biblioteca que desea agregar. Navegue hasta la ubicación del archivo .zip y abrirlo.

Regrese al menú Sketch> Import Library. Ahora debería ver la biblioteca en la parte inferior del menú desplegable. Está listo para ser utilizado en su sketch.

El archivo zip se habrá ampliado en la carpeta de bibliotecas en su Arduino esboza directorio.

Nota: la biblioteca estará disponible para su uso en bocetos, pero los ejemplos de la biblioteca no será expuesta en el Archivo> Ejemplos hasta después de la IDE se ha reiniciado.

Instalación manual

Para instalar la biblioteca, primero salir de la aplicación Arduino.

Luego descomprimir el archivo ZIP que contiene la biblioteca.  Por ejemplo, si va a instalar una biblioteca llamada “ArduinoParty”, descomprimir el fichero .zip ArduinoParty .  Debe contener una carpeta llamada ArduinoParty, con archivos como ArduinoParty .cpp y en el interior ArduinoParty .h. (Si los archivos .cpp y .h no se encuentran en una carpeta, tendrá que crear uno:en este caso, sería una carpeta llamada “ArduinoParty” y hay que  mueven a ella todos los archivos que estaban en el  archivo, como ArduinoParty .cpp y .h ArduinoParty.)

Arrastre la carpeta ArduinoParty en esta carpeta (carpeta de bibliotecas).  En Windows, es probable que se llama “Mis documentos \ Arduino \ bibliotecas”.  Para usuarios de Mac, es probable que se llama “Documentos / Arduino / bibliotecas”.  En Linux, será la carpeta “bibliotecas” en su cuaderno de dibujo.

Su carpeta de la biblioteca de Arduino ahora debería tener este aspecto (en Windows):

 My Documents\Arduino\libraries\ ArduinoParty \ ArduinoParty .cpp Mis documentos \ Arduino \ bibliotecas \ ArduinoParty \ ArduinoParty .cpp
  >My Documents\Arduino\libraries\ ArduinoParty \ ArduinoParty .h Mis documentos \ Arduino \ bibliotecas \ ArduinoParty \ ArduinoParty .h
  >My Documents\Arduino\libraries\ ArduinoParty \examples Mis documentos \ Arduino \ bibliotecas \ ArduinoParty \ ejemplos
  >.... ....

o así (en Mac):

 Documents/Arduino/ libraries/ArduinoParty / ArduinoParty .cpp Documentos / Arduino / bibliotecas / ArduinoParty / ArduinoParty .cpp
  >Documents/Arduino/ libraries/ArduinoParty / ArduinoParty .h Documentos / Arduino / bibliotecas / ArduinoParty / ArduinoParty .h
  >Documents/Arduino/ libraries/ArduinoParty /examples Documentos / Arduino / bibliotecas / ArduinoParty / Ejemplos
  >... ...

o de manera similar para Linux.

Es posible que haya más archivos que sólo el .cpp y .h, sólo asegúrese de que están todos allí. De ser asi la biblioteca no funcionará si pone el .cpp y .h directamente en las bibliotecas de carpeta o si están anidados en una carpeta adicional. Por ejemplo: No funcionará   esta combinación:

 Documents\Arduino\libraries\ ArduinoParty .cpp and Documentos \ Arduino \ bibliotecas \ ArduinoParty .cpp y
  >Documents\Arduino\libraries\ ArduinoParty \ ArduinoParty \ ArduinoParty .cpp Documentos \ Arduino \ bibliotecas \ ArduinoParty \ ArduinoParty \ ArduinoParty .cpp

 

Reinicie la aplicación Arduino.  Asegúrese de que la nueva biblioteca aparece en el elemento de menú para bosquejos> Importar biblioteca del software.

Usted ha instalado una biblioteca!

Brain hacking


El cerebro humano tiene la misma estructura general que los cerebros de otros mamíferos, pero tiene una corteza cerebral más desarrollada que cualquier otra.Los animales grandes como las ballenas y los elefantes tienen cerebros más grandes en términos absolutos, pero cuando se mide mediante el cociente de encefalización, que compensa el tamaño del cuerpo, el cerebro humano es casi dos veces mayor que el cerebro del delfín nariz de botella, y tres veces más grande que el cerebro de un chimpancé.

Gran parte de la expansión proviene de la corteza cerebral, especialmente los lóbulos frontales, que están asociados con funciones ejecutivas tales como el autocontrol, la planificación, el razonamiento y el pensamiento abstracto.La porción de la corteza cerebral dedicada a la visión, la corteza visual, también se amplía en gran medida en los seres humanos.

Electroencefalografía (EEG) es el registro de la actividad eléctrica a lo largo del cuero cabelludo.EEG mide la tensión fluctuaciones resultantes de los flujos de corriente iónica dentro de las neuronas del cerebro.
En contextos clínicos, EEG se refiere a la grabación de la actividad eléctrica espontánea del cerebro durante un corto período de tiempo, generalmente de 20-40 minutos , como se registra a partir de múltiples electrodos colocados en el cuero cabelludo Aplicaciones de diagnóstico generalmente se centran en el contenido espectral de EEG, es decir, el tipo de oscilaciones neurales que se pueden observar en las señales de EEG.

Imagen del sensor de EEG
Para entender el MindWave y MindWave móvil, primero debemos entender lo que es un sensor de EEG.La primera grabación de campo eléctrico del cerebro humano fue hecho por Hans Berger, un psiquiatra alemán, en 1924. Berger dio al grabar el nombre de electroencefalograma (EEG).En pocas palabras, el EEG se realiza mediante la colocación de electrodos en todo el cuero cabelludo del sujeto, luego de leer en las señales eléctricas para su análisis.Un avance rápido hasta hoy, y que tienen toda esta tecnología, todo en un factor de forma compacto que es el MindWave que envía todo el eeg por bluetooth.
La amplitud de la EEG es ~ 100 mV cuando se mide en el cuero cabelludo, y >alrededor de 1-2 mV cuando se mide en la superficie del cerebro.El ancho de banda de esta señal es de debajo de 1 Hz a aproximadamente 50 Hz.
Ahora,como usted sabe que el Mindwave tiene el sensor de EEG y  se conecta por medio de un bluetooth,necesitamos un módulo bluetooth para conectar eso a nuestro Arduino y decodificar los datos para que sea útil ,así   que  necesitaremos usar  tambien  un recepor bluetooth conetado a este .

 

Imagen de ¿Qué es Arduino?

El Mega Arduino es una placa electrónica basada en el ATmega1280 (ficha técnica).Cuenta con 54 pines digitales de entrada / salida (de los cuales 14 se pueden utilizar como salidas PWM), 16 entradas analógicas, 4 UARTs (hardware puertos serie), un oscilador de cristal 16 MHz >, una conexión USB, un conector de alimentación, una cabecera ICSP, y un botón de reinicio.Contiene todo lo necesario para apoyar el microcontrolador simplemente conectarlo a un ordenador con un cable USB o el poder con un adaptador de CA o la batería a CC para empezar.La Mega es compatible con la mayoría de los escudos diseñados para el Arduino Duemilanove o Diecimila.

 

En el ejemplo  se ha usado un  RN42 bluetooth , el cual es compatible con la lógica ttl y puede ser configurado como maestro conectando directamente al arduino tx rx módulo ya que al tener lógica TTL(es decir niveles  de o o 5v) no necesita del convertidor de nivel

..Cuadro de interfaz Bluetooth

El autor     para decodificar el EGG    ha  usado un  Arduino Mega y  también un ordenador para  enviar datos a la nube de modo que usa   código python para obtener datos en serie de Arduino , que  después  son enviados  a un servidor  thingspeak .

El código usado en ambas partes el siguiente:

Tinkspeak  es una herramienta libre en nube de IOT. Sobre esta se puede empujar a los datos y enviar los datos a la nube gracias a que creará un json en su backend y permitiendo trazar la gráfica basada en ella.Quizás la  única desventaja es que puede obtener datos sólo después de 15s(. eso es un poco lento)

 

Fuente aqui

Control domestico mediante un smartphone usando ingeniería inversa


En el post de hoy vamos a ver como usando ingeniería inversa  (los anglosajones lo llaman hacking ) es posible añadir nuevas funcionalidades a hardware existente comercial en principio no concebido para esa  tarea. El hardware elegido  ha sido en sencillo y barato  sistema inalambrcio de control de 4 cargas  de ca por medio de RF usando un único mando común de 4canales RF.
La idea es hackear dicho sistema inalámbrico de automatización del hogar para ser controlado mediante dos microcontroladores AVR por medio de USB
En el siguiente video vamos a ver una demostración  del producto final  al que vamos a intentar descifrar en las siguientes lineas

 

Como vemos el vídeo es impresionante , veamos como se ha llegado hasta ahí en este impresionante  trabajo

Hay dos maneras de hackear un remoto RF a ser controlado por una computadora o un microcontrolador.

  • El mas artesanal : Soldar los cables en las almohadillas del botón del mando a distancia y engancharla a un un microcontolador (por ejemplo  Arduino).
  • La manera fresca:Mandos a distancia RF la mayoría tienen un módulo separado para transmisión de datos. Este dispositivo tiene generalmente un VCC y una línea GND y una línea de datos. Usted puede fácilmente transmitir sus propios datos inalámbricos conectando un microcontrolador para la línea de datos.Sin embargo, con el fin de transmitir algo que puedan entender los radiorreceptores, primero tienes que averiguar cómo es formateados y transmite los datos inalámbricos.Para hacer este hack necesitará un analizador lógico y, opcionalmente, un osciloscopio.

En adelante vamos a ver  la segunda opción : es decir  usando  herramientas , en este caso de manos de  un analizador logico para estudiar como se ha fabricado para luegointentar  emular su funcionamiento

En este caso se usa un sonda logica Saleae. Esta es una herramienta increíble y con ella se pueden hacer muchos trabajos de  ingeniería inversas usando este dispositivo

Compruébelo en http://www.saleae.com/logic/

Lo malo  es que  cuesta 149 USD, pero !es una buena inversión para cualquier hacker!

También tiene que estar  familiarizado  y cómodo con los microcontroladores y programación en C.

Picture of Skills ans tools
saleae_screenshot.png
Usted necesitará para realizar este proyecto:

  • 1 x kit inalámbrico de automatización del hogar
  • 1 x caja de proyecto
  • 1 conector tipo B x USB
  • Diodo zener 2 x 3.6v
  • Diodo zener 8.2v x 1
  • transistor BC548 x 1
  • condensador de cerámica de 2 x 22pF
  • condensador de cerámica de 2 x 100nF
  • 1 x 4.7uF condensador
  • condensador 100uF x 1
  • 1 x 470uF capacitor
  • 1 x 330uF condensador
  • cristal 1 x 12MHz
  • 2 x LED con resistencia (yo usé 1 k ohmios)
  • 2 x 68R resistor
  • 1 x resistencia de 1 k 5
  • 1 x resistencia de 2 k 2
  • resistor de 1 x 1m
  • 1 x 270uH inductor
  • Diodo 1N4004 x 1
  • microcontrolador ATmega8 x 1
  • 1 x protoboard. La soldadura tipo ojo, no perforada.

Picture of Parts required

 

 

Manos a la obra

Picture of Don't turn it on, take it apart!
remote_inside.jpg
 Como es de suponer el control remoto tiene un módulo independiente de RF. ¡ Crack se abre y pueede comprobar si este es el caso. El pequeño tablero verde dentro del mando a distancia es el módulo de RF.

La placa   debe tener o claramente etiquetadas al menos  3 entradas:

  • VCC
  • DATOS
  • GND
remote_rf_module.jpg
Las conexiones fueron ser maso difíciles llegar con  sondas de osciloscopio o el analizador logico , tan sólo puede extender  las conexiones utilizando un alambre de cobre sólido núcleo.

Ahora yo puede presionar los botones mientras husmea como son los datos en  la línea de datos.

remote_inside.jpg

Picture of Figure out what's going on inside
IMG_6509.JPG
IMG_6510.JPG
El control remoto está alimentado por una batería de 9V. Como los analizadores lógicos suelen  ser de 5 voltios, se debe ver que está pasando con la línea de datos antes engancharla  hasta el analizador lógico.Si la señal en la línea de datos es de 9 voltios, tendemos  que hacer algunos trucos para bajarlo a 5V para el analizador de lógica.

Conectar una sonda de osciloscopio a la línea de datos y GND a la línea de GND del mando a distancia.  Coloque sondas   las dos  y apretar   un botón.si se convierte  la línea de datos en sólo 3 voltios entonces puede conectar la sona logica  (l La distancia entre las líneas de puntos horizontales en la pantalla del osciloscopio es 2 voltios.)

El módulo RF parece un dispositivo muy simple, así que simplemente supondremos que puede manejar 5 voltios, así como 3. El microcontrolador se ejecutará a 5 voltios.

Picture of Reverse engineering: first glance
rf_4_identical_frames.png
rf_example_frame.png
El osciloscopio es una gran herramienta, pero para ver lo que está pasando con la señal de datos,  es mucho más fácil de usar un analizador lógico.El analizador lógico sólo lee 0 y 1, así que , así que es mucho más fácil de leer que la pantalla del osciloscopio pequeño,así que se puede hacer la  línea de datos hasta el canal 1 del analizador lógico.Seleccionar 1 MHz captura de tarifa, que debería ser más que suficiente para esto.Comenzar el analizador de lógica y pulsar el botón para en el control remoto de la lámpara 1.

El analizador lógico muestra 4 distintos marcos de datos. En un principio puede pensar que quizás esto pueda  ser más complicada de realizar ingeniería inversa de  previsto,pero en muchos casos puede ser idéntico. Lo mismo sucede con todos los botones del mando a distancia. Los datos se transmisión probablemente 4 veces porque el enlace inalámbrico es inherentemente confiable

Entonces acérquse  a uno de los marcos  para ver en  que consiste los  pulsos de diversa longitud.:en este momento tenemos un montón de pulsos cortos y largos

 

El control remoto tiene un pequeño botón que está debajo de la tapa de la batería. Si se presiona este botón, tengo que volver a asociar todos los receptores con el mando a distancia. Si el control remoto del vecino está interfiriendo con sus luces pulse este botón para obtener una nueva identificación al azar .(pulsar este botón crea una especie de código aleatorio específico para esa distancia)

Si eso es cierto, puedo usarlo para identificar al menos algunas partes de los datos.

Comenzar  el analizador lógico otra vez y pulsar  ON para lámpara uno 5 veces mientras presiona el botón reset entre cada vez que he pulsado lámpara 1.

Para que sea más fácil ver lo que estaba pasando, copiar pega los fotogramas datos en gimp y  colocarlios unos a otros. En el analizador de lógica que están representados al lado, lo que hace comparación bastante duro.

Afortunadamente, los chicos de Saleae habían pensado en esto. Ctrl + Mayús + m le permite copiar una selección de la pantalla al portapapeles.

Presionar el botón reset cambiado un número al azar dentro del mando a distancia que se transmite con cada fotograma de datos.

La primera parte es siempre la misma. Esto tiene sentido. Probablemente “despierta” a los receptores o le dice que “¡ aquí viene datos, prepárate!”

Los próximo 12 bits consecutivos cambian cada vez que presiono el botón de reinicio. Puede  marcar los pedacitos que cambian en rojo y los bits constantes en verde.

Permite llamar a los 12 bits al azar la dirección de red de ahora en adelante.

Parece que los datos de capacidad de carga para cada fotograma están de 8 bits.

Otra gran cosa acerca de hacer este hack por la manera fresca en lugar de simplemente soldar los cables hacia los botones, es que usted puede utilizar el campo aleatorio de 12 bits también. Puede tener 4 luces en ID de uno red y otros 4 en otro ID de red y controlarlos desde el mismo control remoto! En realidad, usted puede controlar (2 ^ 12) * 4 = 16384 lámparas con este hack!

 Ingeniería inversa: ¿Qué es 0 y 1
Picture of Reverse engineering: what is 0 and what is 1
Así que sabmos  que pedacitos  ignorar, el bit de arranque y pedacitos de ID de red. Pero todavía no sabemos cómo el control remoto representa 0 y 1.El control remoto tiene botones para 4 lámparas. La manera más lógica para representar a éstos en la estructura de datos es con un número binario de 2 bits.

Comenzar  el analizador lógico otra vez y presionar el botón de encendido para la lámpara 1, 2, 3 y 4. Luego copiar-pegar  en Gimp para tener una visión general.

Entonces cuatro bitse cambian al pulsar un botón. Dos de las partes parecen estar contando en binario de 0 a 3. Es más probable que ellos son los bits de la dirección de la lámpara.

Para lámpara 1 son ambos pulsos largos. Para lámpara 2 hay uno corto y uno largo del pulso. Esto significa que el bit menos significativo es enviado primero.El contrario de manera normalmente escribirías un número binario.

Parece que los bits marcados en verde  estar contando de 0 a 3, lo cual pueden ser  los bits de la dirección de la lámpara. No sé cuáles son los bits marcados en azul. Probablemente una especie de suma de comprobación para asegurar una comunicación libre de errores.

Además, hemos aprendido de esto que con toda probabilidad, los bits se transmiten como éste.

  • Largo pulso: 0
  • Corto pulso: 1

Ingeniería inversa: averiguar el resto de los datos

Picture of Reverse engineering: figure out the rest of the data
openoffice_splitted.png
frame_format.png
En este punto yo sabemos cómo es representado 0 y 1, e intuimos   cuales brocas representan la dirección de la lámpara. También los dos últimos bits son alguna forma de suma de comprobación.Para calcular el resto de la estructura de datos, tenemos  que capturar datos para todas las pulsacioness de botón posible.

Comenzar el analizador lógico y presionado ON para todos 4 lámparas, entonces apagando, entonces todo encendiedo y todo apagando y finalmente DIM + y -.

Para que sea un poco más fácil de depurar, escribír todos los fotogramas capturados en OpenOffice. Omitír los primeros 13 bits, puesto que  sabemos  lo que son 

Parece que los datos de carga tienen dos bits para la dirección de la lámpara, entonces 4 bits para datos de comando.

Los bits de orden eran fáciles de entender. En la segunda foto, se e divide los datos en 3 columnas, dirección de lámpara, pedacitos de comando y suma de comprobación.

Como puede ver comando 2 es sólo cuando pulso los botones de todos o de todos. Eso significa que este bit es una difusión brocas que hace que todos los receptores de escuchen.

  • Bit 3 es solamente cuando presiono el botón o DIM – botón. Permite llamar a este pedazo de mando ON/OFF.
  • Bit 4 es sólo cuando presiono el DIM botones +/-. Llamémoslo DIM.
  • Bit 5 siempre es NCe. ¿Tal vez está ahí porque el algoritmo de comprobación necesita un número par de bits?

En la última foto, se puede ver que tengo marcha atrás diseñado el marco todos los datos.

Pensaba que el sistema tenía 4 direcciones de la lámpara, puesto que hay 4 botones del mando a distancia. Pero otra posibilidad es que los tres primeros bits son Dirección lámpara, y esa dirección 111 se emite. Si este es el caso, entonces puedes tener 7 lámparas + transmisión en una red ID.

ingeniería inversa: checksum

Picture of Reverse engineering: checksum head-scratching
openoffice_splitted.png
En este momento sabemos  lo que está todo dentro del marco de datos. Sin embargo, no sabemos   cómo se calcula la suma de comprobación.Podemos ver que  la suma de comprobación para oprimir cualquier botón dado es idéntico sin importar el identificador de red al azar. La suma de comprobación sólo se calcula basándose en los datos de carga útil.(suponemso que está codificado en el control remoto para simplificar el diseño de chip.)

Así que con esto en mente, intentemos  algo más simple. Como hemos notado que las secuencias de 01 y 01 se anulan mutuamente y producen un checksum de 00, y que las secuencias de 01 y 10 produciría un checksum de 11, esto deja  entrever hacia un simple algoritmo XOR.

Después de un ensayo y error, hemos encontrado un algoritmo simple que siempre produce la suma de comprobación correcto.

Los primeros dos bits son XOR’ed con los dos bits 2do. El resultado de esto es XOR’ed con los dos últimos bits.

Verificación de la imagen para ver cómo se hace el cálculo de hcecksum:

Ingeniería inversa: sincronización

Picture of Reverse engineering: timing
timing_1.png
Así que ahora que sabemos lo que es todo, lo único que queda por hacer es averiguar la sincronización de las señales.Cada bit está compuesta por un periodo de baja y un periodo de alta. El ciclo es siempre 1.92-ish milisegundos. Un pulso largo es 1,3 ms y ms 0,62 un pulso corto.

Cada fotograma, bit de arranque excluido, es la Sra. 38.4 38,4/20 = 1.92 Sra. así 1,92 ms me parece un buen punto de partida para la creación de los tiempos bien.

Picture of Reverse engineering: Re-create the result
Sé cómo funciona, ahora vamos a tratar de recrear el resultado.Configurar un temporizador en una ATmega8.

El ATmega está funcionando a 12MHz.

Un contador de tiempo está configurado con un prescaler 128 en el modo de CTC. En el modo CTC, se restablece el temporizador y se llama una interrupción cuando el contador llegue a un contador de tiempo determinado comparar valor.

El contador se actualiza cada ciclo de 128 reloj. Esto significa que tengo que usar 120 y 58 como los valores del contador para los pulsos cortos y largos.
(1000/12000000) * 128 * 121 = 1,29 mS
(1000/12000000) * 128 * 59 = 0,62 mS

Esto está muy cerca de los tiempos originales.

Armar una simple función para llenar un búfer con los tiempos de retardo para un determinado marco de RF. Una rutina de interrupción luego enciende un pin de IO y apaga y establece el temporizador comparar valor para crear el pulso de la longitud deseada.

Podemos  enganchar  hasta el analizador lógico y copiar-pegar el resultado en Gimp.¡ Bingo! La señal resultante es idéntica a del control remoto RF 😀

Hardware: RF-fail y carga de la bomba

Picture of Hardware: RF-fail and charge pump
Pero el control remoto utiliza una batería de 9v.y el Tamega  5  así que no podemos conectar directamente .. ¿Tal vez el módulo RF necesitaba 9v? Conectar   VCC en el módulo de RF + 9V e intentar de nuevo. ¡ Un éxito!

Pero no es elegante o tener una batería de 9v dentro del  gadget,así   que podemos usar una  bomba de carga consiste en un inductor, un transistor, un diodo y un condensador.

Cuando se activa el transistor, el inductor es cortocircuito a tierra. Cuando se desactiva el transistor, hay un efecto de flyback en el inductor que libera una corta ráfaga de alta tensión. Este voltaje atraviesa el diodo y queda atrapado en el condensador.

Picture of Hardware: circuit
El circuito es bastante simple. Lo complicado es dentro del módulo de RF.

La parte principal es un microcontrolador AVR ATmega8. Un conector USB está conectado vía algunas resistencias y diodos zener. Las señales USB son 3.3v, así que necesitamos para reducir el voltaje Zéner.

La línea de datos del módulo de RF está conectada a un pin de IO. El transistor de la bomba de carga y el LED de estado también están conectadas a los pines de IO.

La señal de retorno del circuito de la bomba de carga está conectada con el comparador analógico. Compara la tensión a una tensión de referencia interna.Creo que la tensión de referencia es 1,1 voltios ish. No es tan importante.

El circuito tiene los circuitos regulares como condensadores de filtrado también y un cristal de 12MHz.

(faltan solo las  resistencias en los LEDs en el esquema. Usted puede agregar resistencias adecuadas.)

Se suministra una señal PWM para el transistor para hacer este 23.000 ish veces por segundo. Cada vez que lanza el transistor, aumenta un poco la tensión en el condensador.

Para evitar que crezca la tensión alta, el voltaje en el condensador es alimentado hacia el microcontrolador mediante un Diodo zener. El comparador analógico comprueba si el voltaje es superior a 1,2 voltios + el voltaje zener.

El bucle principal del microcontrolador continuamente comprueba si el voltaje está por debajo del umbral. Si lo es, se inicia la señal pwm. Si se alcanza el nivel umbral, pwm está deshabilitado.

Picture of Hardware: prototype
Antes de quitar el chip de la placa, es necesario algún software.El software está escrito en C y basado en un proyecto de ejemplo de lib objetivo desarrollos V-USB. Esta es una gran pieza de software, y es gratuito y de código abierto para su uso personal y no comercial.

http://www.obdev.at/Products/vusb/index.html

No voy a entrar en detalle sobre cómo funciona el software. La ingeniería inversa es el énfasis de . Aquí está la versión corta:Tiene dos programas para hacer que esto funcione. Un programa en su ordenador y el firmware para el microcontrolador.

Microcontrolador:

Las transmisiones RF actuales se realizan mediante una rutina de interrupción.Se usa una interrupción del temporizador porque esta es la manera más fácil de obtener sincronización exacta. La interrupción del temporizador Lee de un búfer global donde se almacenan los tiempos de retardo. No almacenar el estado de encendido/apagado del transmisor RF desde el encendido y apagado siempre suplentes. Comience con un pulso apagado, y luego alternar dentro y fuera de pulsos.

El tampón contiene valores de 42. Hay 21 bits para ser transmitido, y cada uno tiene un período de bajo y un periodo de alto. Esta configuración no es muy eficiente de RAM, pero el ATmega8 tiene un montón. Podrás cambiar RAM para la legibilidad del código en lugar de tener memoria ram sin usar!

El buffer está poblado por la función send_rf_frame (red, capacidad de carga).En los tiempos en la matriz de tampón rf, empezando con el bit de arranque, seguido por el identificador de red de 12 bits y los 8 bits de carga + comprobación bien llena. Cuando el buffer se llena, la variable posición tampón se restablece a 0, para que la rutina de interrupción comenzará el trabajo de bit 0 en el búfer.

Cuando se enviaron datos al microcontrolador por el puerto USB, se llama la función usbFunctionSetup(). Esta es una función que crea y donde pones tu código USB entrante.

Dependiendo del tipo de solicitud enviado desde la PC, puedes hacer cosas diferentes dentro de esta función. Tengo pedido dos tipos configurados, set_network_id y send_command.

La solicitud de set_network_id sólo toma el identificador de red de 12 bits enviado desde el ordenador y almacena en un valor entero global.

La solicitud de send_command llama send_rf_frame() y pasa el byte recibido comando a él. Después de eso, la rutina de interrupción asume el control.

Dentro del bucle main():
usbPoll(); tiene que ser llamado cada pocos milisegundos (10 o 50, no estoy seguro) para el USB para que funcione correctamente.
Después de eso, se comprueba el comparador analógico. Si el voltaje de carga de la bomba es demasiado bajo, se inicia la bomba de carga. Si es en la tensión deseada, se apaga la bomba de carga.

Por último, un LED de estado se establece en ON si la bandera rf_busy está activa.

Ordenador :

En el lado del ordenador  también es necesario modificar   el ejemplo proporcionado por el objetivo de desarrollo. Se puede añadir  un código para analizar los argumentos de la línea de comandos. También puede escribír una función para crear los bytes de carga útil. Toma argumentos como el número de la lámpara, encendido/apagado, difusión.

El programa informático puede utiliza libusb para comunicarse con el microcontrolador.

También es util un pequeño script para llamar el programa informático de línea de comandos cuando se presionan los botones de una página web. Abra la página web en tu Android/iPhone y controlan las luces!

Fuente   aqui