Índice:
- Etapa 1: coisas de que você pode precisar …
- Etapa 2: conectar o hardware
- Etapa 3: programar o Arduino
- Etapa 4: Instale o software
- Etapa 5: usar o programa de interface
- Etapa 6: seja criativo
Vídeo: Servo controlador serial baseado em Arduino: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:40
Este é um controlador serial simples para vários servos baseado no Arduino. (meu primeiro instrutível também:))
A maior parte do trabalho foi fazer com que o software falasse com o arduino e criar um protocolo para que os dados fossem transmitidos. Quanto ao aspecto de hardware, tudo o que usei foram dois servos (servo padrão Parallax aqui.) Um Sparkfun Arduino ProtoShield e um Arduino Duemilanove com ATMEGA328, mas a maioria dessas peças podem ser substituídas por itens semelhantes. Pensei neste projeto como parte de um sistema RC, mas configurar a comunicação demorou muito. Se alguém tiver alguma melhoria, ideia ou bug, sinta-se à vontade para comentar. EDIT: Eu escrevi isso há algum tempo, acabei de publicá-lo recentemente.
Etapa 1: coisas de que você pode precisar …
Algumas coisas você precisará para construir isso. 1. Placa Arduino (você escolhe) 2. dois (ou um) servos 3. fios de jumper 4. Visual Studio 2008 Express - link (opcional) 5. Arduino IDE - link Desculpe, fãs de Linux e Apple, meu programa só funciona em windows por enquanto, mas você ainda pode enviar manualmente comandos seriais para o arduino sem alterar o código.
Etapa 2: conectar o hardware
Nada muito complexo para esta etapa. Basta conectar um servo ao pino 9 e o outro ao pino 10.
Etapa 3: programar o Arduino
agora você pode fazer o upload do esboço para o arduino.
Aqui está uma divisão simples do código: #include Servo myservo; // cria um objeto servo para controlar um servo Servo myservo1; int EntryByte = 0, datacount = 0, counter = 0, ready = 0; // para dados seriais de entrada char data [10]; const char verify [8] = "ma11hew"; comando char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // abre a porta serial, define a taxa de dados Serial.println ("Hi Arduino Here!"); // adicionado para ajudar a identificar a porta serial Isso apenas configura a porta serial e os servos. int i; para (i = 0; i <180; i ++) {myservo.write (i); atraso (15); } myservo.write (5); para (i = 0; i <180; i ++) {myservo1.write (i); atraso (15); } myservo1.write (5); } Movimento de varredura simples para verificar se os servos funcionam corretamente. loop vazio () {pronto = 0; contador = 0; while (1 == 1) {if (Serial.read ()! = verificar [contador]) {quebrar; } se (contador == 6) {atraso (20); comando [0] = Serial.read (); comando [1] = Serial.read (); // if (Serial.read () == ((command [1] * 12)% 8)) // {ready = 1; //} Serial.println ("comando salvo"); } contador ++; atraso (2); } isso verifica o buffer serial para a string de autorização correta e pega dois bytes para o comando. a instrução if comentada permite uma soma de verificação improvisada, mas dificultaria a interface manual. pronto pode ser definido como 0 para que os comandos não sejam analisados, como no caso de dados corrompidos. // pesquisa por meio de comandos if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("controle do acelerador no pino 9 para:"); Serial.println (map (comando [1], 32, 126, 2, 180), DEC); myservo.write (map (command [1], 32, 126, 2, 180)); } if (comando [0] == 'S') {comando [0] = 0; Serial.print ("controle do acelerador no pino 10 para:"); Serial.println (map (comando [1], 32, 126, 2, 180), DEC); myservo1.write (map (comando [1], 32, 126, 2, 180)); }}} o resto do código é para pesquisar o comando por comandos válidos (T ou S.) se qualquer um deles corresponder, ele pega o próximo byte e o envia para o servo. mais no mapa (comando [1], 32, 126, 2, 180) mais tarde … o código aqui é expansível para tudo o que você precisar (por exemplo, luzes, motores, IR, etc.) este código deve funcionar bem sem modificações.
Etapa 4: Instale o software
Tenho duas maneiras de instalar este… instalador nsis: Baixe o instalador de extração automática abaixo e execute-o. Você terá a opção de instalar os fontes durante a instalação. o pacote binário do instalador instala dlls c ++ centrais para que possa ser executado em um computador sem o visual c ++ já instalado. Assim que o instalador terminar, você pode executá-lo a partir da área de trabalho ou do menu iniciar. maneira zip (não verificado): Baixe e execute, ele deve funcionar. pode ser. (O arquivo zip tem a mesma estrutura de pastas criada pelo instalador, sem fontes. Não tenho uma máquina sem visual studio para testá-la, então pode não funcionar.)
Etapa 5: usar o programa de interface
Para usar o programa, primeiro selecione a taxa de transmissão definida no esboço do Arduino. O esboço não modificado é padronizado para 38400 baud, mas pode ser alterado para se adequar às suas necessidades, como um link de rádio mais lento. nota: as taxas de baud superiores a 38400 não têm estado muito estáveis, acho que isso ocorre porque o uart se enche antes que os dados possam ser processados. Em seguida, selecione a porta COM a ser usada. o programa padrão é COM4, certifique-se de alterá-lo ou o programa irá travar. Finalmente, clique em abrir. Se tudo correr bem, o programa abrirá a porta serial selecionada na taxa de transmissão selecionada. Caso contrário, o programa provavelmente irá travar com uma exceção não tratada. certifique-se de que a porta está correta e tente novamente. Use as caixas de texto para enviar comandos diretos ao arduino. O "map (command [1], 32, 126, 2, 180)" dimensiona todos os 94 comandos possíveis, * espaço * a ~, legíveis pelo arduino em ASCII de 2 a 180 para o servo. qualquer byte menor que ASCII 32 (espaço) ou acima de 126 (~) padroniza para 63 (?) As barras de trilha fornecem uma interface de eaiser para comandos diretos. cada etapa envia um comando serial para o arduino de forma incremental.
Etapa 6: seja criativo
Pense em coisas legais para fazer com isso. Algumas idéias: 1. Acelerador remoto para um carro. 2. Montagem de câmera 3D 3. Rover subaquático Divirta-se !!
Recomendado:
Controle remoto IR baseado em Arduino automático baseado em temperatura: 7 etapas
Controle remoto IR baseado em Arduino automático baseado em temperatura: Ei, e aí, pessoal! Akarsh aqui da CETech. Cansado de acordar no meio de um sono profundo só porque a temperatura ambiente está muito baixa ou muito alta por causa do seu AC mudo. Então este projeto é para você. Neste projeto, vamos fazer o nosso
Gateway UDP / IP serial para Arduino baseado no escudo ESP8266: 8 etapas
Gateway UDP / IP serial para Arduino baseado em ESP8266 Shield: Já publiquei em 2016 este instrutível " Como fazer seu próprio gateway Wifi para conectar seu Arduino à rede IP ". Já fiz algumas melhorias no código e ainda estou usando esta solução. No entanto, existem agora alguns escudos ESP8266 t
Controlador de jogo DIY baseado em Arduino - Controlador de jogo Arduino PS2 - Jogando Tekken com gamepad Arduino DIY: 7 etapas
Controlador de jogo DIY baseado em Arduino | Controlador de jogo Arduino PS2 | Jogando Tekken com DIY Arduino Gamepad: Olá pessoal, jogar é sempre divertido, mas jogar com seu próprio controlador de jogo DIY personalizado é mais divertido. Portanto, faremos um controlador de jogo usando arduino pro micro neste instructables
Termômetro infravermelho sem contato baseado em Arduino - Termômetro baseado em IR usando Arduino: 4 etapas
Termômetro infravermelho sem contato baseado em Arduino | Termômetro baseado em IR usando Arduino: Olá pessoal, neste instructables faremos um termômetro sem contato usando arduino. Já que às vezes a temperatura do líquido / sólido é muito alta ou muito baixa e então é difícil fazer contato com ele e ler sua temperatura então naquele cenário
Toque capacitivo com Evive (controlador baseado em Arduino): 6 etapas (com imagens)
Toque capacitivo com Evive (controlador baseado em Arduino): Você sabe como a tela de toque do seu smartphone funciona? O smartphone tem uma série de sensores de toque abaixo da tela de vidro. Hoje em dia, é baseado na tecnologia de detecção de toque de capacitância e até mesmo um toque suave é facilmente detectado. O toque capacitivo é detectado