Cómo utilizar Docker para hacer compilación cruzada con Raspberry Pi


Un compilador cruzado es un sw de compilación capaz de crear código ejecutable para una plataforma distinta a la que está ejecutando el propio compilador como por ejemplo usar  un compilador que se ejecuta en un PC con Windows 10 pero que  genera código que se ejecuta en nuestra Raspberry Pi es un compilador cruzado.

Un compilador cruzado es necesario compilar para múltiples plataformas de una máquina. Una plataforma podría ser inviable para que un compilador funcione, tal como para el microcontrolador de un sistema embebido porque esos sistemas no contienen ningún sistema operativo. En la paravirtualización, una máquina ejecuta muchos sistemas operativos y un compilador cruzado podría generar un ejecutable para cada uno de ellos desde una fuente principal.

Los compiladores cruzados no deben confundirse con los compiladores fuente-fuente . Un compilador cruzado es para el desarrollo de software multiplataforma de código binario, mientras que un compilador de fuente a fuente se traduce de un lenguaje de programación a otro en código de texto. Ambos son herramientas de programación .

Solía ​​ser tedioso configurar un entorno de compilación cruzada. Seguro que se puede compilar en el Pi de la frambuesa en sí, pero a veces quiere utilizar su computadora grande – y se puede utilizar cuando su Pi no está a la mano como cuando en un avión con un ordenador portátil. Puede ser complicado configurar un compilador cruzado para cualquier herramienta de compilación, pero si pasa por un simple paso, se convierte en súper fácil, independientemente de lo que su computadora real se parece. Ese paso es instalar Docker.

Docker está disponible para Linux, Windows y Mac OS. Permite a los desarrolladores crear imágenes que son esencialmente entornos Linux preconfigurados que ejecutan algún servicio. Al igual que una máquina virtual, estas imágenes pueden funcionar juntas sin interferir entre sí. A diferencia de una máquina virtual, los contenedores Docker (el software en ejecución) son ligeros porque comparten el mismo kernel y hardware subyacentes de la computadora.

La realidad es, la creación de la Frambuesa Pi construir el medio ambiente no es más fácil. Es sólo que con Docker, alguien más ya ha hecho el trabajo para usted y usted puede tomar automáticamente su configuración y mantenerlo actualizado. Si ya está ejecutando Linux, su gestor de paquetes probablemente hace que el proceso sea muy fácil también (ver el post de Rud Merriam en ese proceso ). Sin embargo, lo bueno de las imágenes es que es un entorno aislado completo que puede moverse de máquina a máquina y de plataforma a plataforma (las plataformas Windows y Mac utilizan una variedad de técnicas para ejecutar el software de Linux, pero se hace de forma transparente) .

2024 04 06 16 44 58 Raspberry Pi 4 ya a la venta en España   Buscar con Google y 6 páginas más   Per

INSTALACIÓN DE DOCKER

Si no está utilizando Linux, tendrá que averiguar cómo instalar Docker. Hay varias maneras de hacerlo bajo Windows (dependiendo de qué versión de Windows usa)  Sin embargo, en Linux, debe ser capaz de instalar lo que necesita a través de su gestor de paquetes.

En Ubuntu y otras distribuciones similares, puede esperar instalar el paquete Docker. Tiene sentido, pero no. Ese paquete es un gestor de iconos de la bandeja del sistema. Lo que quiere es docker.io:

sudo apt-get install docker.io

Verá algunos paquetes sugeridos, y puedes considerar añadir la opción -install-suggest a apt-get si quiere.

Docker se compone de dos partes: un daemon (un servidor que se ejecuta en segundo plano) y un cliente llamado docker. Hay una variedad de herramientas GUI para gestionar Docker si no te gusta la línea de comandos. Me gusta, así que eso es todo lo que sé sobre eso.

COMPILACIÓN CRUZADA

Docker mantiene un repositorio de imágenes en su sitio web llamado el Hub . De forma predeterminada, si no tiene una imagen local, el cliente buscará allí. En este caso en particular, la imagen que desea es sdthirlwall / frambuesa-pi-cross-compilador: legacy-trusty. Eso es un bocado, y el revelador proporciona una escritura agradable para llamarla bajo circunstancias normales. ¿Cómo se obtiene el guión? Usted utiliza Docker, por supuesto.

Por cierto, por defecto, necesitas ejecutar el cliente de Docker como root, aunque también puedes crear un grupo especial (aunque usar sudo funciona igual de bien). Aquí está el comando para ejecutar para obtener la secuencia de comandos rpxc:

sudo docker ejecutar sdthirlwall / raspberry-pi-cross-compilador: legacy-trusty> rpxc
Dado que probablemente no tenga esa imagen en su disco duro, el cliente tardará un tiempo en descargarla y completar la tarea. La próxima vez no tomará tanto tiempo porque Docker tendrá una copia local.

Puede configurar el comando rpxc para ejecutar con este comando:

Chmod + x rpxc

Luego muévalo a algún lugar de tu camino (o haz referencia a él por el camino completo como ./rpxc o ~ / Downloads / rpxc, si lo prefieres). Aunque puede descargar toda la imagen desde el Hub, si desea ver los archivos, contribuir o seguir el desarrollo, debería echar un vistazo al reporte de GitHub para el proyecto.

EN USO

El script rpxc generalmente ejecuta cualquier comando que desee en el nuevo entorno. Dado que ejecuta Docker, necesita ser root o en el grupo Docker, por supuesto. Todas las herramientas habituales de construcción están prefijadas con rpxc, así que:

rpxc rpxc-gcc -o hello-world hello-world.c

O, si tiene un Makefile:

rpxc make

El directorio actual en el que se encuentra al ejecutar rpxc, se convierte en el directorio / build en el nuevo entorno y es el directorio de trabajo actual por defecto.

Si usted es perezoso, usted puede ser que prefiera apenas funcionar:

rpxc bash

Entonces puedes emitir comandos y hacer lo que quieras. Haga una ls en / usr / local / bin / rpxc * para ver todas las herramientas disponibles. También puede utilizar el script rpxc para actualizar la imagen y sí mismo. Utilice el comando update para hacer ambos, o puede especificar update-image o update-script.

UNIÓN CÓSMICA

Hay otras imágenes que puede ser interesantes. Tienes que conseguir una cuenta gratuita en el Hub, y una vez que lo hagas, podrías pensar que hay un número muy pequeño de imágenes. Sin embargo, intente hacer una búsqueda de frambuesa, por ejemplo. O Arduino, que muestra una gran cantidad de entornos Arduino preconfigurados. También puede disfrutar de la búsqueda de ESP8266. Incluso hay una imagen Docker para el software de diseño Eagle PCB .

Fuente hackaday.com

Controle su impresora 3d con su Rasbperry Pi


Si cuenta con una impresora 3D   y  aun no conoce OctoPrint puede  que se sorprenda lo que puede hacer este software gratuito, pues permite controlar su impresora USB conectada por USB a una Raspebrry PI  a  la red .

Como vamos a ver  una vez instalado el sw en su Raspberry Pi desde su interfaz web  se puede controlar la impresora  desde cualquier dispositivo conectado a al  misma red como smartpthone, tableta  y por supuesto un ordenador.

Algunas de las funciones más interesantes de este sw son la visualizar el estado de impresion a traves de  una web cam usb conectada  a la Raspberry pi o por ejemplo subir los archivos STL  por red  hacia la impresora.

printer3d

Control remoto completo y monitoreo

OctoPrint es un software open source, desarrollado por Gina Häußge y patrocinado por bq, que nos permite controlar toda la impresora 3D desde cualquier parte del mundo desde un ordenador, teléfono o tablet. Gracias a este software podemos precalentar el extrusor y la base caliente, lanzar una impresión, detenerla, ver la posición actual, configurar parámetros de la impresora, ver la evolución mediante video en tiempo real, crear timelapses de cada impresión, vamos todo, otra increíble maravilla del mundo open-source.

Puede controle y supervisar cada aspecto de su impresora 3D y sus trabajos de impresión directamente desde su navegador:

  • Accediendo a la  la cámara web incorporada y mirando de forma remota cómo su impresora está creando lo más nuevo.
  • Obteniendo comentarios constantes sobre el progreso actual de su trabajo de impresión .
  • Echando un vistazo al visualizador GCODE integrado para ver una representación del GCODE que está imprimiendo actualmente.
  • Vigilando las temperaturas del hotends y cama de impresión y adaptándolas sobre la marcha.
  • Moviendo el cabezal de impresión a lo largo de todos los ejes , extrudiendo, retrayendo o simplemente definiendo sus propios controles personalizados .
  • Comience, pare o simplemente pause su trabajo de impresión actual , usted tiene el control total en cualquier momento.

Compatible y extensible

De fábrica, OctoPrint es compatible con la mayoría de las impresoras 3D de consumo disponibles . Y su potente sistema de complementos permite ampliar su funcionalidad de varias maneras. Para nombrar unos pocos:

  • Haciendo que OctoPrint le envíe notificaciones automáticas sobre el progreso del trabajo mediante Pushbullet o Pushover .
  • Reemplazando completamente la interfaz de usuario de OctoPrint en dispositivos móviles a través de TouchUI .
  • Integrando OctoPrint en su herramienta de mensajería de preferencia, como Telegram o Slack .
  • Recopilando estadísticas de su impresora e imprima trabajos a través del Historial de impresión o el plugin Estadísticas de la impresora .
  • Agregando soporte para impresoras específicas como impresoras Flashforge o Makerbots anteriores o la impresora Micro 3D .

El repositorio de plugins oficial de OctoPrint está integrado en OctoPrint y la instalación de un complemento está a solo un clic de distancia. ¡Y comenzar con el desarrollo de complementos es fácil!

100% de código abierto

OctoPrint es un software gratuito y de código abierto publicado bajo la licencia pública general Affero de GNU (AGPL).

Todo su código fuente está disponible en su repositorio Github y todos pueden modificarlo para sus propias necesidades.

¡Y aún más!

  • ¡Creando increíbles grabaciones de timelapse de tus impresiones!
  • Cortando sus archivos STL directamente dentro de OctoPrint.
  • Controlando quién puede controlar su impresora con los controles de acceso integrados.
  • Agregando comandos del sistema al menú para apagar fácilmente o reinicie su servidor OctoPrint o incluso su impresora.
  • Configurando los ganchos de evento para reaccionar a ciertos eventos dentro de OctoPrint llamando a comandos externos o enviando GCODE personalizado a su impresora.
  • y mucho más…

Instalación desde la fuente

Las instrucciones genéricas de configuración se reducen a

  1. Instalar Python 2.7 incluyendo pip y virtualenv .
  2. Obteniendo la fuente a través de cualquiera de:
    1. clonando el repositorio fuente : git clone https://github.com/foosel/OctoPrint.git
    2. descargando un archivo de la versión estable actual de Github y desempaqueándolo
  3. Crear un entorno virtual (propiedad del usuario) en la carpeta fuente: virtualenv venv
  4. Instalando OctoPrint en ese entorno virtual : ./venv/bin/python setup.py install
  5. Es posible que OctoPrint se inicie a través de ./venv/bin/octoprint o con una ruta /path/to/OctoPrint/venv/bin/octoprint acceso absoluta /path/to/OctoPrint/venv/bin/octoprint

Las instrucciones de configuración más específicas para los entornos de tiempo de ejecución más comunes se pueden encontrar a continuación.

Comenzando con OctoPi

Por favor, sigue estos pasos después de descargar

  1. Vaya al sitio  y descargue el software https://octoprint.org/download/
  2. Descomprima la imagen e instala el archivo .img contenido en una tarjeta SD como cualquier otra imagen Raspberry Pi .
  3. Configure su conexión WiFi editando octopi-network.txt en la raíz de la tarjeta flasheada cuando la utiliza como una memoria USB.
  4. Arranque el Pi de la tarjeta.
  5. Inicie sesión en su Pi vía SSH (está ubicado en octopi.local si su computadora admite Bonjour o la dirección IP asignada por su enrutador), el nombre de usuario predeterminado es «pi», la contraseña predeterminada es «frambuesa». Cambia la contraseña usando el comando passwd . No necesita expandir el sistema de archivos, las versiones actuales de OctoPi lo hacen automáticamente.
  6. Acceda a OctoPrint a través de http://octopi.local o http://<your pi's ip address> . https también está disponible, con un certificado autofirmado.

Consulte también el archivo README de OctoPi , especialmente la sección «Cómo usarlo» .

Conectar con OctoPrint desde el ordenador

Pasados un minuto o dos, tiempo para que le de tiempo a la Raspberry a arrancar el sistema operativo, podemos conectarnos a OctoPrint de la siguiente manera:

  1. Desde el navegador de tu ordenador accede a la dirección: http://octopi.local
  2. Si es la primera vez que ejecutamos OctoPrint debemos añadir una cuenta de usuario para poder controlar la impresora.
  3. Entramos con nuestro usuario y contraseña
  4. Tras entrar con nuestro usuario y contraseña podemos usar OctoPrint. En la pantalla principal nos muestra:
  • El estado de conexión con la impresora 3D.
  • El estado de la impresión en curso.
  • Los ficheros de la tarjeta SD
  • La evolución y control de la temperatura del Hot-end y base caliente.

Controlar la impresora 3D desde OctoPrint

Ya tenemos acceso a OctoPrint desde nuestro navegador, ahora debemos hacer que OctoPrint controle nuestra impresora 3D, para ello nos conectamos a la impresora en el botón Connect dejando todo en AUTO, además podemos hacer que guarde esta configuración y que se conecte automáticamente al iniciar OctoPrint

Ahora ya podemos enviar nuestro primer archivo para imprimir, esto lo podemos hacer subiendo directamente el archivo .gcode a la tarjeta SD, o desde Slic3r. Una vez subido, seleccionamos el archivo, y pulsamos Print, y listo, ya podemos esperar a que nuestra impresora termine y ver la evolución desde el panel Control.