- A interface gráfica não congela graças ao Multithreading.
- Um
CompileWorkeré criado para rodar em segundo plano. - Ele envia sinais (
Signals) para a barra de progresso, indicando o status de cada etapa.
-
O Python não envia código diretamente ao Arduino.
-
Utilizamos o módulo
astpara decompor o código em uma árvore de lógica. -
Mapeamento: cada comando Python é transformado em sua versão C++ para Arduino. Exemplo:
digital_write(13, 1) -> digitalWrite(13, HIGH);
-
Geração de Arquivo: cria-se um arquivo
.inona pastaDocuments\Wandi Studio\....
- O
arduino-cli.exeé localizado dinamicamente no PC. - Compilação: transforma o arquivo
.inoem binário. - Upload: envia o binário via USB para a porta COM (ex.: COM5), gravando o código na memória da placa.
| Etapa | Responsável | Ação |
|---|---|---|
| Usuário | Interface | Digita Python e clica em Upload |
| Engine | Tradução AST | Analisa lógica -> Gera C++ -> Salva .ino |
| Arduino-CLI | Compilação | Lê .ino -> Compila -> Grava no Hardware |
| UI | Interface | Exibe logs e uso de memória |
As bibliotecas são divididas conforme a função no sistema.
| Biblioteca | Uso | Observação |
|---|---|---|
LiquidCrystal_I2C.h |
Controle do Display LCD 16x2 azul | Conecta via barramento I²C usando apenas dois fios de dados |
Wire.h |
Comunicação I²C | Gerencia os pinos SDA e SCL do LCD |
| Biblioteca | Uso | Componente |
|---|---|---|
Keypad.h |
Gerencia teclado matricial 4x4 | Entrada de usuário |
Servo.h |
Controle de servomotores | Braço Robótico Wandi |
MFRC522.h ou RFID.h |
Leitura de cartão RFID | Segurança / Core |
Ultrasonic.h ou NewPing.h |
Sensor de distância ultrassônico | Detecção de obstáculos |
| Biblioteca | Uso | Componente Alvo |
|---|---|---|
Stepper.h |
Controle de motores de passo | Esteira / Eixos de precisão Wandi Robot |
PySerial (Python) |
Comunicação entre PC e Arduino via USB | Interface PC -> Arduino |
| Biblioteca | Responsabilidade | Componente Alvo |
|---|---|---|
LiquidCrystal_I2C |
UI / Display | Display LCD 16x2 |
Keypad |
Input de Usuário | Teclado Matricial |
Servo |
Movimento / Engine | Braço Robótico Wandi |
MFRC522 |
Segurança / Core | Leitor de Cartão RFID |
Wire |
Comunicação Low-level | Barramento I2C |
Este README fornece uma visão clara do fluxo e das dependências do sistema, facilitando a compreensão para desenvolvedores e alunos que utilizam a IDE Wandi Studio.