El HackLabAsu crea su primer impresora 3D

Desde hace algunas semanas se viene desarrollando un taller para la creación de una impresora 3D en el HackLabAsu. ¿Qué es y para qué sirve una 3D? Es un aparato motorizado y controlado por software que permite convertir elementos diseñados en computadora, en objetos reales. Existen muchos materiales en los que se puede imprimir: plástico, metal, arena y otros. En lo que respecta a la máquina en sí misma, existen las comerciales de alto coste, así como otras de diferentes tipos, gamas y precios. Nosotros nos interesamos por una serie de máquinas basadas en los conceptos de hardware y software libres. Acorde con el desafío ético y estético de nuestro proyecto HackLabAsu, vamos a desarrollar una versión llamada prusa i3.

Las impresoras más populares en la actualidad, justamente son las que crean objetos de plástico, ya que son los modelos más fáciles de realizar y las que encuentran los usos más cotidianos, pero vale la pena notar que con este tipo de tecnología, se están construyendo casas, también se crea comida e incluso se imprime tejido humano. Como queda demostrado, las posibilidades y variedades son muchas.

En lo referente a nuestro proyecto, está basado en ideas que tienen que ver con reducir o combatir la obsolescencia y en particular la obsolescencia programada. Se busca fomentar las prácticas de reutilización y recuperación de objetos o máquinas que estaban en desuso, así como la creación de objetos novedosos que puedan mejorar algunos aspectos de nuestra vida cotidiana; por ejemplo, este destapador de botellas para aquellas personas que les cuesta usar las tapas-rosca. Otro punto central de nuestro proyecto es fomentar el uso de filamento (materia prima para la 3D) creado a partir del reciclaje de plástico de forma local y económica (ver el proyecto Precious Plastic).

Estos son los aspectos que nos motivan y nos impulsan en la creación de la impresora 3D en el HackLabAsu. Además, con este proyecto, buscamos poner en funcionamiento todo el conocimiento acumulado sobre hardware libre, software libre y los procesos de documentación y trabajo colaborativo que hemos venido manejando en todo este tiempo.

En estos momentos estamos en la mitad del proceso como puede observarse en las siguientes fotos:

Otros usos de la impresoras 3D, incluyen un mango para vasos (y otros miles de objetos disponibles para descargar e imprimir), incorporación de objetos en indumentaria, prótesis (interesante proyecto nacional, Po Paraguay) e incluso se pueden imprimir las piezas para construir otras impresoras 3D.

Esperamos que este proyecto sea de gran interés y mucha gente se sume a la iniciativa.

Valores Fundamentales

La ética hacker es una ética de tipo axiológico, es decir una ética basada en una serie de valores, Himanen rescata algunas; Pasión-Libertad-Conciencia Social-Verdad-Libre acceso a la información(conocimiento libre)-Curiosidad-Creatividad.

Otro aspecto que resalta a esta ética, es una frase muy sonada y maravillosa “ningún problema debería resolverse 2 veces”, aludiendo, a que el tiempo de los demás es muy valioso y cuando resuelvas algo  COMUNICALO a todos tus compañeros hackers para que puedan resolver otros problemas , aumentando así la Productividad.

 

Cómo conectar una RaspberryPi y Arduino por RF

En este tutorial vamos a ver como utilizar el módulo de bajo costo/consumo NRF24L01 para comunicar una RaspberryPI (RPi) con una Arduino.

Del lado de la Arduino se utiliza el entorno de programación de la Arduino (simil C#), y del lado de la RPi tenemos la opción de utilizar librerías para C++ o Python.

Vamos a asumir cierto conocimiento sobre el entorno de programación de Arduino y algo de Linux ya que configuraremos el módulo RF en la RPi a través de la consola. También, el programa que correrá en la RPi está escrito en Python, por lo que si queremos modificarlo tendremos que aprender un poquito sobre el lenguaje.  Estaremos utilizando las librerías RF24, que ya incluyen versiones para ambos dispositivos. Por lo tanto necesitarás clonar el proyecto, o bien bajarte el empaquetado del enlace anterior.

Lado Arduino

Primero vamos a ver como configurar el Arduino. El diagrama de conexiones se puede ver mas abajo, aunque puede servir saber que tendremos libertad de reemplazar los pines 9 y 10 por dos pines cualquiera.

Antes que nada, es necesario instalar la librería. No estoy seguro si el suite de Arduino ya contiene las librerías RF24, pero de no ser así necesitarás copiar la carpeta RF24 a la carpeta de Arduino (la ubicación de esta carpeta depende de tu sistema operativo. Puedes ver como instalar librerías automáticamente aquí ).

Ahora podemos conectar el módulo nRF24l01 como lo indica el diagrama:

PIN NRF24L01 Arduino UNO
1 GND GND
2 VCC 3.3V
3 CE digIO 9
4 CSN digIO 10
5 SCK digIO 13
6 MOSI digIO 11
7 MISO digIO 12
8 IRQ

Una vez hecho eso, vamos a grabar el programa de ejemplo “GettingStarted” en la memoria de la Arduino, cambiando los números (7,8) en la línea 16 del código a los pines que se eligieron para conectar los pines CE y CSN respectivamente (9 y 10 en el diagrama que mostramos aquí). Este ejemplo empieza escuchando la radio en espera de un mensaje que llegue. Si se ingresa la letra ‘T’ a través de la consola serial, entra en modo transmición, enviando una sucesión de números y presentando en pantalla el resultado del envío.

Una vez cargado el programa podemos abrir una consola serial (a 57600 baud) y veremos unas lineas de inicialización del modulo, y a continuación se quedará esperando una señal. Si mandamos la letra “T” a través de la consola estaremos seteando la arduino en modo transmición, y deberíamos ver como falla en obtener una respuesta una y otra vez (por supuesto, falta programar la RPi).

Lado Raspberry Pi

Antes que nada, para poder utilizar los puertos GPIO de la Raspberry será necesario activarlos utilizando el comando

raspi-config

desde una consola y eligiendo la opción correspondiente. Les pedirá que reinicien, momento en el cual pueden aprovechar para conectar el módulo a la Raspberry como se muestra en el diagrama (ojo, verificar que se trata de una Raspberry Pi modelo B rev 2, o alguna que tenga el puerto P1. Principalmente tienen que tener mucho cuidado de no conectar el positivo al negativo y viceversa ya que esto quemaría el módulo al instante. Si pueden, les recomiendo colocar un diodo en el pin GND sólo por seguridad).

PIN NRF24L01 RPI Conector
RPi -P1
1 GND rpi-gnd (6)
2 VCC rpi-3v3 (1)
3 CE rpi-gpio22 (22)*
4 CSN rpi-gpio8 (24)*
5 SCK rpi-sckl (23)
6 MOSI rpi-mosi (19)
7 MISO rpi-miso (21)
8 IRQ

* estos pines deben ser especificados al iniciar la radio en el programa, por lo que es bueno tenerlos anotados.

Una vez prendida la RPi nuevamente, ingresan estos comandos desde una consola para instalar las librerías:

cd ~
git clone https://github.com/tmrh20/RF24.git RF24 
cd RF24 
sudo make install 
cd examples_RPi 

Ahora es necesario cambiar los pines que aparecen en el código de ejemplo, ya que no usan los mismos que mostramos aquí. Para eso pueden abrir el archivo de ejemplos gettingstarted.cpp y cambiar la línea 45 a:

RF24 radio(RPI_V2_GPIO_P1_22, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);

Luego podemos compilar y correr el script

make
sudo ./gettingstarted 

Si la Arduino sigue conectada y en modo transmisión (y el espíritu de la máquina está satisfecho), deberán ver unos números que indican que la comunicación fue exitosa. Se puede cambiar el modo en los dos programas para comprobar que se tiene comunicación en las dos direcciones.

Si quieren probar los demás scripts de ejemplo, necesitan encontrar y cambiar la definición de pines en la línea de código que inicia la radio.

Eso es todo. Más adelante veremos qué utilidades puede tener este tipo de comunicaciones.

Fuentes:

Extras:

Acá les dejo unas placas que diseñe en Eagle por si les interesa aplicar el tutorial anterior. 

NRF24L01 – PLACAS