Como fazer um botão virtual com o Arduino

Você vai aprender como fazer um botão na tela no processamento que afeta um LED física no seu Arduino. Este é um grande esboço para começar com interações entre computadores eo mundo real, e entre um Arduino e Processamento.

Você precisa:

  • Um Arduino Uno

  • um LED

A configuração é simples para esta introdução ao Arduino e Processamento, exigindo apenas um único LED.

image0.jpg

Insira a ponta longa do LED no pino 13 ea perna curta em GND. Se você não tem um LED, você pode simplesmente monitorar o LED bordo marcado L.

image1.jpg

Como configurar o código Arduino

Após o seu circuito é montado, você precisa do software apropriado usá-lo. A partir do menu Arduino, escolha Arquivo-Exemplos-04.Communication-PhysicalPixel para encontrar o esboço.

Este esboço contém código Arduino eo código de processamento relevantes para o esboço de trabalhar (ele também tem uma variação de Max 5). O código sob o código Arduino é comentado para evitar interferir com o código Arduino.

Em versões mais antigas do Arduino, os arquivos esboço terminou com .pde, que é o sufixo processamento. Isto causou confusão, então agora o sufixo Arduino é .eu não. Sufixos diferentes torná-lo possível ter o esboço Arduino e o esboço de processamento no mesmo lugar.

/ * Exemplo Pixelan física da utilização da placa Arduino para receber dados de thecomputer. Neste caso, as placas Arduino acende um LED whenit recebe o caractere 'H', e desliga o LED quando itreceives o caráter "de dados L'.Os pode ser enviado a partir do monitor serial Arduino, ou anotherprogram como Processing (ver código abaixo), flash (através de um serial-netproxy), PD, ou circuito Max / MSP.The: * LED conectado do pino digital 13 a groundcreated 2006by David A. Mellismodified 30 de agosto 2011by Tom Igoe e Scott FitzgeraldThis exemplo de código é no público domain.http: //arduino.cc/en/Tutorial/PhysicalPixel*/const int ledPin = 13- // o pino que o LED está ligado aint incomingByte- // uma variável para ler dados seriais de entrada configuração intovoid () {// inicializa comunicação serial: Serial.begin (9600) - // inicializa o pino de LED como uma saída: pinMode (ledPin, OUTPUT) -} void loop ( ) {// ver se há dados seriais de entrada: if (Serial.available ()> 0) {// lê o byte mais antiga do buffer serial: incomingByte = Serial.read() - // Se é um H maiúsculo (ASCII 72), ligar o LED:E se (IncomingByte == 'H') {DigitalWrite (ledPin, HIGH) -} // se é um L (ASCII 76) desligar o LED:E se (IncomingByte == 'EU') {DigitalWrite (ledPin, LOW) -}}}

Agora percorrer as etapas para fazer upload de seu esboço.

Com o Arduino configurado para receber uma mensagem de processamento, você precisa configurar o esboço de processamento para enviar uma mensagem de sinal em relação ao mesmo porta serial para o Arduino.

Como configurar o código Processamento

Este código está disponível dentro de marcadores de comentário de várias linhas (/ * * /) Na parte inferior do esboço Arduino PhysicalPixel. Copie o código dentro dos marcadores do comentário, colá-lo em um novo esboço de processamento, e guardá-lo com um nome apropriado, como PhysicalPixel.

 // Mouseover série // Demonstra como enviar dados para a placa Arduino I / O, a fim de // acender uma luz, se o mouse está sobre um quadrado e desligá-lo // se o mouse é not.// criado 2003-4 // com base em exemplos por Casey Reas e Hernando Barragan // modificada 30 de agosto de 2011 // by Tom Igoe // Este exemplo de código é de domínio público.importar processing.serial. * -flutuador boxX-flutuador boxY-int boxSize = 20-boolean mouseOverBox = falso-port-vazio Serial setup () {tamanho(200, 200) = -boxX largura/2.0-boxY = alturaLista /2.0-rectMode(RADIUS)-// todas as portas seriais disponíveis na saída pane.// Você terá que escolher a porta que a placa Arduino é // ligado a partir desta lista. A primeira porta na lista é // port # 0 e a terceira porta na lista é a porta # 2.println(Serial.Lista()) - // Abre a porta que a placa Arduino está ligado a (neste caso # 0) // Certifique-se para abrir a porta com a mesma velocidade Arduino está usando (9600 bps) port = novo Serial(esta, Serial.Lista() [0], 9600) -} vazio draw () {background (0) - // Teste se o cursor estiver sobre a caixaE se (mouseX > Boxx-boxSize mouseX lt; Boxx + boxSize mouseY > Quadradão-boxSize mouseY lt; Boxy + boxSize) {mouseOverBox = verdade-// Desenhar uma linha ao redor da caixa e mudar a sua cor:acidente vascular encefálico(255) -preencher(153) - // enviar um 'H' para indicar mouse está sobre o quadrado: port.write ('H') -} Else {// retorna a caixa ao seu estado inativo:acidente vascular encefálico(153) -preencher(153) - // enviar um 'L' para ligar o LED off: port.write ('EU') -mouseOverBox = falso-} // Desenha a caixarect(Boxx, quadradão, boxSize, boxSize) -}

Clique no botão Executar para executar o esboço de processamento, e um applet é exibida. O applet mostra um fundo preto com um quadrado cinza no meio, o que representa o botão virtual. Se você mover o mouse sobre o quadrado cinza (ou pixel), você pode ver que suas bordas se tornam brancas.

Se, em seguida olhar para o seu Arduino, você vê que sempre que o mouse passa sobre o quadrado cinza, o LED em sua placa ilumina, dando-lhe uma representação física do seu pixel.

image2.jpg

Se o LED não acender, verifique sua fiação:

  • Certifique-se de que você está usando o número PIN correcto.

  • Certifique-se de que as pernas de LED são a maneira correta ao redor.

  • Verifique se o seu código Arduino carregado corretamente e que o seu código de processamento não tem erros. Note que você não pode carregar, enquanto o esboço de processamento está se comunicando com o Arduino, então você precisa parar o esboço antes de carregar.

menu