CREPP v2 – Global settings
-------------------------
- Paramètres matériels
- Adresses I2C
- Broches
- Constantes fonctionnelles
* ❌ Pas d'instances
❌ Pas de logique
✅ Constantes uniquement
Constantes de configuration
i2c
| Nom |
Type |
Valeur |
Description |
| ADDRESS_ADS1115 |
uint8_t |
0x48 |
Adresse par défaut pour ADS1115 |
| ADDRESS_BME280 |
uint8_t |
0x76 |
Adresse par défaut pour BME280 |
| ADDRESS_DS3231 |
uint8_t |
0x68 |
Adresse par défaut pour DS3231 |
| ADDRESS_OLED |
uint8_t |
0x3C |
Adresse par défaut pour écran OLED SSD1306 |
| ADDRESS_PCA9635 |
uint8_t |
0x60 |
Adresse par défaut pour PCA9635 |
| ADDRESS_PCF8574 |
uint8_t |
0x20 |
Adresse par défaut pour PCF8574 |
| I2C_CLOCK_SPEED |
uint32_t |
400000 |
400kHz |
| I2C_SCAN_END |
uint8_t |
0x77 |
— |
| I2C_SCAN_START |
uint8_t |
0x08 |
Scan range |
led
| Nom |
Type |
Valeur |
Description |
| ANIMATION_FAST |
uint16_t |
50 |
Animation speeds (ms) |
| ANIMATION_NORMAL |
uint16_t |
100 |
— |
| ANIMATION_SLOW |
uint16_t |
200 |
— |
| BRIGHTNESS_DEFAULT |
uint8_t |
100 |
Luminosité par défaut |
| BRIGHTNESS_MAX |
uint8_t |
255 |
Luminosité maximale |
| BRIGHTNESS_MIN |
uint8_t |
10 |
Luminosité minimale |
| COLOR_BLUE |
uint32_t |
0x0000FF |
— |
| COLOR_CYAN |
uint32_t |
0x00FFFF |
— |
| COLOR_GREEN |
uint32_t |
0xFF0000 |
— |
| COLOR_MAGENTA |
uint32_t |
0xFF00FF |
— |
| COLOR_OFF |
uint32_t |
0x000000 |
— |
| COLOR_RED |
uint32_t |
0x00FF00 |
Colors (GRB format for SK6812) |
| COLOR_WHITE |
uint32_t |
0xFFFFFF |
— |
| COLOR_YELLOW |
uint32_t |
0xFFFF00 |
— |
| COUNT |
uint16_t |
8 |
Nombre de LEDs |
motor
| Nom |
Type |
Valeur |
Description |
| ACCELERATION |
uint16_t |
100 |
Accélération (ms) |
| COUNT |
uint8_t |
2 |
Nombre de moteurs |
| DECELERATION |
uint16_t |
100 |
Décélération (ms) |
| DIR_BACKWARD |
uint8_t |
0x02 |
— |
| DIR_FORWARD |
uint8_t |
0x01 |
Directions |
| DIR_STOP |
uint8_t |
0x00 |
— |
| I2C_EXPANDER |
uint8_t |
i2c::ADDRESS_PCF8574 |
Adresse I2C de l'extendeur |
| MAX_SPEED |
uint8_t |
255 |
Vitesse maximale (PWM) |
| MIN_SPEED |
uint8_t |
0 |
Vitesse minimale |
pin
| Nom |
Type |
Valeur |
Description |
| BUTTON_1 |
uint8_t |
2 |
Bouton 1 |
| BUTTON_2 |
uint8_t |
3 |
Bouton 2 |
| BUZZER |
uint8_t |
4 |
Buzzer |
| LED_STATUS |
uint8_t |
13 |
Broche de la LED intégrée |
| LED_STRIP |
uint8_t |
21 |
Broche pour bande LED (SK6812/WS2812) |
| MOTOR_ENA |
uint8_t |
9 |
Enable moteur A |
| MOTOR_ENB |
uint8_t |
12 |
Enable moteur B |
| MOTOR_IN1 |
uint8_t |
10 |
Input 1 moteur A |
| MOTOR_IN2 |
uint8_t |
11 |
Input 2 moteur A |
| MOTOR_IN3 |
uint8_t |
14 |
Input 3 moteur B |
| MOTOR_IN4 |
uint8_t |
15 |
Input 4 moteur B |
| NRF_CE |
uint8_t |
16 |
Chip Enable |
| NRF_CSN |
uint8_t |
17 |
Chip Select |
| NRF_MISO |
uint8_t |
20 |
MISO |
| NRF_MOSI |
uint8_t |
19 |
MOSI |
| NRF_SCK |
uint8_t |
18 |
SCK |
| SERVO |
uint8_t |
7 |
Servo moteur |
| ULTRASONIC_ECHO |
uint8_t |
6 |
Broche ECHO du capteur ultrason |
| ULTRASONIC_TRIG |
uint8_t |
5 |
Broche TRIG du capteur ultrason |
system
| Nom |
Type |
Valeur |
Description |
| BOOT_DELAY_MS |
uint16_t |
500 |
Délai au démarrage |
| EEPROM_CONFIG_START |
uint16_t |
0 |
Début configuration |
| EEPROM_DATA_START |
uint16_t |
512 |
Début données |
| EEPROM_SIZE |
uint16_t |
4096 |
Octets |
| LOG_BUFFER_SIZE |
uint16_t |
1024 |
Taille buffer log |
| MAX_CURRENT |
float |
2.0f |
A |
| MAX_LOG_MESSAGES |
uint8_t |
100 |
Nombre max de messages en mémoire |
| MAX_TEMPERATURE |
float |
85.0f |
°C |
| MIN_VOLTAGE |
float |
3.0f |
V |
| TASK_UPDATE_INTERVAL |
uint32_t |
10 |
Intervalle de mise à jour des tâches (ms) |
| WATCHDOG_TIMEOUT |
uint32_t |
10000 |
Timeout du watchdog |
Code source
// Settings.h
#pragma once
#include <stdint.h>
/*
* CREPP v2 – Global settings
* -------------------------
* - Paramètres matériels
* - Adresses I2C
* - Broches
* - Constantes fonctionnelles
*
* ❌ Pas d'instances
* ❌ Pas de logique
* ✅ Constantes uniquement
*/
namespace crepp::settings {
/* =========================
* I2C ADDRESSES
* ========================= */
namespace i2c {
constexpr uint8_t ADDRESS_PCF8574 = 0x20; // Adresse par défaut pour PCF8574
constexpr uint8_t ADDRESS_PCA9635 = 0x60; // Adresse par défaut pour PCA9635
constexpr uint8_t ADDRESS_ADS1115 = 0x48; // Adresse par défaut pour ADS1115
constexpr uint8_t ADDRESS_OLED = 0x3C; // Adresse par défaut pour écran OLED SSD1306
constexpr uint8_t ADDRESS_BME280 = 0x76; // Adresse par défaut pour BME280
constexpr uint8_t ADDRESS_DS3231 = 0x68; // Adresse par défaut pour DS3231
// Scan range
constexpr uint8_t I2C_SCAN_START = 0x08;
constexpr uint8_t I2C_SCAN_END = 0x77;
constexpr uint32_t I2C_CLOCK_SPEED = 400000; // 400kHz
}
/* =========================
* PINS
* ========================= */
namespace pin {
// GPIO Pins
constexpr uint8_t LED_STATUS = 13; // Broche de la LED intégrée
constexpr uint8_t BUTTON_1 = 2; // Bouton 1
constexpr uint8_t BUTTON_2 = 3; // Bouton 2
constexpr uint8_t BUZZER = 4; // Buzzer
// Ultrasonic sensor
constexpr uint8_t ULTRASONIC_TRIG = 5; // Broche TRIG du capteur ultrason
constexpr uint8_t ULTRASONIC_ECHO = 6; // Broche ECHO du capteur ultrason
// Servo
constexpr uint8_t SERVO = 7; // Servo moteur
// Motor control
constexpr uint8_t MOTOR_ENA = 9; // Enable moteur A
constexpr uint8_t MOTOR_IN1 = 10; // Input 1 moteur A
constexpr uint8_t MOTOR_IN2 = 11; // Input 2 moteur A
constexpr uint8_t MOTOR_ENB = 12; // Enable moteur B
constexpr uint8_t MOTOR_IN3 = 14; // Input 3 moteur B
constexpr uint8_t MOTOR_IN4 = 15; // Input 4 moteur B
// NRF24
constexpr uint8_t NRF_CE = 16; // Chip Enable
constexpr uint8_t NRF_CSN = 17; // Chip Select
constexpr uint8_t NRF_MOSI = 19; // MOSI
constexpr uint8_t NRF_MISO = 20; // MISO
constexpr uint8_t NRF_SCK = 18; // SCK
// LED Strip
constexpr uint8_t LED_STRIP = 21; // Broche pour bande LED (SK6812/WS2812)
}
/* =========================
* MOTORS
* ========================= */
namespace motor {
constexpr uint8_t I2C_EXPANDER = i2c::ADDRESS_PCF8574; // Adresse I2C de l'extendeur
constexpr uint8_t COUNT = 2; // Nombre de moteurs
constexpr uint8_t MAX_SPEED = 255; // Vitesse maximale (PWM)
constexpr uint8_t MIN_SPEED = 0; // Vitesse minimale
constexpr uint16_t ACCELERATION = 100; // Accélération (ms)
constexpr uint16_t DECELERATION = 100; // Décélération (ms)
// Directions
constexpr uint8_t DIR_FORWARD = 0x01;
constexpr uint8_t DIR_BACKWARD = 0x02;
constexpr uint8_t DIR_STOP = 0x00;
}
/* =========================
* LEDS (SK6812 / WS6812)
* ========================= */
namespace led {
constexpr uint16_t COUNT = 8; // Nombre de LEDs
constexpr uint8_t BRIGHTNESS_MAX = 255; // Luminosité maximale
constexpr uint8_t BRIGHTNESS_MIN = 10; // Luminosité minimale
constexpr uint8_t BRIGHTNESS_DEFAULT = 100; // Luminosité par défaut
// Animation speeds (ms)
constexpr uint16_t ANIMATION_FAST = 50;
constexpr uint16_t ANIMATION_NORMAL = 100;
constexpr uint16_t ANIMATION_SLOW = 200;
// Colors (GRB format for SK6812)
constexpr uint32_t COLOR_RED = 0x00FF00;
constexpr uint32_t COLOR_GREEN = 0xFF0000;
constexpr uint32_t COLOR_BLUE = 0x0000FF;
constexpr uint32_t COLOR_WHITE = 0xFFFFFF;
constexpr uint32_t COLOR_YELLOW = 0xFFFF00;
constexpr uint32_t COLOR_CYAN = 0x00FFFF;
constexpr uint32_t COLOR_MAGENTA = 0xFF00FF;
constexpr uint32_t COLOR_OFF = 0x000000;
}
/* =========================
* SENSORS
* ========================= */
namespace sensor {
// Ultrasonic
constexpr uint16_t ULTRASONIC_MAX_DISTANCE = 400; // cm
constexpr uint16_t ULTRASONIC_MIN_DISTANCE = 2; // cm
constexpr uint16_t ULTRASONIC_TIMEOUT = 30000; // µs
constexpr float SOUND_SPEED = 0.0343; // cm/µs
// ADS1115
constexpr float ADS1115_GAIN = 4.096f; // ±4.096V
constexpr uint16_t ADS1115_DATA_RATE = 860; // SPS
// BME280 (si présent)
constexpr float SEA_LEVEL_PRESSURE = 1013.25; // hPa
}
/* =========================
* NETWORK
* ========================= */
namespace network {
// WiFi
constexpr uint32_t WIFI_TIMEOUT = 10000; // ms
constexpr uint32_t WIFI_RECONNECT_DELAY = 5000; // ms
constexpr int8_t WIFI_MIN_RSSI = -80; // dBm
// Server
constexpr uint16_t SERVER_PORT = 80;
constexpr uint16_t WEBSOCKET_PORT = 81;
constexpr uint16_t API_PORT = 8080;
// MQTT (optionnel)
constexpr uint16_t MQTT_PORT = 1883;
constexpr uint32_t MQTT_KEEPALIVE = 60; // seconds
}
/* =========================
* SYSTEM
* ========================= */
namespace system {
// Timing
constexpr uint16_t BOOT_DELAY_MS = 500; // Délai au démarrage
constexpr uint32_t WATCHDOG_TIMEOUT = 10000; // Timeout du watchdog
constexpr uint32_t TASK_UPDATE_INTERVAL = 10; // Intervalle de mise à jour des tâches (ms)
// Safety limits
constexpr float MAX_TEMPERATURE = 85.0f; // °C
constexpr float MIN_VOLTAGE = 3.0f; // V
constexpr float MAX_CURRENT = 2.0f; // A
// Storage
constexpr uint16_t EEPROM_SIZE = 4096; // Octets
constexpr uint16_t EEPROM_CONFIG_START = 0; // Début configuration
constexpr uint16_t EEPROM_DATA_START = 512; // Début données
// Logging
constexpr uint16_t LOG_BUFFER_SIZE = 1024; // Taille buffer log
constexpr uint8_t MAX_LOG_MESSAGES = 100; // Nombre max de messages en mémoire
}
/* =========================
* COMMUNICATION
* ========================= */
namespace communication {
// NRF24
constexpr uint64_t NRF24_PIPE_0 = 0xF0F0F0F0E1LL;
constexpr uint64_t NRF24_PIPE_1 = 0xF0F0F0F0D2LL;
constexpr uint8_t NRF24_CHANNEL = 76; // 2.476 GHz
constexpr uint8_t NRF24_DATA_RATE = 1; // 0=250kbps, 1=1Mbps, 2=2Mbps
constexpr uint8_t NRF24_PA_LEVEL = 3; // 0=MIN, 1=LOW, 2=HIGH, 3=MAX
constexpr uint8_t NRF24_PAYLOAD_SIZE = 32; // Octets
// Serial
constexpr uint32_t SERIAL_BAUD_RATE = 115200;
constexpr uint32_t SERIAL_TIMEOUT = 1000; // ms
}
/* =========================
* TASK SCHEDULER
* ========================= */
namespace scheduler {
constexpr uint8_t MAX_TASKS = 20; // Nombre max de tâches
constexpr uint32_t DEFAULT_INTERVAL = 1000; // Intervalle par défaut (ms)
constexpr uint32_t MIN_INTERVAL = 10; // Intervalle minimum (ms)
constexpr uint32_t MAX_INTERVAL = 60000; // Intervalle maximum (ms)
}
/* =========================
* DATA STORAGE
* ========================= */
namespace storage {
constexpr uint16_t MAX_KEYS = 50; // Nombre max de clés
constexpr uint16_t MAX_KEY_LENGTH = 32; // Longueur max clé
constexpr uint16_t MAX_VALUE_LENGTH = 256; // Longueur max valeur
constexpr uint32_t AUTO_SAVE_INTERVAL = 30000; // Auto-save toutes les 30s
}
} // namespace crepp::settings
// // Dans Settings.h, ajouter:
// namespace crepp::settings {
// namespace storage {
// // Pour RP2350, utiliser la flash
// constexpr uint16_t FLASH_SECTOR_SIZE = 4096;
// constexpr uint16_t FLASH_CONFIG_SECTOR = 0xFF000;
// constexpr bool USE_LITTLEFS = true;
// }
// }