17 KiB
Desarrollo hardware
Arduino IDE
Bajamos los paquetes de la página web, descomprimimimos en ~/apps/arduino.
La distribución del IDE incluye ahora un fichero install.sh
que se
encarga de hacer la integración del IDE en los menús de Linux.
Además también incluye un script (arduino-linux-setup.sh
) para crear
las devrules y que además desinstala el driver modemmanager y crea
grupos nuevos en el sistema si no existen.
No tengo claro lo de desinstalar el driver así que comentamos la
sección que borra el modemmanager del fichero
arduino-linux-setup.sh
y lo ejecutamos para que instale el resto.
Yo añado el fichero 99-arduino.rules que se encarga de inhibir el modemmanager para que no capture al CircuitPlayground Express:
# for arduino brand, stop ModemManager grabbing port
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
# for sparkfun brand, stop ModemManager grabbing port
ATTRS{idVendor}=="1b4f", ENV{ID_MM_DEVICE_IGNORE}="1"
Después de añadir ficheros de reglas podemos recargar las reglas ejecutando:
udevadm control --reload-rules && udevadm trigger
Tenemos que crear los ficheros .desktop
.
Arduino IDE 2
Descargamos el fichero appmimage de la página de Arduino y creamos el fichero .desktop
.
Añadir soporte para Feather M0
Arrancamos el IDE Arduino y en la opción de Preferences::Aditional Board Managers URLs añadimos la dirección https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
, si tenemos otras URL, simplemente añadimos esta separada por una coma.
Ahora desde el Board Manager instalamos:
- Arduino SAMD Boards
- Adafruit SAMD Boards
Añadir soporte para Circuit Playground Express
Bastaría con instalar Arduino SAMD Boards
Añadir soporte para STM32
Tenemos varias URL posibles para configurar en las preferencias del IDE Arduino:
- https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json (esta deber ser la oficial)
Pero la oficial no da soporte para usar el st-link, necesitamos añadir alguna más.
- http://dan.drown.org/stm32duino/package_STM32duino_index.json (recomendada por Tutoelectro, nos da soporte para el st-link)
NOTA: Hasta donde yo se la de arriba es la única URL que permite usar el st-link
He optado por añadir los dos ficheros json al IDE, la oficial tiene buena pinta pero parece que no soporta st-link. Con la otra podremos usarlo sin problemas.
Instalamos la biblioteca stm32 cores
que corresponde al origen de software oficial y la biblioteca STM32F1xx/GD32F1xx
, esta última es
la que nos dará soporte explícito para el st-link
Lo probamos con el Blink y funciona perfectamente con las opciones de la Figura 1
Añadir soporte para ESP32 y ESP8266
Añadimos las URL:
- https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json (soporte para ESP32)
- http://arduino.esp8266.com/stable/package_esp8266com_index.json (soporte para ESP8266)
Añadimos la librería:
- ESP32 (de espressif)
Añadir biblioteca de soporte para Makeblock
Nota: Pendiente de instalar
Clonamos el repo oficial en github.
Una vez que descarguemos las librerias es necesario copiar el directorio Makeblock-Libraries/makeblock
en nuestro directorio de bibliotecas de Arduino. En mi caso ~/Arduino/libraries/
.
Una vez instaladas las bibliotecas es necesario reiniciar el IDE Arduino si estaba arrancado. Podemos ver si se ha instalado correctamente simplemente echando un ojo al menú de ejemplos en el IDE, tendríamos que ver los ejemplos de Makeblock.
Un detalle importante para programar el Auriga-Me es necesario seleccionar el micro Arduino Mega 2560 en el IDE Arduino.
Pinguino IDE
Nota: Pendiente de instalar
Tenemos el paquete de instalación disponible en su página web
Ejecutamos el programa de instalación. El programa descargará los paquetes Debian necesarios para dejar el IDE y los compiladores instalados.
Al acabar la instalación he tenido que crear el directorio ~/Pinguino/v11, parece que hay algún problema con el programa de instalación y no lo crea automáticamente.
El programa queda correctamente instalado en /opt y arranca correctamente, habrá que probarlo con los micros.
stm32 cubeide
Nos bajamos el instalador genérico. Tendremos que:
- aceptar un montón de acuerdos de licencias
- indicarle un directorio de instalación (en mi caso
~/apps/st/st/stm32cubeide_1.4.0
) - darle la password de root para instalar ficheros de udev, concretamente:
udev/rules.d/49-stlinkv1.rules
udev/rules.d/49-stlinkv2-1.rules
udev/rules.d/49-stlinkv2.rules
udev/rules.d/49-stlinkv3.rules
udev/rules.d/99-jlink.rules
esp-idf
MUY IMPORTANTE es más fácil instalar el esp-idf a través de Platformio pero dejo las instrucciones de instalación que usé en su dia como referencia.
Instalamos las dependencias (cmake ya lo tenemos instalado)
NOTA: No es necesario instalar los paquetes de python que nos especifican en las instrucciones de instalación del esp-idf, se instalarán automáticamente en el siguiente paso.
sudo apt-get install gperf cmake ninja-build ccache libffi-dev libssl-dev
Ahora creamos un directorio para nuestro tool-chain:
mkdir ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf
También es necesario que nuestro usuario pertenezca al grupo
dialout
, pero eso ya deberíamos tenerlo hecho de antes.
Una vez clonado el repo ejecutamos el script de instalación
cd ~/esp/esp-idf
./install.sh
Este script nos va a dejar instaladas todas las herramientas
necesarias en el directorio ~/.expressif
Nota: para que funcione correctamente en Linux Mint es necesario
que el script tools/idf_tools.py
apunte al python3 de nuestro
sistema. Basta con editar la primera linea shebang del script.
Estas son las bibliotecas que deja instaladas:
Installing ESP-IDF tools
Installing tools: xtensa-esp32-elf, xtensa-esp32s2-elf, esp32ulp-elf, esp32s2ulp-elf, openocd-esp32
Para empezar a trabajar bastará con hacer un source del fichero ~/apps/esp/esp-idf/export.sh
:
. ~/apps/esp/esp-idf/export.sh
KiCAD
En la página web del proyecto nos recomiendan el ppa a usar para instalar la última versión estable:
sudo add-apt-repository --yes ppa:kicad/kicad-5.1-releases
sudo apt-get update
sudo apt install kicad
Paciencia, el paquete kicad-packages3d
tarda un buen rato en descargarse.
Algunas librerías alternativas:
- Freetronics una libreria que no solo incluye Shield para Arduino sino una completa colección de componentes que nos permitirá hacer proyectos completos. Freetronics es una especie de BricoGeek australiano, publica tutoriales, vende componentes, y al parecer mantiene una biblioteca para KiCAD. La biblioteca de Freetronics se mantiene en un repo de github. Lo suyo es incorporarla a cada proyecto, por que si la actualizas se pueden romper los proyectos que estes haciendo.
- eklablog Esta biblioteca de componentes está incluida en el github de KiCAD, así que teoricamente no habría que instalarla en nuestro disco duro.
Actualizar a KiCAD 6.0
Hacemos un sudo apt purge
de todos los paquetes del antiguo KiCAD. Desactivamos el antiguo repo y ejecutamos:
sudo add-apt-repository --yes ppa:kicad/kicad-6.0-releases
sudo apt update
sudo apt install --install-recommends kicad
# If you want demo projects
# sudo apt install kicad-demos
No hay demos
de momento en el nuevo KiCAD 6.0
Actualizar a KiCAD 7
sudo add-apt-repository --yes ppa:kicad/kicad-7.0-releases
sudo apt update
sudo apt install --install-recommends kicad
Wireviz
Una herramienta para documentar cableados de proyectos. Es una aplicación Python que usa Graphviz, lo he instalado con pipx
.
pyenv global ve_sys
pipx install wireviz
pyenv global system
Analizador lógico
Mi analizador es un OpenBench de Seedstudio, aquí hay mas info
Sigrok
Instalamos Sigrok, simplemente desde los repos de Debian:
sudo aptitude install sigrok
Al instalar Sigrok instalamos también Pulseview.
Si al conectar el analizador, echamos un ojo al fichero syslog vemos que al conectarlo se mapea en un puerto tty.
Si arrancamos Pulseview (nuestro usuario tiene que estar incluido en el grupo dialout), en la opción File::Connect to device, escogemos la opción Openbench y le pasamos el puerto. Al pulsar la opción Scan for devices reconoce el analizador correctamente como un Sump Logic Analyzer.
Sump logic analyzer
Este es el software recomendado para usar con el analizador.
Descargamos el paquete de la página del proyecto, o más concretamente de esta página y descomprimimos en ~/apps.
Instalamos las dependencias:
sudo apt install librxtx-java
Editamos el fichero ~/apps/Logic Analyzer/client/run.sh y lo dejamos así:
#!/bin/bash
# java -jar analyzer.jar $*
java -cp /usr/share/java/RXTXcomm.jar:analyzer.jar org.sump.analyzer.Loader
Y ya funciona.
OLS
Nota: Pendiente de instalar
IceStudio
Instalamos dependencias con sudo apt install xclip
Bajamos el AppImage desde el github de
IceStudio y lo dejamos en
~/apps/icestudio
PlatformIO
VS Code
Añadimos el origen de software:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
E instalamos
sudo apt update
sudo apt install code # alternativamente code-insiders (es como la versión beta, se pueden instalar los dos)
Ahora
- lanzamos el editor
- abrimos el gestor de extensiones
- buscamos el platformio ide
- instalamos
Seguimos las instrucciones de aqui
Incluir platform.io CLI en el PATH
Esto es una malísima idea, NO LO HAGAS
Las instrucciones indican que hagamos lo siguiente para usar Platformio desde linea de comandos pero no es conveniente hacerlo.
Modificamos el fichero ~/.profile
añadiendo las siguientes lineas:
if [ -d "$HOME/.platformio/penv/bin"] ; then
PATH="$PATH:$HOME/.platformio/penv/bin"
fi
Si quieres usar Platformio desde linea de comandos, es mejor activar
manualmente el entorno virtual con source ~/.platformio/penv/bin/activate
vscodium
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/vscodium.gpg
echo 'deb https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/ vscodium main' | sudo tee --append /etc/apt/sources.list.d/vscodium.list
sudo apt update && sudo apt install codium
RepRap
OpenScad
El OpenSCAD está disponible en los orígenes de software, así que sudo apt install openscad
.
Slic3r
Descargamos la estable desde la página web y como de costumbre descomprimimos en ~/apps
y creamos un lanzador con MenuLibre
Slic3r Prusa Edition
Una nueva versión del clásico Slic3r con muchas mejoras. Descargamos
la appimage desde la página
web y ya sabeis,
descomprimir en ~/apps
y dar permisos de ejecución.
ideaMaker
Una aplicación más para generar gcode con muy buena pinta, tenemos el paquete deb disponible en su página web. Instalamos con el gestor de software.
Ultimaker Cura
Descargamos el AppImage desde la página web
Pronterface
Seguimos las instrucciones para Ubuntu Focal:
Instalamos las dependencias: sudo apt install libsdl2-dev
Clonamos el repo:
cd ~/apps
git clone https://github.com/kliment/Printrun.git
cd Printrun
mkvirtualenv -p /usr/bin/python3 printrun
python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.1.0-cp38-cp38-linux_x86_64.whl
pip install -r requirements.txt
# sudo apt-get install libdbus-glib-1-dev libdbus-1-dev
Y ya lo tenemos todo listo para ejecutar.
Cortadora de vinilos
Inkcut
Instalado en un entorno virtual:
mkvirtualenv -p `which python3` inkcut
sudo apt install libxml2-dev libxslt-dev libcups2-dev
pip install PyQt5
pip install inkcut
Plugin para inkscape
Instalamos dependencias:
pip install python-usb
Instalamos el fichero .deb
desde la web
https://github.com/fablabnbg/inkscape-silhouette/releases
Drone
qgroundcontrol
Descargamos el appimage
missionplanner
Para usar Mission Planner en Linux Mint se recomienda instalar los paquetes:
sudo apt install mono-complete festival
Descargamos el MissionPlanner desde aquí
Una vez descomprimido el zip
ejecutamos: mono MissionPlanner.exe
node-red
Para instalar node-red en linux necesitamos instalar primero
node.js
. Hay varias formas de instalar node.js
, yo voy a optar por
instalar nvm
que es el node version manager.
Para ello ejecutamos el siguiente comando (la versión actual de nvm
es la 0.37.0)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash
El script de instalación añade las siguientes lineas al fichero
~/.bashrc
, nosotros las movemos al fichero ~/.profile
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Para comprobar la instalación usamos command -v nvm
que nos
devolverá nvm
. which
no funciona en este caso por que es un script
para aplicarle source
Instalación de node.js
Ahora que tenemos nvm
instalado, ya podemos instalar fácilmente la versión o versiones que queramos de node.js
nvm ls-remote # para listar las versiones disponibles
nvm install node # instala la última versión disponible
Instalación de mosquitto
mosquitto
es un mqtt broker muy sencillo y completo, aunque no es
capaz de aguantar cargas grandes, para aprender es perfecto.
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt install mosquitto mosquitto-clients
Con esto queda el servicio instalado y funcionando (scs mosquitto
o
systemctl status mosquitto
)
Si queremos el servicio parado para arrancarlo nosotros manualmente:
scsp mosquitto.service
scd mosquitto.service
Y sin alias sería:
sudo systemctl stop mosquitto.service
sudo systemctl disable mosquitto.service
Para arrancarlo cuando lo necesitemos le damos un start con scst mosquitto.service
o sudo systemctl start mosquitto.service
Instalación de Influxdb
Seguimos el método para ubuntu:
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
#source /etc/lsb-release
DISTRIB_ID=ubuntu
DISTRIB_CODENAME=focal
echo "deb https://repos.influxdata.com/${DISTRIB_ID} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
apt update
apt install influxdb
apt install telegraf
Instalación de node-red
Una vez instalado el node.js
instalar el node-red
es muy fácil
nvm use node
npm install -g --unsafe-perm node-red