Esse projeto é muito legal porque o Arduino Leonardo (ou o Micro) tem um diferencial: ele pode agir como um dispositivo HID, ou seja, ele pode simular um teclado ou mouse nativamente — coisa que o Uno, por exemplo, não faz. 🧠 Objetivo: Criar um programa em C# que envie comandos via USB serial para o Arduino Leonardo, e ele moverá o mouse de acordo com esses comandos. 🧰 O que você vai precisar: No lado C# (PC): Enviar comandos via Serial (COM). Pode usar System.IO.Ports.SerialPort. No lado Arduino: Receber esses comandos via Serial. Usar a biblioteca Mouse.h para movimentar o mouse. 🔌 Parte 1: Código no Arduino Leonardo #include <Mouse.h> void setup() { Serial.begin(9600); while (!Serial); // Aguarda a conexão Mouse.begin(); } void loop() { if (Serial.available() > 0) { String command = Serial.readStringUntil('\n'); command.trim(); if (command.startsWith("MOVE")) { // Formato: MOVE x y int spaceIndex = command.indexOf(' '); int secondSpace = command.indexOf(' ', spaceIndex + 1); int x = command.substring(spaceIndex + 1, secondSpace).toInt(); int y = command.substring(secondSpace + 1).toInt(); Mouse.move(x, y); } // Exemplo: Clique do mouse else if (command == "CLICK") { Mouse.click(); } } } Esse código lê comandos como MOVE 10 0 (move 10px pra direita) ou MOVE 0 -10 (10px pra cima). 💻 Parte 2: Código em C# para enviar comandos using System; using System.IO.Ports; class MouseController { static void Main() { SerialPort serial = new SerialPort("COM5", 9600); // Ajuste a porta COM serial.Open(); while (true) { Console.Write("Digite comando (ex: MOVE 10 0 ou CLICK): "); string cmd = Console.ReadLine(); serial.WriteLine(cmd); } } } Certifique-se de que a porta COM usada é a certa (pode ver isso no Gerenciador de Dispositivos quando conecta o Leonardo). 🔐 Dicas importantes: Mouse.begin() é essencial — se não chamar, não funciona. Sempre espere a Serial estar pronta (while (!Serial);). O Leonardo pode travar o mouse do PC se você mandar comandos infinitos. Teste com cuidado! Adicione uma tecla de emergência no Arduino para desabilitar o Mouse se der ruim.