{"id":27627074,"url":"https://github.com/nyfeu/rookie-32","last_synced_at":"2026-05-10T02:46:31.271Z","repository":{"id":288681579,"uuid":"968881922","full_name":"Nyfeu/Rookie-32","owner":"Nyfeu","description":"O Rookie-32 é um robô de esteiras, desenvolvido para explorar ambientes, transmitir imagens via câmera e interagir com expressões animadas em um display OLED. Controlado por um app customizado via Wi-Fi, ele combina diversão e tecnologia.","archived":false,"fork":false,"pushed_at":"2025-04-19T01:19:33.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T09:52:30.328Z","etag":null,"topics":["arduino","embedded-systems","esp32","freertos"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nyfeu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-18T23:03:19.000Z","updated_at":"2025-04-19T01:20:35.000Z","dependencies_parsed_at":"2025-04-20T13:01:18.271Z","dependency_job_id":null,"html_url":"https://github.com/Nyfeu/Rookie-32","commit_stats":null,"previous_names":["nyfeu/rookie-32"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyfeu%2FRookie-32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyfeu%2FRookie-32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyfeu%2FRookie-32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyfeu%2FRookie-32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nyfeu","download_url":"https://codeload.github.com/Nyfeu/Rookie-32/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250443997,"owners_count":21431566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","embedded-systems","esp32","freertos"],"created_at":"2025-04-23T13:52:39.012Z","updated_at":"2026-05-10T02:46:31.263Z","avatar_url":"https://github.com/Nyfeu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rookie-32 🪖\n\n![Espressif](https://img.shields.io/badge/espressif-E7352C.svg?style=for-the-badge\u0026logo=espressif\u0026logoColor=white)\n[![FreeRTOS](https://img.shields.io/badge/FreeRTOS-7DC847?style=for-the-badge)](https://www.freertos.org/)\n![Arduino](https://img.shields.io/badge/-Arduino-00979D?style=for-the-badge\u0026logo=Arduino\u0026logoColor=white)\n![Flutter](https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge\u0026logo=Flutter\u0026logoColor=white)\n![PlatformIO](https://img.shields.io/badge/PlatformIO-%23222.svg?style=for-the-badge\u0026logo=platformio\u0026logoColor=%23f5822a)\n\n## Integrantes do Grupo \n\n| Nome | R.A. |\n| ---- | ---- |\n| André Solano F. R. Maiolini | 19.02012-0 |\n| Durval Consorti Soranz de Barros Santos | 22.01097-0 |\n| Leonardo Roberto Amadio | 22.01300-8 |\n\n## Apresentação do Projeto\n\nO Rookie-32 consiste em um carrinho robótico controlado remotamente via Bluetooth, utilizando um aplicativo móvel para navegação e interação. O Rookie-32 conta com motores controlados por pontes H e esteiras, garantindo mobilidade eficiente. Para evitar colisões, um sensor ultrassônico (HC-SR04) detecta obstáculos no caminho.\n\nAlém disso, o sistema emite alertas sonoros através de um buzzer de 3.3V, seja para informar eventos importantes durante a navegação, quanto para dar ao sistema uma personalidade amigável. A interface visual do carrinho inclui um display OLED, que exibe animações de olhos que mudam a cada requisição, tornando a interação mais dinâmica. O sistema também pode capturar imagens utilizando um segundo microcontrolador (ESP32-CAM), ampliando as possibilidades de monitoramento e visão remota.\n\nPara garantir o funcionamento adequado dos componentes eletrônicos, o sistema emprega um circuito de alimentação (com LM7805) para ajustar os níveis de sinal entre os módulos. O nível de bateria pode ser monitorado e exibido no display OLED e no aplicativo móvel, permitindo ao usuário acompanhar o tempo de operação do carrinho.\n\nO ESP32S NodeMCU ESP-12 é responsável pelo processamento das informações e comunicação via Bluetooth. O design do sistema prioriza modularidade, permitindo futuras expansões e aprimoramentos na funcionalidade do carrinho.\n\n### Destaques:\n\n- 🤖 Movimento com esteiras\n- 📸 Transmissão de vídeo em tempo real via câmera Wi-Fi\n- 😊 OLED com emojis dinâmicos\n- 🔊 Buzzer para sons - estilo R2-D2.\n- 📱 App Android/iOS para controle remoto e visualização da câmera\n\n## Requisitos do Sistema 📝\n\n| ID | Requisito | Tipo |\n| --- | --- | --- |\n| UR-01 | O sistema deve utilizar um regulador de tensão para garantir alimentação estável dos componentes. | Obrigatório |\n| UR-02 | O Rookie-32 deve ser controlado remotamente via aplicativo móvel por Bluetooth. | Obrigatório |\n| UR-03 | O controle dos motores deve ser feito através das pontes H, que são controladas pelo GPIOs do ESP32S NodeMCU ESP-12. | Obrigatório |\n| UR-04 | O sistema deve possuir verificação do nível de bateria via ADC e transmitido para o aplicativo. | Obrigatório |\n| UR-05 | O sistema deve possuir um sensor ultrassônico (HC-SR04) para evitar colisões. | Obrigatório |\n| UR-06 | O carrinho deve emitir efeitos sonoros através de um buzzer de 3.3V. | Obrigatório |\n| UR-07 | O sistema deve ser capaz de realizar a captura de imagens via ESP32-CAM via Wi-Fi.. | Desejável |\n| UR-08 | O sistema deve minimizar a quantidade de pinos utilizados para posterior atualização. | Desejável |\n| UR-09 | O sistema deve exibir animações de olhos no carrinho, mudando a cada requisição, utilizando displays OLED. | Desejável |\n| UR-10 | O sistema deve possuir verificação direta pelo do nível de bateria por meio de display físico. | Desejável |\n| UR-11 | Alcance do streaming de vídeo capturado. | Desejável |\n\n## Componentes Principais 🛠\n\nHardware\n- Microcontrolador: ESP32S NodeMCU ESP-12 e ESP32-CAM\n- Display: OLED 128x64 (I2C)\n- Motores: 2x Motores DC com esteiras\n- Buzzer: Piezoelétrico\n- Fonte: Pack Li-Ion 8.4V recarregável\n- Sensor de Proximidade: HC-SR04\n\nSoftware\n- Plafatorma: PlatformIO (Arduino Framework)\n- Sistema operacional de tempo real (RTOS): FreeRTOS\n\nApp: desenvolvido em linguagem Dart (framework Flutter).\n\n## Diagrama de Blocos 🧊\n\n![Diagrama de blocos feito via draw.io](./diagrama%20de%20blocos.png)\n\n## Como Usar 🎮\n\nControle pelo App:\n- Conecte-se ao robô via Bluetooth/Wi-Fi utilizando o aplicativo móvel 📲.\n- Use o joystick virtual para movimentação 🕹️.\n- Toque nos botões para ativar sons e mudar emojis 👀.\n- Ligue/desligue a lanterna utilizando o botão toggle 🔦.\n\n## Custos do Protótipo 💵\n\n| Componente                 | Preço    | \n| -------------------------- | -------- |\n| Ponte H L298n              | R$ 17,96 |\n| Sensor HC-Sr04             | R$ 17,00 |\n| ESP32S NodeMcu ESP-12      | R$ 47,40 |\n| ESP32-CAM                  | R$ 59,90 |\n| Buzzer 5V                  | R$ 2,48  |\n| Motor DC 3-6V TTL (2x)     | R$ 15,00 |\n| Display OLED 0.96\"         | R$ 27,80 |\n| Regulador de Tensão LM7805 | R$ 2,50  |\n| Módulo Display de Bateria  | R$ 10,00 |\n| Pack Bateria Li-Íon (8.4V) | R$ 40,00 |\n| Filamento ABS (1 kg)       | R$ 67,26 |\n| **Total**                  | **R$ 307,24** |\n\n## Documentação do Código com Doxygen 📄\n\nPara garantir a clareza e facilitar a manutenção e futuras colaborações no projeto Rookie-32, toda a base de código foi documentada utilizando o Doxygen. O Doxygen é uma ferramenta padrão de fato para gerar documentação a partir de código-fonte documentado.\n\n### Como funciona:\n\n- Comentários Estruturados: O código será anotado com comentários especiais formatados para o Doxygen, descrevendo funções, variáveis, estruturas e módulos.\n- Geração Automática: A partir desses comentários, o Doxygen pode gerar documentação em diversos formatos, como HTML, LaTeX, RTF, XML e man pages.\n\nPara visualizar a documentação completa, basta acessar `docs/html/index.html`\n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyfeu%2Frookie-32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyfeu%2Frookie-32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyfeu%2Frookie-32/lists"}