Pidfrees
Un contrôleur PID robuste, haute performance et sécurisé pour Rust (std & no_std).
Optimisé pour les systèmes embarqués comme RP2040 (Pico), Pico 2, STM32 et ESP32.
🛡️ La Mission
Pidfrees fournit une logique de contrôle robuste tout en restant strictement Open Source. Cette crate utilise la licence GPL-2.0-or-later pour assurer que les algorithmes de contrôle essentiels restent un bien commun et ne soient jamais privatisés.
✨ Caractéristiques Principales
- Précision Adaptative : Choisissez entre
f64pour une haute précision (Cloud/PC) ouf32pour une performance éclair sur les microcontrôleurs - Tuning Dynamique : Mettez à jour Kp, Ki, Kd et le Setpoint à l'exécution sans réinitialiser le contrôleur
- Native no_std : Construit pour les environnements bare-metal (Embassy, RTIC, noyaux personnalisés)
- Robustesse Garantie : Protection anti-windup native et dérivée basée sur la mesure (PV) pour éviter les "derivative kicks"
- Zéro Surcharge : Abstraction zéro-coût, pas d'overhead binaire indépendamment de la précision choisie
- Sécurité Totale :
#![forbid(unsafe_code)]pour une confiance absolue
📦 Installation
Standard (f64 par défaut)
[]
= "0.2.1"
Ultra-Rapide (f32 pour RP2040 / Pico / ESP32)
[]
= { = "0.2.1", = ["f32"] }
💡 Démarrage Rapide
use PidController;
// 1. Initialisation : Kp, Ki, Kd, Cible, Min_Sortie, Max_Sortie
let mut pid = new;
// 2. Calculer la sortie
let power = pid.update;
// 3. Tuning Dynamique - Changez les gains à la volée
pid.set_kp;
pid.set_target;
🎮 Exemple Avancé : Planification des Gains
// Si votre robot porte une charge lourde, ajustez dynamiquement les gains
if robot.is_carrying_load else
📚 Documentation Complète
Consultez la documentation officielle pour des exemples détaillés et une API complète.
⚖️ Licence
Ce projet est licencié sous la Licence Publique Générale GNU v2.0 ou ultérieure (GPL-2.0-or-later).
Vous êtes libre d'utiliser ce code, mais toute modification ou amélioration DOIT être partagée avec la communauté. C'est le contrat de la liberté logicielle.
📝 Historique des Changements
Pour voir l'historique complet des versions, consultez le CHANGELOG.
👨💻 Auteur
Créé par Jorge Andre Castro
Pourquoi Pidfrees ?
Dans les systèmes embarqués, chaque cycle CPU et chaque octet de RAM comptent. Avec la fonctionnalité f32 et le tuning dynamique, pidfrees est l'un des outils les plus légers, flexibles et sécurisés disponibles pour contrôler vos moteurs et capteurs sans sacrifier la sécurité.