Ya sabes que la comunidad Arduino es muy grande y crece día a día. Durante su existencia, dio origen a una gran cantidad de bibliotecas. Decidí hacer una lista de las más inusuales, interesantes y útiles, los enlaces conducen a github o al sitio del desarrollador. ¡No hay un conjunto completo de bibliotecas especializadas para trabajar con módulos y sensores! Se buscan en Google por el nombre del chip, aquí solo dejé los universales. ¡ No es necesario descargar las bibliotecas marcadas como estándar!
La lista está compilada con bibliotecas útiles para UNO, NANO, MEGA, es decir, no hay bibliotecas potentes para placas similares DUE y ZERO. Fuentes:
- https://www.arduino.cc/en/reference/libraries
- https://github.com/Lembed/Awesome-arduino/blob/master/README.md
- https://www.arduinolibraries.info/architectures/avr
Librerías Avr. avr-libs.
El compilador de Arduino IDE incluye un conjunto de bibliotecas estándar para microcontroladores AVR (la llamada cadena de herramientas, un conjunto de herramientas), simplemente puede incluirlas y usar sus capacidades. Puede encontrar una lista completa y documentación para todas las bibliotecas aquí. Aquí enumeraré los más útiles e interesantes (el nombre será un enlace a la documentación):
- math.h es una biblioteca con un montón de funciones matemáticas. Incluida por defecto.
- time.h es una biblioteca para trabajar con el tiempo. Cuenta, conversión, zonas horarias y más.
- avr / eeprom.h : biblioteca nativa para trabajar con EEPROM.
- avr / power.h – biblioteca de control de consumo del Mc: divisor de frecuencia del sistema y encendido / apagado de periféricos.
- avr / sleep.h : biblioteca para administrar el modo de consumo de energía del Mc.
- avr / wdt.h – control del temporizador de vigilancia Watdog.
- util / delay.h : biblioteca con retrasos basados en el reloj de la CPU (funciona sin el temporizador 0).
Tiempo, temporizadores.
- Time es un contador de tiempo para Arduino, cuenta horas-minutos-meses y todo eso. Descripción.
- RTCTimer temporizador para trabajar en conjunto con el módulo RTC.
- Chrono es otra biblioteca de «temporizador con millis ()» para construir eficientemente la lógica de su código.
- elapsedMillis es otro temporizador simple con millis ().
- buildTime – biblioteca para obtener la fecha y hora de compilación explícitamente.
- TimeLord es una biblioteca que te permite conocer las horas de salida / puesta del sol del Sol y la Luna, fases lunares, hora sidérea, etc. basado en la ubicación geográfica.
- GP_Timers es una biblioteca para administrar interrupciones para todos los temporizadores en ATmega328 y ATmega2560 con la capacidad de configurar los canales por separado.
- TimerOne es una biblioteca para el control manual efectivo del temporizador 1 (interrupciones, PWM, etc.)
- MsTimer2 es una biblioteca para el control manual conveniente del Timer 2. Existe una versión de FlexiTimer2 que de alguna manera es mejor.
- TimerThree : una biblioteca para un cómodo control manual del Timer 3.
Comunicación, interfaces.
- DLBus – Comunicación GBUS. Comunicación bidireccional de la red Arduino a través de un cable.
- Firmata es una biblioteca estándar para comunicarse con una computadora usando el protocolo Firmata.
- SoftwareSerial es una biblioteca estándar para crear puerto TTL Serial en dos pines cualesquiera, le permite crear un puerto adicional para la comunicación con Bluetooth / GPS / GSM y otros módulos con comunicación serial.
- AltSoftSerial : la mejor versión del software Serial, utiliza un temporizador del sistema.
- SerialCommand : una biblioteca ligera para comunicarse a través de un puerto mediante comandos.
- CmdMessenger es una poderosa biblioteca para comunicarse a través del puerto serial, con su propio analizador y un montón de gags. Descripción.
- EasyTransfer : una biblioteca para comunicar dos Arduino a través de un puerto serie.
- Streaming : salida de estilo C ++ a un puerto utilizando el operador <<.
- OneWire es una biblioteca para comunicación con un cable, por ejemplo, con sensores de temperatura DHT18b20. Arduino puede ser un «esclavo» para la comunicación, lea aquí.
- SerialControl es un conjunto de ejemplos para administrar estados de pines usando comandos seriales. Descripción.
- MiniPirate – una versión más poderosa de SerialControl, le permite convertir el servo usando comandos al puerto, escanear i2c y mucho más.
- MIDI_library : una biblioteca para trabajar con dispositivos musicales a través del protocolo MIDI (a través de Serial, cualquier Arduino es adecuado).
- MIDI : biblioteca MIDI del gran Paul Stoffregen (a través de serie, cualquier Arduino servirá).
- arcore – otra biblioteca para MIDI (USB-MIDI, Leonardo / Micro solamente).
- MIDIUSB : otra biblioteca para MIDI (solo USB-MIDI, Leonardo / Micro).
- HIDUINO : un conjunto de herramientas para crear un dispositivo MIDI USB.
- HID es una biblioteca muy poderosa para crear dispositivos HID (mouse, teclados, gamepads y otros controladores USB).
- ArduinoJoystickLibrary – otra biblioteca para crear un gamepad HID completo en Leonardo / Micro.(ATmega32U4)
- CPPM : una biblioteca para organizar la comunicación utilizando el protocolo CPPM (por ejemplo, el receptor RC Orange R615X).
- PPMEncoder – decodificación y generación de señales PPM para modelos RC.
- PWMread – artículo + biblioteca para leer la señal PWM de los receptores RC.
- TVout es una biblioteca para mostrar gráficos en una pantalla de TV a través de la entrada AV. Descripción
- X10 es una biblioteca para comunicarse usando el protocolo X10 a través de una línea de energía de 220V. Descripción aquí.
- NicoHoodProtocol – protocolo de comunicación por cable universal.
Sensores y actuadores diversos de Arduino.
- AccelStepper es un reemplazo más interesante y mejor para la biblioteca estándar de Stepper para el control de motores paso a paso. Puede descargarlo desde la página del desarrollador, o aquí hay un enlace directo al archivo.
- ServoSmooth complemento de la biblioteca de servos estándar, lo que le permite controlar un servo con una configuración de la velocidad máxima de desplazamiento y la aceleración / desaceleración (como en AccelStepper, solo para el servo). ¡Imprescindible para cualquier amante de los servos!
- CapacitiveSensor : una biblioteca para crear botones táctiles (a partir de un par de componentes sueltos). Descripción.
- ADCTouchSensor es otra versión de la biblioteca para crear botones táctiles. Hay uno más, por si acaso.
- TouchWheel : una biblioteca para crear controles deslizantes y anillos táctiles.
- ¡Buzz es un detector de presencia basado en un solo cable! (mide ondas EM).
- Rebote : biblioteca anti-rebote para botones y demás. Utilidad dudosa, pero lea la descripción.
- oneButton es una biblioteca para operaciones de botones extendidas. En mi opinión incomoda.
- KL_Button biblioteca para el manejo avanzado de botones. ¡Muchas posibilidades!
- AdaEncoder – biblioteca para trabajar con codificadores.
- GK_Encoder biblioteca para codificadores con muchas posibilidades, admite diferentes tipos de codificadores.
- RTCLib es una biblioteca ligera que admite la mayoría de los módulos RTC.
- OV7670 : biblioteca para trabajar con la cámara en el OV7670.
- IRremote : biblioteca básica para trabajar con emisores y mandos a distancia de infrarrojos.
- IRLib : una versión más avanzada para trabajar con dispositivos IR.
- IRLremote : la biblioteca más clara para controles remotos por infrarrojos, funciona mediante interrupciones. 100% control remoto.
- keySweeper : un proyecto casi listo para interceptar las pulsaciones de teclas de los teclados inalámbricos.
- USB_Host_Shield : permite que Arduine funcione con gamepads (PS, XBOX) y otros dispositivos USB.
- Brain – biblioteca para trabajar con módulos NeuroSky EEG de ondas cerebrales.
- TinyGPS : biblioteca rápida para trabajar con módulos GPS.
- Led_rRGB biblioteca para trabajar con LEDs y cintas RGB.
- FadeLED : biblioteca para parpadeo suave (PWM) de LED con diferentes períodos.
- CurrentTransformer: medición de corriente mediante un transformador (bobina) en el cable. Leer: pinza de corriente.
- LiquidCrystal-I2C es una biblioteca para pantallas LCD con un controlador I2C. Desarrollador – fdebrabander.
- LiquidCrystal-I2C es una biblioteca para pantallas LCD con un controlador I2C. Desarrollador – johnrickman. El anterior parece mejor.
- LiquidTWI2 : biblioteca rápida para pantallas LCD en controladores MCP23008 o MCP23017.
- u8glib : biblioteca para trabajar con pantallas LCD y OLED monocromas.
- ucglib : biblioteca para trabajar con pantallas LCD y OLED en color.
- Adafruit_SSD1306 – Otra biblioteca para pantallas OLED.
- Adafruit-GFX-Library : complemento para bibliotecas de pantalla adafruit, le permite mostrar gráficos.
- SSD1306Ascii : biblioteca autónoma y muy ligera para mostrar texto en OLED.
- NeoPixelBus es una librería para trabajar con una tira LED direccionable adaptada para esp8266 (NodeMCU, Wemos, etc.).
- sendr433 : una biblioteca ligera para enviar cualquier dato a través de módulos de radio de 433 MHz.
- rc-switch – biblioteca para trabajar con módulos de radio de 433 MHz y diferentes protocolos de comunicación.
Trabajando con datos, filtros.
- FFT – Transformada rápida de Fourier (descomposición del sonido en un espectro).
- fix_FFT biblioteca FFT fija.
- FHT – Transformada rápida de Hartley (como Fourier, solo que más rápida).
- Lor_rFilters : filtros de datos muy eficientes (promedio móvil, mediana, Kalman unidimensional simplificado, filtro AB.
- TinyEKF : filtro Kalman rápido y ligero.
- filtering-library varios filtros de datos.
- Gaussian – Filtro gaussiano.
- aJson : trabaja con datos en formato JSON. También hay una biblioteca JSON de Arduino y un analizador para el flujo de datos JSON.
- PID es la biblioteca de controladores PID más famosa. Hay una adición para ello : autoajuste de los parámetros del controlador.
- MyPID : versión del regulador PID, en mi opinión, más compacto y más fácil de usar.
- FullRelay : biblioteca de controladores de relés con histéresis y retroalimentación derivada.
- CryptoSuite : algunos ejemplos de cifrado de datos con cifrados conocidos.
- AESlib : biblioteca para trabajar con cifrado AES.
- LinkedList : trabajar con el tipo de datos «lista vinculada».
- FixedPointsArduino : trabaja con el tipo de datos «punto fijo» (decimales, pero más rápido de calcular).
Librerías del sistema.
Trabajando con la memoria
- EEPROM es una biblioteca estándar para trabajar con EEPROM. Recomiendo usar una EEPROMex más conveniente.
- EEPROMex es una biblioteca más adecuada para trabajar con memoria EEPROM. Descripción
- EEPROMWearLevel – «administrador» de la memoria EEPROM, monitorea el número de celdas de sobrescritura
- MemoryFree es una biblioteca para examinar la ocupación de memoria SRAM actual. Descripción
- EEWrap : biblioteca que le permite usar EEPROM como memoria de acceso aleatorio (SRAM), es decir, para almacenar variables.
- Flash : la biblioteca le permite almacenar / leer cómodamente cualquier dato en la memoria Flash del microcontrolador (matrices, líneas con texto…).
- PGMWrap es otra biblioteca poderosa para escribir / leer datos en la memoria Flash.
- optiboot_flash : un cargador de arranque OptiBoot modificado, que agrega la capacidad de trabajar con memoria Flash durante la ejecución del código.
Trabajando con pines
- DirectIO : alternativa más rápida a las funciones estándar de estado de pines de lectura / escritura.
- AnalogReadFast : opción de lectura rápida de pines analógicos (21 μs).
- CyberLib es una colección genial de análogos rápidos a las funciones de Arduino, lea la descripción. Nota: al autor de esta biblioteca de código abierto no le gusta que la utilicen en sus proyectos, así que tenga cuidado.
- GmehHacks es una colección de análogos rápidos de funciones de Arduino, no tan rápido como CyberLib, pero más familiar de usar. Cambiar la frecuencia / ancho de bits de PWM.
- SoftPWM – haciendo software PWM en diferentes pines.
- PWM : una biblioteca que le permite configurar la frecuencia PWM.
- GmegrPWM : potente biblioteca para la generación avanzada de PWM (solo ATmega328).
- PinChangeInt : realiza interrupciones en cualquier pin. ¿Cómo es eso? Hay una descripción.
- PinChangeInterrupt es otra biblioteca (mejor) que le permite detectar interrupciones en cualquier pin.
- analogComp : trabaja con un comparador analógico de un microcontrolador.
Configuraciones detalladas
- MkhHacks : además de lo anterior, hay algunos ajustes profundos, medición del voltaje de referencia y temperatura central (para ATmega328).
- MkerTimer012 : biblioteca de gestión de interrupciones ligera para los tres temporizadores ATmega328.
- directTimers – biblioteca para el control manual avanzado de temporizadores en ATmega328, revela todas las posibilidades y configuraciones de temporizadores.
- directADC : biblioteca para el control manual avanzado de ADC y comparador en ATmega328, revela todas las capacidades y configuraciones del ADC.
- Gm_Power es la biblioteca más liviana y versátil para administrar el sueño, los periféricos y el reloj del sistema.
- Low-Power es una potente biblioteca para el ahorro de energía y la gestión del sueño profundo.
- narcoleptic es otra biblioteca de hibernación muy fácil de usar.
- SoftwareReset acceso para reiniciar Arduino «desde boceto».
- WatchDog es una biblioteca para trabajar con un «perro guardián» que reinicia el MC en caso de que se cuelgue. Otra opción.
- Adafruit-Trinket-USB : biblioteca de emulación USB para ATtiny85 (placa Digispark). Simula teclado / mouse
- TrinketHidCombo_MEGA328 – Biblioteca de emulación USB para ATmega328 (placas UNO / Nano / Pro Mini). Simula un teclado / mouse. Un ejemplo está en el foro. La publicación original en el foro. Descarga de Cloud Mail. Descarga desde Yandex Disk.
- DMBS AVR lib : un conjunto de funciones básicas ligeras y rápidas para trabajar con MK sin un kernel (análogo de avr libs).
- LUFA : marco USB ligero para AVR.
Núcleos y cargadores
- megaTinyCore versión del núcleo para placas con ATmega168 / 328 a bordo (UNO, Nano, Mini), basado en el núcleo Arduino original, las funciones estándar son muchas veces más rápidas y fáciles. Recomendado para proyectos pesados y que exigen velocidad.
- optiBoot es un gestor de arranque genial para Arduino, más rápido, más ligero y más funcional.
- HoodLoader : cargador de arranque para MK 16u2 con soporte HID (lea: convierte el UNO original en un análogo Leonardo con soporte HID).
- ArduinoXInput_AVR es un núcleo para placas basadas en ATmega32U4 (Leonardo, Micro) que convierte la placa en un controlador habilitado para XInput (gamepad Xbox). También necesitará la biblioteca ArduinoXInput para crear un controlador de juego. Hay una guía en inglés.
- G-Core es un núcleo ligero y rápido para el ATmega328 (Arduino NANO). Ligero y rápido, capacidad de trabajar sin un cargador de arranque y una amplia gama de opciones de reloj y configuraciones generales del sistema.
- MiniCore es el núcleo para admitir los microcontroladores ATmega328, ATmega168, ATmega88, ATmega48 y ATmega8, basados en optiBoot. Una de las características principales es el soporte para el generador de reloj interno.
- MicroCore núcleo para admitir microcontroladores ATtiny13, ATtiny13A y ATtiny13V con frecuencia de reloj interno seleccionable.
- ATTinyCore es un núcleo para microcontroladores ATtiny 441/841, 44/84, 45/85, 461/861, 48/88, 828, 1634, 87, 167, nuevamente basado en el genial OptiBoot.
- megaTinyCore : un núcleo para microcontroladores ATtiny 3217, 1617, 817, 417, 3216, 1616, 816, 416, 1614, 814, 414, 214, 412, 212, 1607, 807, 1606, 806, 406, 1604, 804, 404, 204, 402, 202.
- nanoBoot : cargador de arranque ATmega32xx4 ligero (512 bytes) con soporte HID.
Administradores de tareas y subprocesos
- ArduinoThread – una biblioteca para crear «hilos» – tareas ejecutadas por separado en un temporizador u otra cosa.
- EventManager una biblioteca para trabajar con eventos (nuevamente, un temporizador).
- Arduino-fsm es otro administrador de tareas que le permite escribir código claro y comprensible con un montón de tareas que se ejecutan en un temporizador.
- Automaton es otro marco para dibujar tareas y temporizadores. Hay una wiki.
- FreeRTOS es un sistema operativo en tiempo real para Arduino. Tareas, flujos…
- Arduino_FreeRTOS – Otra versión de RTOS.
- VG_RTOS RTOS simple con modo de suspensión (basado en la biblioteca de bajo consumo).
- DeepSleepScheduler : administrador de tareas con modo de suspensión integrado.
Sonido y habla.
- Talkie : una biblioteca de síntesis de sonido y voz para crear dispositivos parlantes.
- Mozzi es una gran biblioteca para generar varios sonidos.
- uSpeech – biblioteca de reconocimiento de voz.
- TMRpcm una biblioteca para reproducir archivos de sonido.WAV desde una tarjeta de memoria.
- toneAC es una versión más avanzada de tone() para generar frecuencias de audio. Puedes descargar los propios archivos aquí.
- DFPlayer : una biblioteca para trabajar con el módulo mini MP3 de DFPlayer.
- WTV020SD16P funciona con el módulo de sonido WTV020SD16P.
Miscelánea.
- menusystem es una poderosa herramienta para crear menús con toneladas de ejemplos.
- LCD_Menu : una herramienta lista para usar para crear menús en pantallas LCD.
- LiquidMenu es otro marco para crear menús LCD.
- MENWIZ : otra opción de menú preparada para LCD.
- MicroDebug : una biblioteca para depurar código fácilmente.
- hoverboard-hack : un poco fuera de tema, pero esta es una instrucción para piratear una tabla de hoverboard para usarla para sus propios fines..