Software 3D alternativo para impresora Geeteeth Prusa I3W


Actualmente una de las impresoras 3d mas económicas pero al mismo tiempo fiables es la famosa impresora Geetech  Prusa I3W, la cual por cierto es la elección preferida por los clientes de Amazon ( cuesta unos 150€ en forma de kit), siendo una de las mas vendidas en consecuencia .

El montaje de la Prusa I3 W ciertamente es bastante laborioso pero no es  tan complicado como podrida pensarse ( unas 10 horas aproximadamente o dos tardes ) siendo un ejercicio estupendo para compartir con un menor,  sobre todo cuando se trata de ensamblar piezas móviles o conectar bloques de madera entre si .Por cierto en este blog están precisamente los links de los videos de montaje paso a paso,

Una vez hecho el montaje mecánico, hay que cablear ,colocar la electronica  ,ajustarla e instalar el sw  de EasyPrint3d con el pc. Se supone que es “plug and play” pero hay personas  que tienen  que  buscar el driver de Arduino e instalarlo.

Podríamos decir que la calibración y configuración es lo que más tiempo lleva para conseguir una impresión óptima, aunque  eso sólo ha de hacerse una vez ( al menos en teoría).

 

Programa EasyPrint

EasyPrint 3D es el software de impresión 3D GRATUITO oficial para usar con la Prusa I3 W : es fácil de usar , esta desarrollado por GEEETECH y es capaz de convertir un modelo 3D digital en instrucciones de impresión para su impresora 3D.

Corta el modelo en secciones horizontales (capas) proceso conocido como slicing, genera información de trayectoria y calcula la cantidad exacta de filamentos a extruir.

Se  puede descargar desde el sitio oficial  http://www.geeetech.com/forum/viewforum.php?f=43

Esta es la configuración recomendada por el fabricante pera el  material en el caso de usar PLA ( el cual es que mejores resultados da con esta impresora):

 

material

Estos son los parámetros específicos para la impresora la Prusa I3 W l :

printer.PNG

Y  finalmente los parámetros usados para la impresión 3d

parameters.PNG

Ahora veamos las lineas de Gode al iniciar a impresión

G28 ;Home

G1 Z15.0 F6000 ;Move the platform down 15mm

;Prime the extruder

G92 E0

G1 F200 E3

G92 E0

Y  estos  son las linea de Gcode al finalizar

M104 S0

M140 S0

;Retract the filament

G92 E1

G1 E-1 F300

G28 X0 Y0

M84

Ultimaker Cura

Al ser  la Prusa I3 W  una impresora con código libre es posible usar otros programas diferentes tanto para el slicing como a la  propia impresión  3D ,  diferentes del recomendado  por el fabricante (EasyPrint ) como por ejemplo el  famoso sw de cura, el cual es un programa más elaborado y con idioma español

Puede parece descabellado usar otro sw, pero  es fácil percibir con la practica que el sw oficial EasyPrint es lamentablemente  un producto en proceso de depuracion lo cual normalmente se traduce en muchas piezas mal impresas o  que tenemos desechar  por interrupciones o cueles de este .

He probado con ambos programas, junto muchos mas usuarios  ,y  desde mi experiencia    el sw de cura da mejor resultado en la impresión con la Prusa I3 W,lo cual no significa que no tenga que usarse el sw ofical

Este  programa es ligeramente mas complejo que usar  el EasyPrint 3D , ahora bien una vez configurado su manejo es también muy sencillo  (y todo el interfaz esta traducido  en Español a diferencia del EasyPrint3d que esta en chino y en ingles unicaemnte)

El cura necesita configurarse para este modelo de impresora ya que aparece la Prusa I3  pero no la Prusa I3 W,, por lo que debernos  cambiar algunos ajustes  que vamos a describir

En primer lugar , si disponemos de un equipo con W10 64 bits  con al menos dos núcleos , descargaremos  el sw de Cura desde su sitio oficial https://ultimaker.com/en/products/ultimaker-cura-software

Para poder realizar la descarga nos piden unas pocas preguntas en ingles  pero al responderlas , en  pocos segundos estaremos descargando el sw

Una vez instalado el sw , ejecutaremos este  y nos  iremos a la sección de los ajustes

Estos son los ajustes de la impresoara Prusa I3 W,:

 

ajustes2.PNG

Y estos son los del extrusor:

 

ajusters3.PNG

Por ultimo este el gcode que nos proponen;

G21 ;metric values

G90 ;absolute positioning

M82 ;set extruder to absolute mode

M107 ;start with the fan off

G28 X0 Y0 ;move X/Y to min endstops

G28 Z0 ;move Z to min endstops

G1 Z15.0 F9000 ;move the platform down 15mm

G92 E0 ;zero the extruded length

G1 F200 E3 ;extrude 3mm of feed stock

G92 E0 ;zero the extruded length again

G1 F9000

;Put printing message on LCD screen

M117 Printing…

 

Y  estos  son las linea de Gcode al finalizar:

M104 S0 ;extruder heater off

M140 S0 ;heated bed heater off (if you have it)

G91 ;relative positioning

G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure

G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more

G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way

M84 ;steppers off

G90 ;absolute positioning

 

En este caso en ambas partes no proponen codigo similar (en negrita están las similitudes con el sw de easyprint3d) ,

Vemos que esta mucho mas desarrollado ,por  que es perfectamente funcional y se puede mantener así

 

Anuncios

¿Porqué están tan de moda las FPGA’s?


Realmente  las FPGA’s  o matriz de puertas programables (del inglés field-programmable gate array) no son un invento reciente  pues fueron inventadas ya hace unos años allá por  el año 1984 por Ross Freeman y Bernard Vonderschmitt, co-fundadores de Xilinx.

Esencialmente internamente están formadas por  una enorme matriz  compuesta  por un gran número de pequeños bloques  formados por puertas lógicas y  biestables síncronos  (de hecho del orden de cientos de miles hasta millones de ellas según el  modelo) y justo en la intersección de esos  hay conmutadores digitales   que  son los que precisamente se  configuran  modificando la   matriz de conexiones  para realizar una determinad tarea tal  y como se haría con un circuito digital

Estos bloques individuales están constituidos por elementos lógicos como puertas AND,OR,NOR   que les permiten adoptar distintas funciones de transferencia.

El inter-conexionado de una FPGA  por tanto esta  cero cuando esta  está sin configurar, de modo que necesitamos  habilitar e puentes de  conexiones  en determinadas partes  y en otras deshabilitarlas , función que hacemos mandándoloe  una ráfaga de bits ( o bit stream )

 

Juntos, los distintos bloques, unidos por las conexiones que programamos, hacen que físicamente se constituya un circuito digital, de forma similar a como haríamos en una placa de prototipos (protobard)  con  elementos discretos  por ejemplo de la serie c-mos y con mucho cableado físico   sujeto a errores y poca fiabilidad.

Estos arreglos de matrices con cientos de miles hasta millones   de puertas programables sencillas como AND,OR,NOR   y  biestables , nos dan una gran ventaja a la hora de implementar un circuito lógico pues en vez de invertir en conexiones físicas susceptibles de fallar , es mucho mas eficiente realizarlo  con una FPGA  donde  pueden estar todas estas puertas pero incluidas en un chip pequeño, el cual lo configuraremos  para realizar esas conexiones  programando  las  compuertas para un determinado fin , y cuando ya no sea necesario  es posible reprogramarlo para otro cometido

Como vemos la enorme libertad  en la interjección de dichos bloques confiere a las FPGA una gran flexibilidad y versatilidad que llega hasta tal punto  que incluso  son  capaces de emular microprocesadores  de varios núcleos ( en función del tipo de FPGA)  ,

Hay proyectos de pequeños procesadores que pueden ser configurados en un FPGA. Ejemplos son MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores de código abierto LatticeMicro32 y LatticeMicro8.  !Incluso existen proyectos para emular procesadores históricos en FPGA, como el famos procesador del Apollo 11 Guidance Computer que llevo  el hombre a la Luna.

Todo esto pues puede explicar porque se están poniendo de moda pues permiten sobre una misma pastillas realizar diferentes circuitos   que incluso pueden ser actualizados  para mejorar su rendimiento su necesidad de  cambiar el hardware

Un aspecto a destacar  es  dado que su funcionamiento es básicamente cableado permite  velocidades  altisimas de reloj desde Mhz  hasta Ghz, pudiendo hacer procesamiento de señales de alta frecuencia así como construir circuitos muy rápidos por  lo que vemos ninguna de las placas qeu hay en el mercado  como por ejemplo Ardiuino se aproximan a las FPGA’s

Algunos de los principales fabricantes son Xilinx, Altera (comprado por Intel en 2015), MicroSem, Lattice Semiconductor o Atmel, pero  recientemente otros grandes players como Arduino  también han entrado en este lucrativo negocio del hardware  con el modeloMKR Visor  basada en un chip de Intel , el  modelo  Cyclone 10CL016j,

Programación

Los FPGA no se “programan” en el sentido estricto  como estamos familiarizados usando lenguaje como Processing C, C++,  Python,etc  pues  usan   HDL ( Hardware Description Language. ) ,es decir un tipo diferente de lenguaje descriptivo usado también en el diseño de chips y SoC

Para empeorar las cosas una de las claras  desventajas de las FPGA es que estos lenguajes HDL  son especificos  para cada FPGA por lo que  cada fabricante diseña su propia forma de hacer síntesis sobre esta

Los lenguajes HDL tienen una curva de aprendizaje grande debido a que tiene un grado de abstracción muy bajo pues piensese que  describen diseños de circuitos digitales de modo que los fabricantes proporcionan herramientas comerciales para programar sus propios FPGA. Estas herramientas no son gratuitas, o lo son sólo para algunos modelos de FPGA del fabricante y como vemos están unidos a la arquitectura de un único fabricante.

Con el desarrollo de los FPGA han aparecido otros lenguajes que permiten un mayor nivel de abstracción, similar a C, Java, Matlab. ejemplo son System-C, Handel-C, Impulse-C, Forge, entre otros.

Con la evolución en el desarrollo de las FPGA también han aparecido herramientas centradas en la programación gráfica de las FPGA, como LabVIEW FPGA, o el proyecto Open Source IceStudio  desarrollado por Jesús Arroyo Torrens.

Afortunadamente hace unos  años hubo un investigador   proveniente de la docencia llamado   Clifford Wolf que tras un hercúleo trabajo de ingeniería inversa con su proyecto ice storm a lo largo de tres años. que  liberó un modelo de  FPGA de  Lattice Semiconductor (el modelo iCE40 LP/HX 1K/4K/8K, ) publicando en la comunidad Open Hardware  su diseño y método de programación ,  así que  hay buenas noticias sobre esa desventaja que existía de programar  la FPGA’s pues es posible programar algunos modelos con herramientas abiertas

 

El coste

Como hemos visto , los lenguajes con los que se configuran ka FPGA  dificultaban  su uso ,pero tras la liberación del modelo de Lattice  se camina hacia herramientas abiertas asi  que uno  de os grandes escollos que deben superar el coste   pues e todavía las FPGA’s tienen un costo muy elevado sobre los microcontroladores pues un microcontrolador arduino clónico lo podemos conseguir  por menos de 10 € , y lamentablemente  una FPGA  es imposible conseguirla   por ese precio pero poco a poco esto esta cambiando con placas que vamos a ver a continuación

El  precio de  una FPGA  puede estar en el rango de 20 a 80€  como vemos muchísimo más caro que un Arduino Nano (16Mhz) o un STM32 (160Mhz) que podemos comprar por 1.5€, un Node Mcu ESP8266 (160Mhz + WiFi) que podemos comprar por 3.5€ o incluso, son mucho más caros que una Orange Pi (Quad 800 Mhz + WiFi), que podemos encontrar por unos 20€.

 

Placa Arduino MKR Vidor 400

El Arduino MKR Vidor 4000 es una nueva clase de desarrollo que combina el alto rendimiento  y flexibilidad de una FPGA con la facilidad de uso del Arduino en un pequeño factor de forma que es el rasgo distintivo de la familia MKR

Esta placa contiene el microcontrolador SAMD21 de Microchip y un Ciclón 10 FPGA ( de INTEL) y cuenta  con 8 MB SDRAM,  2 Mbyte QSPI Flash (1MB para las aplicaciones de usuario), conector Micro HDMi  de alta definiciónI, conector de la cámara MIPI, Wifi  alimentado por el módulo de U-BLOX NINA W102, la clásica interfaz MKR en que todos los pernos están conducido por SAMD21 y FPGA y un conector Mini-PCI Express con hasta 25 pines programables del usuario.

El FPGA contiene elementos de la lógica de 16K, 504Kbit de RAM integrado y multiplicadores de 18 x 18 bits HW 56 para DSP de alta velocidad; Cada pin puede cambiar a más de 150 MHz y puede ser configurado para funciones tales como UARTs, SPI (Q), alta resolución / alta frecuencia PWM, encoder de cuadratura, I2C, I2S, Sigma Delta DAC, etcetera. A bordo de FPGA puede también utilizarse para alta velocidad operaciones de DSP para el procesamiento de audio y video.

El Arduino MKR Vidor 4000 puede ser programado usando el Software de Arduino (IDE),  y ejecutar tanto online como offline

 

 

 IceZUM Alhambra

La IceZUM Alhambra incluye una FPGA iCE40 del fabricante Lattice Semiconductor, cuyo diseño y método de programación fue liberado por Clifford Wolf tras un hercúleo trabajo de ingeniería inversa a lo largo de tres años.
La placa de desarrollo IceZUM Alhambra se desarrolló originalmente en BQlabs y ha sido diseñada por Eladio Delgado en colaboración con Juan González, siempre con la idea de que pudiera ser utilizada en educación.

La placa se puede adquirir a través del grupo #FPGA-Wars que conforma la comunidad en torno a esta placa  lanzando tiradas cortas conforme los usuarios se van apuntando. De momento tiene un coste de 65 euros, con una calidad excepcional y todos los controles de calidad gracias al trabajo de Eladio Delgado pero es de suponer que cuando se fabrique a mayor escala podrá bajar el precio.(al ser hardware libre… en principio cualquiera puede lanzarse a su fabricación.) Tambiédsiponen una IceZUM Alhambra “peregrina” que se va enviando de unas personas a otras para que la puedan probar( esto esta en el grupo #FPGA-Wars.)

Para modificar las conexiones internas de una FPGA se utilizan lenguajes de descripción hardware. Para la IceZUM Alhambra dado su carácter libre y abierto se utiliza Verilog, lenguaje de descripción hardware abierto y podríamos decir que estándar hoy en día.

Pero la maravilla que seguro ayudará a que estudiantes puedan entender mejor el diseño de circuitos digitales se llama Icestudio,  creación de Jesús Arroyo y que me atrevo a comparar con lo que ha supuesto Scratch a la programación.

Con Icestudio en vez de utilizar código de descripción hardware diseñamos directamente, gráficamente, el circuito combinacional. Es seguro que con Icestudio se podrá introducir a la electrónica digital a alumnos cada vez más jóvenes.

 

icezum alhambra icestudio

BQ patrocinó el proyecto conjunto de la IceZUM Alhambra junto con Icestudio y Apio en sus inicios a lo largo de 2016 y ahora el proyecto avanza gracias a sus creadores con el apoyo de la comunidad gracias a su concepto abierto y colaborativo.

Ejemplo

El proyecto IceStorm es un toolkit (formado por IceStorm Tools + Archne-pnr + Yosys) que permite la creación del bitstream necesario para programar un FPGA iCE40 con herramientas open Source.

El trabajo de Clifford se realizó un IceStick, una placa de desarrollo con un FPGA iCE40, por su bajo coste y pequeñas características técnicas, que permitían el trabajo de ingeniería inversa.

el proyecto IceStorm y el Lattice ICE fue el inicio de una revolución en el campo de las FPGA similar a la que empezó Arduino con los procesadores AVR de Atmel, y que ha permitido poner al alcance de los usuarios domésticos pues el resro de FPGA’s requieren inversiones elevadisimas tanto en hw como en sw.

Para terminar , vamos a  ver un  sencillo ejemplo de como configurar (Programar) un FPGA de forma fácil usando Icestudio (HDL) y la ICE40 icestick de lattice, para configurar una alarma de indencios

 

 

 

Cámara trasera con Raspberry PI para coche basada en Android


En efecto  simplemente podemos  usar una frambuesa Pi como retrovisor o cámara trasera  en conjunción con su smartphone o tablet gracias a la aplicación  RearPi.

Esta app disponible en Google Play  gratuita  y sin anuncios se conecta a su Raspberry  Pi a través de SSH y activa bien  una cámara usb  externa  o bien    la  cámara nativa para Raspberry Pi con interfaz CSI  un enlace de mayor ancho de banda que transporta los datos de píxeles de la cámara al procesador.  .

Disponiendo de la Rasberry con una cámara,   basta  con conectarse  a esta via ssh (nombre de IP-Adress/Login y contraseña), iniciar la cámara en el arranque de la aplicación o con el botón “Abrir” y  pulsar  el  modo de pantalla completa  para disponer de la visión trasera desde la app de un modo  muy nítido  . Al continuar el trayecto si ya no se requiere  basta cerrar la cámara con el botón “EXIT” para disponer nuestro smartphone  para reproducir nuestra lista de música favorita o que nos guié a través de alguna app  de navegación

 

Imagen

Razones para usar una Raspberry Pi como cámara trasera

RearPi es una sencilla aplicación para Android disponible gratuitamente   SIN PUBLICIDAD en en Google Play  que nos va a permitir  visualizar y grabar señales de vídeo transmitidas por una Raspberry Pi o similar   a través de WiFi , por lo que es utilizable para casi todos los coches para transmitir señales  de vídeo procedentes de una cámara frontal  o  de una cámara trasera hacia un terminal Android.

Puede que piense que existen en el mercado soluciones especificas de cámaras traseras para coche  a un precio  similar  a una Raspberry Pi   sobre todo si pensamos en que necesitamos adquirir el hardware especifico que vamos a describir, lo cual  ciertamente podría ser parcialmente cierto , pero  esta afirmación se desmorona si  podemos usar elementos que ya tengamos   pero  sobre todo  , si deseamos  usar  nuestro smartphone o incluso un  terminal obsoleto  que tengamos  para visualizar la señal , lo cual  es un punto a su favor de  esta solución  si lo comparamos con las pequeñísimas o antiestéticas  pantallas de visualización  que  ofrecen los kits de cámaras traseras  (piensese que  solemos llevar  siempre  un smartphone y ademas puede usarse para otras usos)

Incluso en otros vehículos (por ejemplo  para las caravanas)  pueden  usarse para ofrecer la visión delantera o trasera por  múltiples pantallas de  forma inalámbrica

Algunas características de esta aplicación:
  • Grabación cámara  (.. 15 min 30 min 45 min)
  • Bucle de grabación (.. 15 min 30 min 45 min)
  • Opción para establecer la calidad de grabación
  • Reproductor multimedia integrado para ver grabaciones
  • Modo de pantalla completa  y sin publicidad
  •  Documentación Integrada

En realidad  como podemos intuir , esta  app  se conecta a su Raspberry Pi ( o  cualquier placa basada en Linux  )  por ssh   mediante   IP-Dirección , login y contraseña mediante WIFI dentro de la misma red , y , una vez conectada se puede  iniciar la cámara en la   aplicación o con el botón “OPEN” ,pudiéndose   cerrar la cámara con el botón “SALIR”

Para utilizar su Frambuesa Pi con RearPi como cámara y esta aplicación  rearPi    tendremos   que seguir unos pocos sencillos   pasos en la Raspberry  PI, pero antes veamos  el hardware necesario

 

Hardware necesario

¿Qué necesita para obtener una señal de video?

  • Una Raspberry Pi o un dispositivo que ejecute una distribución de Linux con un sistema operativo preinstalado y una trabajando la conexión SSH.
  • Un dongle WiFi como el “Edimax EW-7811”
  • Una cámara USB o cámara web como Logitech C270
  • Un cable de carga micro USB
  • Un cargador de coche como el “Anker” PowerDrive2 ” Entrada: DC 12 / 24V Salida: 5V / 4.8A 2.4 A por puerto.Por favor, asegúrese de que su Raspberry  se pone suficiente potencia y el voltaje correcto.La salida de su cargador de coche debería tener 5V y la capacidad actual recomendada para su modelo está escrito en la lista siguiente:

raspberrrypower.PNG

Instalación de mjpg streamer

Para que su Raspberry esté lista para transmitir video via tcp/ip a traves de una conexión wifi, debe seguir estos pasos:

1. Abra un terminal por ssh
2. Instale mread streamer con estos comandos (comience con el primero):
 sudo apt-get install libv4l-dev
 sudo apt-get install libjpeg8-dev
 sudo apt-get install subversion
 sudo apt-get install imagemagick
 svn co https://svn.code.sf.net/p/mjpg-streamer/code/
 cd / home / pi / code / mjpg-streamer /
 make USE_LIBV4L2 = true clean all
 sudo make DESTDIR = / usr install
3. !Listo!!

Configurar una dirección IP estática y conexión WiFi

Para asegurarse de que su Raspberry Pi siempre tenga la misma dirección IP, establezca IP estática (para que no tenga problemas al  iniciar la app)

Por ello verifque su interfaz WiFi  con  el comando :ifconfig (buscar la ip asociada a Interfaz WiFi) y una vez seap el  nombre de interfaz WiFi asi  , edite las interfaces:

  • sudo nano / etc / network / interfaces
  • Desplazarse hacia abajo a la #WLAN  sección (si no está allí crear uno al final del archivo)
  • Configure su interfaz a IP estática
  • Configure su Raspberry Pi  a una  dirección  fija ,por ejemplo “192.168.43.125” o lo que quiera
  • Escriba el nombre de la zona wifi y contraseña entre comillas  “
  • Salvar el fichero y reiniciar la Raspberry

RearPi

Para empezar a usar  su Raspeberrry Pi como cámara IP trasera, una vez seguido el proceso anterior de personalización de la  Pi , es importante que  nuestro smartphone  y la  Raspberry estén en la misma red , para lo cual podemos  automatizar el proceso con la App Automate , tal y como vimos en este post 

Muy  resumidamente  la red wifi , se consigue con la función de “hot spot ”  de nuestro teléfono inteligente  la cual permite conectar diferentes dispositivos conectados a nuestra propia red wifi generada desde el  propio terminal   .En caso de Android   vaya a “Configuración –>Más –>Anclaje y punto de acceso portátil” o en versiones de Android superiores a   a la 7 vaya   a  Ajustes (la tuerca ) , busque la opción de  Más y vaya  a  Anclaje de red y zona Wi-Fi  y pulse  Zona Wifi portátil  y áctivelo ( interruptor a la derecha).Una  vez creada la zona wifi podemos  automatizar el proceso con la App Automate buscando   el punto de acceso en el automóvil ( Hotspot ON/OF CAR ) y descargando el flujo

Ahora con  ambos  equipos en red ,conecte la Raspberry Pi con su cargador e Instale la app RearPi desde Google Play 

Una vez ejecute la app, abra la “configuración” y configure la “Dirección IP”, el “Nombre de inicio de sesión” y la contraseña (std pw = raspberry) y podemos empezar con los ajustes de  la pantalla de inicio ajustable:

  •  Establezca los segundos por cuánto tiempo pantalla de inicio se queda (en la configuración)
  •  Establecer “0” para ninguna pantalla de inicio
  •  Activar la cámara cada inicio

Imagen Imagen

Una vez  realizados los ajustes , pulsaremos  el  botón ABRIR , el cual  se conectará a la Raspberry Pi y activara la cámara  actualizando la señal de vídeo

Si queremos abandonar  esta utilidad  , pulsaremos  el  Botón EXIT, el cual se conectara a la Raspberry Pi y desactivara la cámara, cerrando  aplicación

Un modo muy interesante es el Modo de pantalla completa, qu e opera del siguiente modo:

  •  Toque una vez en el vídeo para obtener modo de pantalla completa
  •  Toque  nuevamente para salir de pantalla completa modo

Imagen

Un truco muy interesante es el Modo de pantalla completa al inicio, que conseguiremos si  establecemos la marca de verificación para ir directamente en el modo de pantalla completa (configuración)  cuando iniciemos la aplicación

Por cierto también es posible  grabar video  y visionarlo  desde la propia  aplicación

 

Imagen

 

Resumidamente estos son los posos a seguir para crear una camara trasera  :

  • Establecer un hot spot  para conectar la Pi y su teléfono / tableta.
  • Para transmitir vídeo tiene que instalar streamer MJPG  en Raspberry Pi:.
  • Ejecute   sudo ◦ apt-get install build-essential libjpeg-dev ImageMagick subversión libv4l-dev checkinstall
  • Ejecute  svn co svn: //svn.code.sf.net/p/mjpg-streamer/code/ MJPG-streamer
  • Ejecute cd MJPG-streamer / mjpg-streamer
  • Ejecute  VERSION = $ (sed -n ‘/SOURCE_VERSION/s/^.*”\(.*\)”.*$/\1/gp’ REVISIÓN ◦ = $ (CN svnversion | sed “s /.*: //”)
  • Ejecute sudo checkinstall –pkgname = MJPG-streamer –pkgversion = “$ + $ VERSIÓN DE REVISIÓN ~ checkinstall” –default
  • Hacer USE_LIBV4L2 = true ← opcional
  • De a suu Raspberry Pi una dirección IP estática (pasos detallados en el manual de PDF).
  •  Conectar con la App a su a Pi (IP / Conexión / PW)

 

Con  esta solución  no, necesita alguna fuente de radiación lumínica o infrarroja pues  en condiciones de muy baja luminosidad trabaja bien especialmente si usa la camra nativa.

Por cierto para probar si esta funcionando el stream de video ,tenemos  el comando raspistill que   sirve para hacer fotografías. Si busca en internet hay proyectos para hacer de forma automatizada varias tomas y hacer un timelapse  de modo  qeu la ventaja de esta cámara es que la podrá usar como cámara de vigilancia con uno leds infrarojos para iluminar la zona

En el siguiente vídeo podemos  ver la cámara en acción:

 

Documentación: https://alikamouche.files.wordpress.com … _v1-33.pdf

Cómo descargar archivos APK desde Google Play store


Puesto que se trata de la plataforma android  nuestros smartphones  basados en Android tienen características de inteligencia adicional que es ofrecida gracias  a las millones de aplicaciones disponibles desde Internet ,y eso  a esta alturas todos los usuarios de Android lo sabemos  ( o lo deberíamos sospechar)  siendo  lo mas  rápido  y seguro optar por descargar estas desde el sirio oficial:  Google Play Store , sobre todo en los tiempos actuales donde cada día surgen nuevas apps con objetivos  poco éticos enmascaradas en inocentes funcionalidades.

La Google Play Store es pues  una de las claves que hace que un terminal  Android sea genialmente eso pues disponer de un móvil o tablet certificados   y una cuenta de google nos permite el acceso a la tienda y con ellos a  infinidad de opciones.

A veces  hay terminales de  bajo coste que no todos traen la tienda de Google de Serie (los chinos suelen dar problemas aquí, pero no son los únicos : por ejemplo los terminales de Amazon ),   o simplemente no  pueden  acceder por problema en el firmware ,actualizaciones erróneas, fallos de red ,etc  , razón por las que puede nos interesase descargar las app en local desde nuestro pc para luego copiarla en una sd  y luego en el terminal desde un explorador de archivos realizar la instalación manualmente desde el propio apk con el instalador de paquetes

apple applications apps cell phone
Photo by Tracy Le Blanc on Pexels.com

 

¿Por qué no podemos descargar apk de google play store???

Google tiene algunas políticas estrictas que impiden a los usuarios de android que descarguen los  archivos de apk directamente a sus dispositivos para impedir la piratería.Ademas  hay otros asuntos relacionadas como si una aplicación específica que usted quiere está disponible en su país o si  oficialmente es soportados por  un  cierto dispositivo o no o a partir de una determinada version .

Obviamente , ante esta  problemática , existen muchas alternativas de Tiendas de aplicaciones en Internet que  almacena y  permiten descargar apk directamente , pero insistimos el riesgo puede ser viral, así que lo idea seria bajar el fichero apk desde Google play store directamente ¿pero como se pueden saltar restricciones de necesitar la app de Google Play para instalara cualquier app de Google Play en un terminal? Pues es posible y lo vamos  a ver a continuación

¿Cómo anular  restricciones y descargar Apk de Google Play Store?

Descargar archivos apk directamente desde Google play oficialmente no es posible por políticas de google. Sin embargo, hay una alternativa, como cada moneda tiene dos caras. Hay una aplicación llamada “Apk Downloader extensión” que ha hecho posible que sea posibe  descargar el APK desde Google Play Store. Esta aplicación realmente hacer maravillas y de alguna manera se las arregla para tirar desde servidores de la tienda oficial

Creo que esta opción  ofrece muchas ventajas pues .

  • Le da libertad para descargar aplicaciones que no están disponibles en su país.
  • Soporta todos los dispositivos.
  • Puede instalar  Apk desde play store, incluso si no  tiene instalado Google Play  en su dispositivo.

Esta  aplicación puede saltarse todas las restricciones de servicios de Google play y por lo tanto esta aplicación particular puede ser utilizada por ambos tipos de usuarios de android que tienen tienda activada o desactivada.

Extension ApK dowloader

La extensión de Chrome llamada  Apk Downloader  funciona perfectamente con casi todas las aplicaciones disponibles en la Google Play que sean gratuitas , así que si quiere descargar aplicaciones y almacenar su archivo Apk, puede descargar esta aplicación desde la tienda play en primer lugar en su pc   y luego llevarse el archivo al dispositivo donde lo quiera instalar.

Para usar esta extensión   en  su navegador siga estos pasos

  1. Descargue  la extensión desde aqui 
  2. Añada la extensión  a Google chrome
  3. Acepte la instalación de esta extensión
  4. Compruebe en la esquina superior derecha de la pantalla justo a la izquierda del icono de búsqueda que hay un icono naranja nuevo.

Ahora una vez instalada la extensión en Google Chrome ,sigue estos pasos para obtener el apk directamente desde Google Play Store.

  1. Ir a Play Store y seleccionar cualquier aplicación que desee descargar.
  2. Copiar la URL ( Ctrl+C)
  3. Pulse el botón de compartir de la esquina superior derecha de la pantalla justo a la izquierda del icono de búsqueda.extension
  4. Seleccione ‘Apk Downloader extensión‘ de las opciones sobre acciones.
  5. Copiar la url de la aplicación  con Ctrl+V en la caja de dialogo
  6. Pulsar Generate Donwload Linkapkdown.PNG
  7. Esperar hasta iniciar la descarga.
  8. El Apk se descargarán automáticamente sin la intervención de los servicios de Google Play.

Para instalar la apk  el archivo APK en su teléfono Android simplemente siga los pasos a continuación:

  1. Coloque el archivo APK en la tarjeta SD o memoria interna de su teléfono (preferiblemente tarjeta SD externa).
  2. Explore la memoria del teléfono / memoria externa y toque el archivo APK.
  3. Haga clic en ‘instalar’
  4.  Espere a que se instale el APK.
  5.  No ejecute la aplicación todavía.
  6. Una vez instalada  y puede abrir la aplicación

 

Descarga del APK desde otro Navegador

Quizás  si no tiene instalado el navegador Chrome,   la mejor opción para descargar los apks de Google Play sea usar algún servicio de descarga que nos pase el apk directamente de Google Play  como por ejemplo el servicio evozzi.com.

Estos son los pasos a seguir

  1. Ir a Play Store y seleccionar cualquier aplicación que desee descargar.
  2. Copiar la URL ( Ctrl+C)
  3. Ir  a https://apps.evozi.com/apk-downloader/
  4. Pulsr Ctrl+V enla caja para pegar la url desde Google Play
  5. Pulsar Generate Download Linkinstalla.PNG
  6. Solo tenemos que pulsar en el botón verde  y se iniciara la descarga del apk a local
  7. Coloque el archivo APK en la tarjeta SD o memoria interna de su teléfono (preferiblemente tarjeta SD externa).
  8. Explore la memoria del teléfono / memoria externa y toque el archivo APK.
  9. Haga clic en ‘instalar’
  10.  Espere a que se instale el APK.
  11.  No ejecute la aplicación todavía.
  12. Una vez instalada  y puede abrir la aplicación

 

Por cierto  ,para que ambos  funcionen debe activar la casilla de “Orígenes desconocidos” que encontrarás dentro de los ajustes de  Android y “Seguridad”.

 

 

 

Sencilla cámara trasera basada en Android


Las cámaras de atrás para  vehículos son sin duda una pieza fundamental en materia de seguridad , pues además  de ser muy  útiles para aparcar  se han demostrado  que son muy necesarias para reducir accidentes mientras transmiten una  imagen mas real de la parte atrás del vehículo  sin ángulos muertos  hacia el conductor .

Tal es su utilidad  que desde 2014 se requieren en todos los coches nuevos en los Estados Unidos, aunque  en Europa y Sudamérica aun todavía no es obligatorio, aunque muchos fabricantes incluso en gamas económicas lo incluyen  de serie .

Su su coche no dispone de cámara trasera , se puede hacer un sistema de relativamente bajo costo del mercado con muy poca inversión.

Aunque existen muchísimas  soluciones vamos  a ver tres bastante económicas:

Usar un  smartphone como cámara

En efecto, dado la potencia  y versatilidad de los smartphones actuales , realmente pueden usarse perfectamente estos  como cámaras IP portátiles , eso si ,  siempre que el smartphone que hace cámara y el smartphone que hace de visor  estén en la misma red, para lo cual puede ser muy interesante automatizar el proceso  como vimos en este post

Vamos a ver algunas aplicaciones para  tal cometido:

FreeRear ViewCam

Es una app que contiene publicidad donde el teléfono inteligente actual se utiliza como un monitor cerca del conductor y su “viejo terminal “, sin uso encuentra su lugar “atrás” y utiliza la funcionalidad de la cámara. A través de la aplicación, los dos teléfonos inteligentes están acoplados, la cámara de la “vieja” y el monitor de los “nuevos” teléfonos – que es la cámara trasera.
Como aspecto negativo la cámara de marcha y la función de grabación contiene publicidad  (hay que pagar  una pequeña cuota para anularlo en la versión avanzada).
Una versión Pro con características especiales está previsto para el futuro.

Es importante destacar que  la transmisión del flujo de vídeo consume  batería  fuertemente, en particular la de los teléfonos con cámara. Si desea transmitir un tiempo más largo conecte el teléfono a una fuente de alimentación y / o Apágala después de su uso.

Advertir a los usuarios de termimales SAMSUNG que el desarrollador  desaconseja el uso de dispositivos de Samsung con FreeRearviewCam. Debido a que una aplicación individual de directrices Android cualquier reconexión entre el transmisor y el receptor móvil requiere una nueva validación en el teléfono transmisor., lo cual o significa que el usuario durante cada nuevo uso de la aplicación en el coche debe  dar permiso para enviar :

Esta app utiliza FFmpeg para el procesamiento de vídeo. Se llama a un FFmpeg binario precompilado como proceso externo. Puede encontrar el código fuente utilizado para compilar el FFmpeg través https://www.freerearviewcam.com/ffmpeg

Los pasos para usar esta app son bien sencillos:

  • Descargar e instalar la app  en los dos terminales  desde  Google Play

Captura de pantalla

  • Ambos  terminales deben estar conectados por wifi a la misma red.
  • Pulsar Back Camara  en el terminal que va a hacer de cámara.
  • Pulsar Front Monitor en el terminal que va a hacer de visor :en unos segundos deberíamos ver en el terminal la imagen captada por la cámara.

IP Webcam

Esta app es muy similar la anterior  debiéndose usar  la misma app para ambas funciones : camera o visor.

Tan solo hay una diferencia con la pp anterior  y es el hecho de generar un token desde la cámara , que deberá ser introducida en el visor.

Captura de pantallaCaptura de pantallaCaptura de pantallaCaptura de pantallaCaptura de pantalla

Esta app en realidad no es para coche  pues utiliza el teléfono Android como cámara web, convirtiendo  un teléfono inteligente en  una cámaras de seguridad para el hogar, es decir una cámara de red  que  permite  ver la cámara en cualquier lugar , pero en realidad  puede servir para monitorizar también la vista trasera del coche
Lo que esta claro es que esta app transforma un  antiguos teléfono inteligente en una cámara ip , que puede usarse como  sistema de seguridad para el hogar, vigilando y protegiendo tu casa, cámara para mascotas, monitor de bebé,o cámara de coche

Este es el link en Google Play https://play.google.com/store/apps/details?id=nfo.webcam

Por cierto una app “profesional” similar a las dos anteriores,  y que puede  usarse no solo como cámara de vigilancia sino cámara trasera para coche, es la famosa aplicación de cámara de vigilancia wifi de Alfred Labs (https://play.google.com/store/apps/details?id=com.ivuu)

Otra solución : una cámara IP

Hemos hablado de cámaras wifi con terminales android , pero también existen camaras IP especificas para coche  y que nos van a permitir    visionar en nuestro terminal android la imagen captada por estas de un modo mas funcional y útil que una pantalla especifica.

La cámara opera  a  2.3-2.4ghz, Velocidad de fotogramas de 30 fps; rango de transmisión de 20 pies a 60 pies (hasta 100 pies bajo ninguna otra condición de obstáculo).

Esta camara  IP  es impermeable, a prueba de polvo y a prueba de choques; iluminación mínima del soporte menos de 0.5 señal digital del lux,de modo que usted podría conseguir una imagen clara incluso en la noche.

Es muy fácil de instalar y operar:

  1. Conecte el transmisor wifi y la cámara trasera a la luz de reserva o alimentación de 9V-30V,
  2. Descargue la aplicación “WIFIAV” en su teléfono (dispositivo inteligente) desde Google Play Store
  3. Instale la aplicación gratuita WiFiAV .
  4. Puede utilizar  el nombre predeterminado del dispositivo (WiFiAV) y la contraseña predeterminada (12345678), pero se puede personalizar con un nuevo nombre y contraseña de la manera que se desee.Hay un botón en el transmisor que reiniciará el transmisor a este valor predeterminado en caso de que cambie las cosas y olvide su nueva contraseña
  5. Obtenga una señal de imagen

Esta cámara   tampoco sirve para Samsung J7 S7 S8 pero soporta iPhone, iPad  auqnue no es compatible con la versión del teléfono que está por debajo de 4.0.

La pantalla de la aplicación llena toda la pantalla, pero puedes pellizcarla y arrastrarla para ajustarla a tu gusto. aproximadamente 3/4 de la pantalla para que sea realmente clara y nítida y  como novedad implementa lineas  de referencia.

.Captura de pantalla

El precio es lo único que nos puede disuadir  ; unos 62,99€ en Amazon pues por lo demás no nos  parece una mala opción.

Tercera solución; Rasberry pi con camara

Ya  que hemos hablado de usar un terminal Android o una cámara especifica ¿por que no usar nuestro propio hw?  Pues en efecto se puede gracias a la aplicación RearPi de la que hablaremos en un próximo post.

Como crear una zona wifi en nuestro vehiculo


En los últimos años, gracias a la proliferación de soluciones especificas que usan conectividad inalámbrica  preferentemente por wifi,  se está haciéndose muy  popular el uso de  ‘WiFi en el coche’,  gracias en parte  a que la  mayoría de fabricantes del sector  se han sumado a esta tecnología , como por ejemplo, Opel  con el servicio OnStar que da conexión a hasta 8 dispositivos de forma simultánea conectando con redes 4G, Audi con connect eSIM , Ford con Ford Sync , Volvo,que lo incorpora en sus modelos más recientes, como el XC90, y un largo etcétera   ¿  Ahora bien, cualquiera puede montar WiFi en su coche, sea cual sea el modelo, y sea del año que sea?. Pues en efecto se puede  y a  un  coste cero como vamos a ver a continuación ..

 

person using white tablet computer displaying location text

Photo by rawpixel.com on Pexels.com

En efecto ciertamente  sin ningún coste (gracias a que no se necesita adquirir hardware especifico)     se puede compartir muestra conexión de datos de nuestro smartphone  por wifi en nuestro vehículo  ,     pues  realmente solo se necesita  tres cosas:

  • Un smartphone  con conexión de datos (3G o 4G).
  • Un sistema operativo   que soporte tethering, es decir la compartición de la conexión de datos 3G o 4G  por medio de una red nueva wifi  ( actualmente  todas las versiones de Android lo soportan)
  • Y por ultimo : un aplicación que automatice la activación de la zona wifi en el terminal

 

Proceso  de creación

En este ejemplo vamos  a ver como usar la la función de “hot spot ”  de nuestro teléfono inteligente o tableta para poder conectar diferentes dispositivos conectados a nuestra propia red wifi generada desde el  propio terminal   y además de un modo automático.
En caso de Android   vaya a “Configuración –>Más –>Anclaje y punto de acceso portátil” o en versiones de Android superiores a   a la 7 vaya   a  Ajustes (la tuerca ) , busque la opción de  Más y vaya  a  Anclaje de red y zona Wi-Fi  y pulse  Zona Wifi portátil  y áctivelo ( interruptor a la derecha).

 

wifi1

Si no lo ha hecho configure su punto de acceso WiFi con el  nombre  de red que desee o bien use el nombre de red por defecto pues muchos  fabricantes optan por  traerlo pre-configurado con un nombre  predefinido .

En caso de Android 7 no olvide  seleccionar SEGURIDAD al menos nivel WPA2 PSK    estableciendo una contraseña de al menos 8 caracteres  y por supuesto guárdelo.

Obviamente activar  y desactivar  la zona wifi portatil manualmente puede ser un autentico tormento , así que lo ideal es   automatizar  el encendido / apagado de WiFi en el automóvil para por ejemplo  cuando entre  en  su coche y encienda   el equipo de audio  que incluya una conexión bluetooth a  su smartphone  se active automáticamente la  zona wifi ( y haga lo propio al salir)  , lo cual lo podemos conseguir  con una aplicación  gratuita llamada Automate  ( del desarrollador  llamado “llamalab”) desde “Google Play Store”.

Cartel

Automate en efecto es una app permite automatizar distintas tareas en smartphone o tableta Android  creando  automatismos utilizando diagrama de flujo. cambiando automáticamente los ajustes como el volumen de audio, Bluetooth, GPS, Wi-Fi, NFC, y llevando cabo acciones como el envío de SMS o correo electrónico, copiar archivos a FTP o Google Drive, reproducir música o tomar fotos, basado en su ubicación, hora del día , aplicaciones en activo, nivel de batería o cualquier otro evento desencadenante. Realmente ademas se puede automatizar casi todo pues  incluso apoyan  plug-ins realizados por Tasker y Locale
Los próximos pasos que vamos a ver   se basan por tanto en si se cuenta con conexión  Bluetooth en tu automóvil , la cual va ser la  desencadenante de la acción de activar o desactivar  precisamente la zona wifi

Abra  la app  “Automate” y haga clic en More flows  (“Más flujos …”)   y  pulse  el botón Start.

wifi2.PNG

Una vez  hayamos pulsado Start ,si es la primera vez nos pedirá que aceptemos los privilegios de acceso a la red ( pulsar Grant si esta de acuerdo)

Ahora  en Community   nos aparecerá  una serie de secciones: categorías, mis descargas  ,mas votadas, mas nuevas  o mejoras (tarda bastante la primer vez en actualizarse).

Busque  el punto de acceso en el automóvil ( Hotspot ON/OF CAR ) y descargue el flujo

wifi3

Una vez que haya descargado el flujo, vuelva al inicio y haga clic en Hotspot ON/OF CAR .

wifi4.PNG

Ahora instale los permisos y edite el  diagrama de flujo (Flowchart) con el lapiz de la parte superior

wifi5

A continuación, abra “Cuando el dispositivo BT se conectó” (When BT device connectes)  y haga clic en “Elegir dispositivo”

wifi6

Ahora solamente queda seleccionar  entre los dispositivos  vinculados por bluetooth el correspondiente al equipo de audio de  su vehículo  , y , guárdela si quiere comenzar el flujo.

wifi7

A  partir de este momento si el flujo está en funcionamiento, su punto de acceso se encenderá automáticamente   cuando su teléfono esté conectado a su equipo de audio .De forma similar cuando apague el equipo de audio  de  su automóvil, el hot spot se apagará automáticamente   ¿interesante verdad ?

Como construir display gigantes


En efecto podemos construir nosotros mismos nuestros propios displays leds  de la medidas que necesitemos  simplemente con Arduino ;Netduino o  Raspberry Pi y por supuesto  un poco de bricolaje

Un dígito led  en realidad esta formado por  7 segmentos  o mas   y es un componente que se utiliza para la representación de caracteres o números en muchos dispositivos   , debido en gran medida a su simplicidad y bajo coste

Aunque externamente difiere considerablemente de un led típico, internamente están constituidos por una serie de leds con unas determinadas conexiones internas, estratégicamente ubicados de tal forma que forme un número ‘8’.

Cada uno de los segmentos que forman la pantalla están marcados con siete primeras letras del alfabeto (‘a’-‘g’), y se montan de forma que permiten activar cada segmento por separado, consiguiendo formar cualquier dígito numérico

Por ejemplo para representar el numero 15 lo conseguiremos , activando los segmentos B y C del primer dígito  y  los segmentos AF,G C y D  para el segundo dígito

 

15

 

Montaje

Ahora que entendemos como funciona un display de 7 segmentos, la idea  es realmente sencilla  pues básicamente  consiste en auto-construirnos  dicho dígito  pensando en los  7 segmentos    de los que lo compone   usando para ellos  7 leds  acoplados a un caja  con    difusores para todos los leds  ¿sencillo verdad ?

Para el montaje  necesitaremos los siguientes elementos:

  • Trozos de cartón
  • Trozos de cartulina
  • 7 LEDs difusa
  • 7 resistencias de 50 ohm
  • Cinta carrocera (usada por los pintores )
  • Pegamento
  • Soporte con Esquema del display
  • Cables
  • Arduino uno
  • Un trozo de papel contacto

Una vez que tengamos el dígito compuesto por 7 los leds lo conectaremos a 7 salidas binarias de Arduino  siguiendo el siguiente esquema de conexiones;

  • PD2  segmento a;
  • PD3 segmento b
  • PD4 segmento c
  • PD5 segmento d
  • PD6 segmento e
  • PD7 segmento f
  • PD8 segmento g

Y para facilitar la gestión del display  también dos pulsadores

  •  PP1
  • PB2

Y finalmente   en la siguiente imagen podemos ver el esquema donde se aprecian claramente las resistencias de 50ohm para los leds   y las de 10 K para los pulsadores

 

arduino

 

Según la configuración ya decidida  para gestionar el display solo necesitamos mapear  cada combinación  de segmentos asociado a cada numero que queramos representar  ,  y por medio delos pulsadores incrementamos o decrementamos una unidas representando el siguiente o el anterior digito respectivamente

Como en muchos otros casos ,es de señalar que debemos controlar los rebotes en las pulsaciones para lo cual leeremos varias veces el valor de la entrada hasta asegurarnos que el valor esta estables.

 

El código arduino es bien sencillo

 

//definiciones de segmentos con las primeras pines digitales puerto A

const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;

//Definición de pines de entrada para los pulsadores
const int botonIncremento = 9;
const int botonDecremento = 10;

//valor para controlar los antirrebotes

const int tiempoAntirebote = 10;

//Al encender parece este numero

int cuenta = 0;  
int estadoBotonIncremento;
int estadoBotonAnteriorIncremento;
int estadoBotonDecremento;
int estadoBotonAnteriorDecremento;

boolean antirebote(int pin) {
int contador = 0;
boolean estado;
boolean estadoAnterior;

do {
estado = digitalRead(pin);
if(estado != estadoAnterior) {
contador = 0;
estadoAnterior = estado;

}
else {
contador = contador + 1;
}
delay(1);
} while(contador < tiempoAntirebote);

return estado;

}

void actualizarNumero() {
switch(cuenta) {
case 0:     // digito 1
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;

case 1:// valor 2

digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3: //digito 3
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4://digito 4
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5: //digito 5
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6: //digito 6
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7: //digito 7
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 8: //digito 8
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9: //digito 9
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}

}

 

//programamos lo 7 primeros pines del puerto A como salida 

//y los dos primeros del puerto B como entrada 
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(botonIncremento, INPUT);
pinMode(botonDecremento, INPUT);
}
void loop() {
estadoBotonIncremento = digitalRead(botonIncremento);
if(estadoBotonIncremento != estadoBotonAnteriorIncremento) {
if(antirebote(botonIncremento)) {
cuenta++;
if(cuenta > 9) {
cuenta = 9;

}
}
}
estadoBotonAnteriorIncremento = estadoBotonIncremento;

estadoBotonDecremento = digitalRead(botonDecremento);

if(estadoBotonDecremento != estadoBotonAnteriorDecremento) {
if(antirebote (botonDecremento)) {
cuenta–;
if(cuenta < 0)

{
cuenta = 0;
}
}
}
estadoBotonAnteriorDecremento = estadoBotonDecremento;

actualizarNumero();
}

 

 

Y finalmente en este vídeo del canal  MFH de youtube  podemos ver el montaje en funcionamiento