Como controlar seu Arduino usando JavaScript

Você sabia que você pode controlar seu Arduino com Javascript? Com um software e alguma criatividade, você pode! Veja como fazer isso.

Você sabia que você pode controlar seu Arduino com Javascript?  Com um software e alguma criatividade, você pode!  Veja como fazer isso.
Propaganda

Placas de Arduino são uma das maneiras mais fáceis de entrar em hackers de hardware para programadores. Há uma enorme variedade de projetos para iniciantes 10 Grandes Projetos Arduino para Iniciantes 10 Grandes Projetos Arduino para Iniciantes A conclusão de um projeto Arduino oferece a você um sentimento de satisfação como nenhum outro. A maioria dos iniciantes não sabe ao certo por onde começar, e até mesmo os projetos para iniciantes podem parecer assustadores. Leia mais para fora lá para atender quase qualquer pessoa com um fundo de programação. Mesmo assim, começar pode parecer assustador para aqueles com pouco tempo.

Aprendendo uma linguagem totalmente nova Que linguagem de programação você deve aprender para o futuro? Qual linguagem de programação você deve aprender para o futuro? Qual é a melhor linguagem de programação para aprender para o futuro? Se você pudesse escolher apenas um idioma para aprender e dominar para o futuro, não há concurso: ele deve ser JavaScript. Leia mais apenas para experimentar um microcontrolador pode parecer muito trabalho. E se você quiser começar a brincar com produtos eletrônicos caseiros em uma linguagem de programa com a qual já esteja familiarizado? Boas notícias: você pode!

Nós já mostramos como controlar uma placa Arduino com Python Como programar e controlar um Arduino com Python Como programar e controlar um Arduino com Python Infelizmente, é impossível programar diretamente um Arduino em Python, mas você pode controlá-lo por USB usando um programa Python. Veja como. Leia mais e hoje vamos mostrar como fazer o mesmo com o JavaScript. Em vez de apenas o mais básico tutorial de piscar LED, hoje vamos usar o framework Johnny-Five para controlar um servo com o teclado do computador, tudo programado em JavaScript. O que é JavaScript e como funciona? O que é JavaScript e como funciona? O que é Javascript? É uma linguagem de programação usada para melhorar páginas da web. Inclui atualizações dinâmicas de páginas da Web, interfaces de usuário e muito mais. Vamos mergulhar no que é o Javascript. Consulte Mais informação .

Lista de Hardware

Para este projeto você precisará de:

  • Arduino Uno (ou placa compatível Arduino Guia de compra: Qual placa você deve obter? Arduino Guia de compra: Qual placa você deve ter? Existem tantos tipos diferentes de placas Arduino lá fora, você seria perdoado por ser confundido. Qual você deve comprar para o seu projeto? Deixe-nos ajudar, com este guia de compra Arduino! Leia mais): $ 22 da loja oficial, embora você possa obtê-los mais barato 5 razões para não usar um Arduino genuíno em seu próximo projeto 5 razões para não usar um genuíno Arduino em seu próximo projeto A fundação Arduino foi longe demais? Por que você deve gastar seu dinheiro em produtos Genuínos Arduino? Nós explicamos tudo o que você precisa saber. Leia mais, placas clone estão disponíveis por apenas US $ 3, 20 no AliExpress.
  • Hobby Servo: Qualquer servo compatível com Arduino de uma loja de hobby fará, estou usando um servo de $ 1, 60 do AliExpress.
  • Um par de pedaços de fio de gancho
  • Cabo USB: Para conectar o Arduino ao seu computador

como controlar o arduino com javascript

O tutorial de hoje usará uma placa Arduino Uno. A estrutura do Johnny-Five que usaremos mais adiante neste projeto suporta a maioria dos microcontroladores compatíveis com Arduino, embora sua placa precise ter capacidade de PWM para manter o servo feliz.

Configuração do circuito

Anexe seu servo ao seu Arduino assim:

como controlar o arduino com javascript

Em suma, a linha VCC ( RED ) se conecta ao pino 5v do Arduino, a linha GND ( BLACK ou BROWN ) conecta ao pino GND do Arduino e a linha Pulse ( Amarelo ou Laranja ) conecta ao pino 10 do Arduino. Observe que, embora não seja necessário conectá-lo ao pino 10 especificamente, ele deve se conectar a um pino PWM, geralmente denotado com um ~ .

Verifique se você não misturou cabos e conecte o Arduino ao seu computador. Nós estaremos usando o Windows 10 para este projeto. Todos os elementos deste projeto também estão disponíveis para Mac e Linux, embora algumas instruções de instalação possam diferir ligeiramente.

Se você ainda não fez isso, baixe o Arduino IDE e escolha sua placa e porta no menu Ferramentas . Se esta é sua primeira vez fazendo isso e é tudo um pouco de mistério, nosso Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em flexível, fácil de usar hardware e software. É destinado a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. Leia mais poderia ajudá-lo através destes passos.

como controlar o arduino com javascript

Depois de conectá-lo, faça o upload do esboço de exemplo do StandardFirmataPlus para o quadro. Você pode encontrar este esboço no menu Arquivo em Exemplos> Firmata> StandardFirmataPlus . Você não precisa modificar o rascunho, ele basicamente apenas configura o Arduino para esperar por instruções externas - as quais iremos nos fornecer mais tarde.

Robótica JavaScript com Johnny-Five

O framework que usaremos para controlar nosso Arduino com Javascript é chamado Johnny-Five. Não é novidade que, dado o seu filme homônimo, o projeto é voltado para o trabalho com robótica.

como controlar o arduino com javascript
Crédito de imagem: johnny-five.io

Para instalar o Johnny-Five, devemos primeiro instalar o Node.js O que é o Node.JS e por que devo me importar? [Desenvolvimento Web] O que é o Node.JS e por que devo me importar? [Desenvolvimento Web] JavaScript é apenas uma linguagem de programação do lado do cliente que roda no navegador, certo? Não mais. O Node.js é uma maneira de executar JavaScript no servidor; mas é muito mais também. Se ... Leia Mais. Você pode baixar sua versão mais recente no site Node.js. Estamos usando a versão recomendada, que no momento da escrita é 8.9.4 LTS .

Abra o arquivo .msi e siga as instruções de instalação, certificando-se de que ele seja adicionado ao seu PATH . O instalador atual do Node.js adiciona o PATH como padrão, embora valha a pena verificar isso durante a instalação, pois é necessário para a próxima etapa.

como controlar o arduino com javascript

Quando a instalação estiver concluída, teremos acesso ao gerenciador de pacotes NPM ( Node Package Manager ) da linha de comando do Windows (CMD). Clique em Iniciar e digite CMD. Antes de prosseguir, precisamos inicializar o NPM para evitar possíveis erros de instalação. Não requer nenhum conhecimento especializado, apenas digite:

npm init 

Siga as instruções na tela. Para o projeto de hoje você não precisa mudar nada, basta pressionar enter até voltar ao prompt de comando e digitar:

 npm install johnny-five 

Isto irá instalar todos os pacotes importantes, que irão conversar com o nosso Arduino. Precisamos de mais uma coisa para fazer este projeto funcionar, e esse é o pacote Keypress, que nos permitirá ler as teclas digitadas no teclado.

Instale-o digitando:

 npm install keypress 

Uma vez que todos esses pacotes estejam instalados, estamos prontos para codificar!

Se você encontrar algum problema durante a instalação, tente executar a instalação do johnny-five novamente após a instalação das teclas. Pode ser apenas uma peculiaridade da versão do NPM usada aqui, mas fazer isso agora evita um problema que você provavelmente enfrentará mais tarde, como aconteceu comigo.

O código

Usaremos um exemplo de código fornecido na documentação do johnny-five hoje, que permite controlar nosso servo usando as teclas de seta no teclado. O código completo está disponível em johnny-five.io, mas vamos ver detalhadamente aqui para entender como funciona.

Estamos usando os atalhos de teclado mais úteis do Eclipse IDE 8 para usuários iniciantes do Eclipse IDE 8 Atalhos de teclado mais úteis para usuários iniciantes do IDE Eclipse Por ser amigável para iniciantes como o Eclipse IDE (interface), você deve aprender esses atalhos de teclado. Leia mais para codificação hoje, embora você possa usar qualquer editor de texto ou IDE Editores de texto versus IDEs: Qual é o melhor para programadores? Editores de texto versus IDEs: Qual é o melhor para programadores? Escolher entre um IDE avançado e um editor de texto mais simples pode ser difícil. Oferecemos algumas dicas para ajudá-lo a tomar essa decisão. Leia mais para este projeto.

Crie um novo arquivo e nomeie-o test.js e salve-o em algum lugar que você possa acessar facilmente a partir da linha de comando posteriormente. O script começa criando variáveis ​​para as bibliotecas necessárias e inicializando a biblioteca Keypress para escutar os dados recebidos, além de chamar o método Board () para configurar o quadro.

 var five = require("johnny-five"); var keypress = require("keypress"); keypress(process.stdin); var board = new five.Board(); 

Observe que a configuração da placa aqui é automática, sem necessidade de especificar portas. Se você tiver uma configuração de porta específica ou não tiver tido sorte com a detecção automática, talvez seja necessário especificar sua porta explicitamente.

Em seguida, queremos "acordar" nossa placa e configurá-la para controle servo. O painel na chamada aguarda até que os pinos do Arduino estejam prontos antes de prosseguir . A biblioteca johnny-five tem suporte para servos embutidos e estamos chamando Servo.Continuous (10) no pino 10 para permitir o controle direto.

 board.on("ready", function() { console.log("Use Up and Down arrows for CW and CCW respectively. Space to stop."); var servo = new five.Servo.Continuous(10); process.stdin.resume(); process.stdin.setEncoding("utf8"); process.stdin.setRawMode(true); 

As chamadas process.stdin garantem que todos os dados que recebemos do teclado sejam utilizáveis ​​no próximo bloco de código. Agora queremos “escutar” as teclas digitadas e usá-las para mover nosso servo no sentido horário (CW), anti-horário (CCW), ou parar em seus trilhos.

 process.stdin.on("keypress", function(ch, key) { if (!key) { // if no key is pressed, return ie do nothing. return; } if (key.name === "q") { console.log("Quitting"); process.exit(); } else if (key.name === "up") { console.log("CW"); servo.cw(); } else if (key.name === "down") { console.log("CCW"); servo.ccw(); } else if (key.name === "space") { console.log("Stopping"); servo.stop(); } }); }); 

Certifique-se de incluir todos os colchetes de fechamento na parte inferior aqui e refira-se ao bloco inteiro de código como vinculado acima se você receber algum erro. Salve este script e abra o Prompt de Comando.

Acenando Olá!

Agora navegue até o diretório em que você salvou seu script e execute-o digitando:

 node test.js 

O programa deve iniciar imediatamente com informações sobre o quadro, antes de fornecer as instruções contidas no código. Tente pressionar as teclas de seta para cima e para baixo e a barra de espaço e Q para sair. A tela deve ficar assim:

como controlar o arduino com javascript

E estando tudo bem, o servo deveria estar dançando com as suas teclas! Olhe aquela pequena onda besta!

Origens humildes

Apesar de assumir um projeto um pouco mais ambicioso do que o usual tutorial de LED para iniciantes, quase nem sequer tocamos na extensão do que pode ser feito com placas Arduino e microcontroladores similares.

Usuários experientes de JavaScript devem achar o pacote Johnny-Five intuitivo para trabalhar. A biblioteca também é instalável no Raspberry Pi nativamente, tornando-se o pacote perfeito para os criadores de robôs iniciantes.

A grande coisa sobre esta biblioteca é que, embora seja projetado com robôs em mente, os mesmos dados de entrada e saída podem ser usados ​​para criar configurações de casa inteligente DIY DIY Smart Home Sensors com Arduino, MySensors e OpenHAB DIY Smart Home Sensors com Arduino, MySensors e os sensores home da OpenHAB Smart custam uma quantia ridícula de dinheiro. Fiação de uma casa inteira é o domínio daqueles com quantidades tolas de renda disponível. Vamos construir nosso próprio com MySensors. Leia mais e até mesmo sistemas de segurança fabricados em casa DIY Smart Lock com Arduino e RFID DIY Smart Lock com Arduino e RFID Veja como construir um bloqueio inteligente simples baseado em RFID usando um Arduino como backbone e alguns componentes baratos. Consulte Mais informação .

Comunicar com microcontroladores desta maneira é uma ótima introdução ao mundo do hardware DIY sem ter que dedicar tempo para aprender uma linguagem de programação totalmente nova. Divirta-se lá e, se você construir um robô matador, lembre-se de como o ajudamos nos primeiros dias.

In this article