2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Neste Instructable, construímos um robô Arcbotics Sparki que pode ser controlado com gestos 3D. Uma característica interessante deste projeto é que nenhum dispositivo adicional, como um smartphone ou luva, é necessário para controlar o robô. Basta passar a mão sobre o eletrodo (área sensível de 95 x 60 mm). Um kit de desenvolvimento MGC3130 Hillstar da Microchip é usado para os sistemas de detecção de entrada de gestos 3D.
Etapa 1: componentes necessários
- Arcbotics Sparki, robô baseado em Arduino. Outros robôs baseados em Arduino também funcionarão.
- MGC3130 Hillstar Development Kit da Microchip, outras placas de gestos 3D, como o Hover original ou o Hover 2.0 da Hover Labs, ou o Flick! também deve funcionar.
- Algumas peças Knex (não tanto quanto na imagem)
- Fita adesiva
- Fios de ligação
Etapa 2: Montagem
O kit de gestos Hillstar 3D consiste em três placas:
- O Módulo MGC3130. esta é a principal unidade de controle de gestos Hillstar, ela faz interface de um lado com um eletrodo e do outro lado com a alimentação e uma interface I2C.
- Um eletrodo de referência de quatro camadas com uma área sensível de 85x60mm, na parte inferior desta placa, é um conector para conectar a placa MGC3130.
- Uma placa de ponte I2C para USB. Com esta placa o módulo MGC3130 pode ser facilmente conectado a um PC com USB.
A placa ponte I2C para USB não é necessária, pois conectamos o I2C do Módulo MGC3130 diretamente às portas IO do Robô, conforme mostrado no diagrama esquemático acima.
Um pequeno carrinho Knex foi feito para apoiar a placa do eletrodo de referência. A placa é presa ao carrinho com alguma fita adesiva e o carrinho completo é preso ao robô com um envoltório Ty. Finalmente, o Módulo MGC3130 é conectado às portas IO do robô com os fios de jumper.
Etapa 3: Código
O software é baseado na biblioteca Hover da Hover Labs e pode ser encontrado no Github (https://github.com/jspark311/hover_arduino).
Abaixo está o esboço do Arduino que pode ser baixado para o Sparki.
Há um IDE Sparki específico disponível, chamado SparkiDuino, mas prefiro usar apenas o IDE Arduino padrão e instalar a biblioteca Sparki Arduino, que pode ser baixada da página de downloads: https://arcbotics.com/downloads Não é tão fácil como SparkiDuino, e não vem com seu próprio instalador de driver (o instalador de driver Sparki também está na página de downloads), mas usa todos os mesmos exemplos e código de biblioteca e é mais fácil em combinação com outras bibliotecas, como o Hover neste caso.
#include // inclui a biblioteca sparki
#include #include // Pin declarações para Hover int ts = 0; reset int = 1; Hover hover = Hover (); evento de byte; String output_string = ""; bool driving_forward = false; configuração vazia () {atraso (4000); sparki.clearLCD (); sparki.println ("Inicializando o Hover… aguarde."); sparki.updateLCD (); pairar.begin (ts, redefinir); sparki.clearLCD (); sparki.println ("Pronto para gestos !."); sparki.updateLCD (); } void loop (void) {// Verifique se o Hover está pronto para enviar eventos de gesto ou toque if (hover.getStatus (ts) == 0) {// Obtenha o evento sobre i2c e imprima-o event = hover.getEvent (); // Esta seção pode ser comentada se você não quiser ver o evento no formato de texto output_string = hover.getEventString (event); if (output_string! = "") {sparki.print (evento); sparki.println ("=" + output_string); sparki.updateLCD (); } switch (evento) {case 40: driving_forward = true; pausa; caso 80: sparki.moveBackward (); pausa; caso 36: sparki.moveLeft (); atraso (500); sparki.moveStop (); pausa; caso 34: sparki.moveRight (); atraso (500); sparki.moveStop (); pausa; caso 72: sparki.gripperOpen (); pausa; caso 66: sparki.gripperClose (); pausa; caso 68: sparki.servo (80); pausa; caso 65: sparki.servo (-80); pausa; caso 48: driving_forward = false; sparki.gripperStop (); sparki.servo (0); pausa; } if (driving_forward) {sparki.moveForward (); } else {sparki.moveStop (); } // Redefine o Hover para o próximo evento hover.setRelease (ts); }}
Etapa 4: aproveite
Lista de comandos:
- Deslize para cima - siga em frente
- Deslize para trás - pare todos os movimentos
- Deslize para a esquerda - vire à esquerda
- Deslize para a direita - vire à direita
- Toque no topo - gire o sensor 90 graus cw
- Toque na parte inferior - gire o sensor 90 graus ccw
- Toque à esquerda - feche a garra
- Toque à direita - abra a garra