CDU - Diorama: Trilho magnético e controle de servos e luzes





Description
CDU - Controlador de Diorama Universal
O CDU (Controlador de Diorama Universal) é uma plataforma aberta para adicionar movimento, iluminação, automação e interatividade a dioramas, maquetes e outros cenários físicos. Ele permite controlar até 16 periféricos, incluindo LEDs, cordões de fada, servomotores, motores lineares, mecanismos móveis e outros acessórios compatíveis.
O sistema inclui uma Timeline visual, semelhante à linha do tempo de um editor de vídeo, para sincronizar movimentos e efeitos de luz. Também possui um modo de Roteiro, no qual cada passo avança após um tempo definido ou quando um dos 3 sensores detecta uma ação. Assim, um sensor escondido pode abrir uma porta, movimentar um personagem, iniciar uma sequência de luzes ou transformar qualquer objeto em um acionador interativo.
Os trilhos magnéticos com corrente impressa em 3D fazem parte do ecossistema CDU e permitem movimentar veículos e outros elementos pelo cenário, tornando ótimo para dioramas com carros, ferromodelismo, etc. O objetivo do projeto é oferecer uma base versátil para criar desde pequenas animações até cenas completas e interativas.
O CDU funciona 100% offline e não exige aplicativo. Ao ligar, ele cria sua própria rede Wi-Fi; basta conectar pelo celular ou computador e abrir `diorama.local` no navegador. Opcionalmente, ele pode se conectar ao roteador local para facilitar o acesso e verificar atualizações do CDU OS pela internet.
O firmware foi desenvolvido para a placa ESP32-C3 Super Mini com OLED de 0,42 polegada.
Vídeos demonstrativos
- Visão geral rápida do CDU
- Sistema de trilhos magnéticos e suportes
- Motor linear em funcionamento
- Demonstração do CDU
- Demonstração de automação
- Tutorial do sistema de luzes
- Canal Magifut no YouTube
Manual e gravação rápida do Firmware:
Estrutura do repositório
| Pasta | Descrição |
|---|---|
| `ESP_PRJ/` | Projeto atual — firmware PlatformIO + documentação |
| `PRJ_OLD/` | Arquivos descontinuados (versão Arduino IDE, POCs, animações antigas) |
| `STLs/` | Modelos 3D para impressão |
| `GCodes/` | Arquivos G-code para impressora 3D (Ender 3 V3 SE) |
Modelos CAD parametrizados
O projeto do CDU no Onshape reúne os modelos mecânicos parametrizados, incluindo a carcaça do CDU, suportes, motores, corrente, engrenagens e outros componentes utilizados na montagem.
Projeto principal
`ESP_PRJ/DioramaWebStepperPIO/` — versão atual, PlatformIO (recomendado).
Documentação
| Documento | Descrição |
|---|---|
| [ESP_PRJ/docs/DioramaWebStepper.md](ESP_PRJ/docs/DioramaWebStepper.md) | Visão geral, estrutura, hardware, endpoints e presets |
| [ESP_PRJ/docs/OTA_UPLOAD.md](ESP_PRJ/docs/OTA_UPLOAD.md) | Guia de upload via Wi-Fi (sem cabo USB) |
| [ESP_PRJ/docs/DOCUMENTACAO_CORRECAO_UI.md](ESP_PRJ/docs/DOCUMENTACAO_CORRECAO_UI.md) | Correções de UI e troubleshooting |
| [ESP_PRJ/docs/LISTA_AJUSTES.md](ESP_PRJ/docs/LISTA_AJUSTES.md) | Lista de ajustes pendentes |
| [ESP_PRJ/docs/Implementacao_Roteiro.md](ESP_PRJ/docs/Implementacao_Roteiro.md) | Implementação do roteiro de animações |
| [ESP_PRJ/docs/BlocoDinamico.md](ESP_PRJ/docs/BlocoDinamico.md) | Documentação do bloco dinâmico |
| [ESP_PRJ/docs/PUBLICACAO_OPEN_SOURCE.md](ESP_PRJ/docs/PUBLICACAO_OPEN_SOURCE.md) | Checklist de sanitização e publicação Open Source |
Hardware e conexões
O projeto foi desenvolvido para ser usado com uma placa ESP32-C3 Super Mini com OLED de 0,42 polegada. O CDU também utiliza um módulo PCA9685 para gerar os sinais PWM usados pelos periféricos, como servomotores e controles de iluminação. O módulo é conectado ao ESP32-C3 pelo barramento I2C e disponibiliza 16 canais PWM, numerados de `0` a `15`.
| Função | Porta/pino |
|---|---|
| PCA9685 SDA (I2C) | GPIO `5` |
| PCA9685 SCL (I2C) | GPIO `6` |
| Endereço I2C do PCA9685 | `0x40` |
| Saídas PWM do PCA9685 | Canais `0` a `15` |
| Entrada de sensor 1 | GPIO `0` |
| Entrada de sensor 2 | GPIO `1` |
| Entrada de sensor 3 | GPIO `4` |
Os sinais PWM dos periféricos saem pelos canais do PCA9685. As entradas de sensores são conectadas diretamente aos GPIOs indicados acima.
Convenção do fio amarelo
Para facilitar a montagem e reduzir erros de conexão, o CDU adota a convenção de usar amarelo sempre para identificar o sinal:
- fio amarelo em entradas de sensores conectadas aos GPIOs;
- fio amarelo no sinal PWM conectado a um canal do PCA9685;
- fio de sinal amarelo nos cabos e conectores;
- pino ou posição de sinal do conector marcado ou pintado de amarelo, sempre que possível.
O amarelo identifica somente o sinal. Ele não indica alimentação, tensão ou polaridade. Antes de energizar o CDU, confira também as posições de alimentação e terra do conector.
Início rápido
1. Grave o firmware pela primeira vez via USB:
```bash
cd ESP_PRJ/DioramaWebStepperPIO
pio run -e esp32c3 --target upload
```
2. Acesse a interface:
```
```
3. Atualizações futuras via Wi-Fi (sem cabo):
```bash
cd ESP_PRJ/DioramaWebStepperPIO
pio run -e esp32c3-ota --target upload
```
Regras do produto
- Interface voltada para usuário leigo — sem jargões técnicos.
- Nomes de hardware não aparecem na UI (`PCA9685`, `GPIO`, `I2C`, etc.).
- Linguagem simples: `Canal 1`, `Intensidade`, `Avançar`, `Dar ré`.
Licença
Este projeto é distribuído sob a [Apache License 2.0](LICENSE). Ela permite uso pessoal e comercial, modificação e redistribuição, desde que sejam preservados a licença e os avisos de atribuição descritos no arquivo [NOTICE](NOTICE).
O nome `CDU` é aberto para uso pela comunidade, e variações do produto são incentivadas a mantê-lo. Periféricos, extensões e aprimoramentos interoperáveis devem usar a identificação `CDU Compatível`, conforme as [diretrizes de uso do nome](TRADEMARKS.md).






