Criando seu primeiro programa: Ao abrir o software, ele já está pronto para começar a programar: Após inserir funções, os códigos aparecerão na lateral esquerda: Assim que seu programa estiver pronto, clique em “Finish and Save”, você verá a seguinte tela e a confirmação: Preencha os dados sobre seu programa e clique em “Save”, você verá outra confirmação. Aguarde o reinicio do software, clique em list my programs: Podemos ver que o programa que fiz neste exemplo, foi processado com sucesso, basta selecionar o número de ID do seu programa, e clicar em Download Program. Agora, vamos transferir para o microcontrolador, clique em Upload: Selecione o caminho do Hex file: “C:\pp_programmer2\program\program.hex” Em device selecione o modelo da sua placa, a porta COM da mesma e clique em Upload. Aguarde até o termino do upload e pronto, seu programa já está carregado no microcontrolador. Você sempre poderá baixar novamente os programas que já fez, basta acessar o menu “list my programs” baixa-lo e transferir para o microcontrolador. Baixando programas públicos: Clique em public sketchs: Selecione o programa que quiser, clique em download hex e faça o processo de upload já explicado. Aprendendo as Funções: Vamos começar pelo menu superior: New: inicia um novo projeto em branco Upload: Abre a janela para transferência do seu programa para o microcontrolador o o o o o Hex file: Caminho do arquivo por padrão: “C:\pp_programmer2\program\program.hex” Device: Modelo da sua placa, para a 3.6, selecione Duemilanove COM port: Porta em que seu microcontrolador está conectado. Baud rate: Taxa de transferência deixe o padrão da sua placa. Upload: Transfere o arquivo. Edit Label: Abre a janela para inserção de título e descrição do seu programa o Program Title: título do seu programa. o Functionality description: Descrição do seu programa. o Input and Output pins: Descrição das portas usadas no projeto o Board Type: Placa utilizada. List My Programs: Abre uma lista com todos os seus programas processados o o Download Program: Baixa o arquivo processado Download Programmers: Baixa o código fonte sem processar. View Programmers: Abre um documento de texto com o código do seu programa Setup Info: Abre a janela que informa as configurações e definições do programa Login: Permite fazer Login usando sua conta, Logout e trocar usuário. Exit: Encerra o programa. Vamos agora para as funções de programação: Output: Selecione a porta e o estado. Wait: Define o tempo de espera. Jump: Retorna para a linha de código selecionada. Exemplo de código com output, wait e jump: Read Sensor: Faz a leitura de um sensor. Exemplo do código de leitura de um sensor digital e um analógico respectivamente. PWM: Permite controlar motores através de PWM, com valores de 0 a 255. Call sub routine: Faz a chamada da rotina (função) especificada Insert c++ code: Permite a inserção de trechos de código em c++ Expression: Permite a inserção de uma expressão usando uma variável. Println: Função para exibir valores no serial monitor, sendo possível adicionar um prefixo, e uma variável ou sensor. Exemplo de código que exibe o resultado da leitura no monitor. Obs.: para alguns comandos, como o ultrassom, usamos o LM35 para uma linha especial,999, para que a leitura e conversão seja repetida. If Sensor: o Start Commands block: o Abre uma janela com opções para a criação de uma estrutura condicional baseada no resultado obtido de uma leitura de sensores (é necessário ler o sensor[Read Sensor] antes de fazer uma comparação de valores). Após abrir o bloco, insira o comando a ser feito para a condição definida. End Commands Block: Encerra o bloco de comandos. Exemplo de código com if sensor: O código acima verifica dois sensores e liga as portas, caso a condição(ligado) seja antendida. Também podemos ver o else, que desliga as portas, quando o sensor está desligado. If Variable: o Start Commands block: Abre uma janela com opções para a criação de uma estrutura condicional baseada no valor de variáveis. Após abrir o bloco, insira o comando a ser feito para a condição definida. (Variáveis fixas: ir, temperatura, distancia). o End Commands Block: Encerra o bloco de comandos. Exemplo de código: Podemos ver no código acima, um exemplo de uso da variável temperatura, criada automaticamente pela função “Include LM35” explicada adiante, neste caso, quando a temperatura é superior a 36 graus Celsius, a porta 9 é ligada. Também temos o uso do else, para desliga-la. Else: Else é a estrutura condicional “se não”, pode ser usada em ambos os casos (if variable e if sensor). o Start Commands Block: Inicia o bloco de comandos para o else. o End Commands Block: Finaliza o bloco de comandos para o else. Repeat Commands Block: o Start Commands Block: Abre um bloco de comandos que será repetido pelo número escolhido. o End Commands Block: Encerra o bloco de comandos. Include IR: Faz a inclusão e leitura de um sensor IR, a variável que armazena o resultado se chama ir. Include Servo: Faz a inclusão do servo motor na porta indicada. Output Servo: Abre a janela de configuração do movimento do servo. Exemplo de código que movimenta o Servo motor. . Include LM35: Faz a inclusão de um sensor do tipo LM35, faz a leitura, e retorna o valor em graus Celsius para a variável fixa temperatura. Exemplo de código do LM35, em que usamos a variável “temperatura” acima(sessão if variable). Ultrassom: Faz a inclusão de um sensor ultrassônico de distância, nas portas especificadas. O resultado da leitura é dado em cm e pode ser obtido com o uso da variável “distancia”; Exemplo de código: Este código liga a porta 9 quando a distancia medida é inferior a 30 cm. Obs.: para alguns comandos, como o ultrassom, usamos o jump para uma linha especial,999, para que a leitura e conversão seja repetida. Tools : A função tools permite criar uma sub rotina e salva-la. o Sub-builder: o Janela para inserção do nome da sub-rotina. End: Janela para descrição da rotina criada, e seleção de salvar como pública ou privada. Email Config: Configura o e-mail vinculado a sua conta para envio/recebimento através da sua placa. Send Mail: Envia um email para o endereço configurado, com a mensagem e assunto especificados. Mail Server: Ferramenta que permite o microcontrolador enviar e-mails Configure a porta do microcontrolador, e clique em connect, e quando a condição for atendida, ele enviará um email. Exemplo de código: Neste exemplo, um email é enviado quando apertamos o botão. Para se conectar ao mail server, clique em include serial port, e depois abra o mail server, e pronto. O objetivo deste tutorial é criar um projeto em que: O circuito, conectado em um computador com conexão com a internet, envia um e-mail assim que a lâmpada do cômodo for ligado. Usaremos um sensor de luz para fazer essa identificação. Para configurar o software, devemos primeiramente logar nele clicando em “Change User” (1) e então inserir o login e a senha do usuário (2) e então clicar em “Submit” (3). 1 2 3 Começando a programação, primeiramente devemos fazer a leitura do sensor de luz. Para isso clicaremos em “Read sensor” (1), selecionaremos a porta analógica 14 (2) e clicaremos em ok (3). 2 1 3 Com isso iremos inserir a seguinte linha na programação. Após isso criaremos um if para fazer a avaliação do valor que lemos. Após alguns testes, verificamos que na presença de luz o sensor retorna um valor próximo de 60, e na ausência de luz o sensor retorna 180. Portanto, tomaremos como medida o valor médio 120. Ou seja; quando o valor do sensor de luz for maior do que 120, o programa irá considerar que há luz e; quando for menor do que 120, que não há luz. 1 4 2 5 3 Com isso, adicionaremos a seguinte linha á programação. Após isso iremos colocar aquilo que irá dentro do “if”. Primeiramente clicaremos em “Send E-mai” que irá colocar o comando de envio de e-mail. 1 Com isso adicionaremos a seguinte linha á programação: Já que precisaremos que seja enviado apenas um e-mail, para evitar um envio constante de e-mails, iremos colocar um delay generoso de 300.000 milisegundos (5 minutos). 1 3 2 Adicionaremos então a seguinte linha: Agora podemos fechar o “if”. Clicaremos então em “End Commands Block” da janela “IF Sensor” 1 Com isso adicionaremos a seguinte linha á programação: Com isso fechamos a sequencia do if. Para que possamos criar um Loop que faça o programa enviar um novo e-mail ou simplesmente verificar o Sensor de luz novamente, daremos um comando de Jump. Clicaremos então em “Jump” e mandaremos a programação voltar ao inicio na linha 0001. 2 1 Teremos então no final, as seguintes linhas de código: 3 Agora devemos salvar a programação antes de executá-la. Clicaremos então em “Edit Label” para definir a descrição do programa que iremos salvar como: Título do programa; descrição e para qual tipo de placa iremos executar nosso programa. 1 2 3 6 4 5 Após isso clicamos em “finish and save local”. 1 2 E depois em “Save in the Cloud”: 1 2 Agora, depois de o nosso programa ser processado, iremos baixar ele. Clicaremos então em “List my Programs” (1), selecionaremos o programa que fizemos (2) e depois faremos o download do programa clicando em “Download Program” (3). Preste atenção no Status do seu programa: um status 0 significa que o programa ainda não foi processado; um status 2 significa que ele foi processado com sucesso e um status 9 significa que foi processado mas ocorreu um erro no programa feito que impediu o processamento, nesse caso o seu programa deve ser refeito. 1 2 3 Agora faremos o upload da programação para a nossa placa. Para isso iremos em upload (1), localize a pasta pp_programmer2 (a pasta normalmente é criada automaticamente na instalação do programa na pasta c:), e escolha o arquivo “program.hex” (2). Antes do upload se certifique que a placa correspondente foi selecionada (3) e que a porta COM da placa tambem foi selecionada corretamente (4). Não é necessário mudar a taxa de transferência (Baud Rate)(??) 1 Ao clicar em Upload, na parte de baixo da janela aparecerá a mensagem que o programa está sendo baixado e depois ele informará a quantidade de dados baixada para a placa. Agora vamos configurar o programa para que ele possa enviar os e-mails. Para isso, selecione o botão “Include Serial Port” (a cor do botão irá mudar de vermelho para verde). 1 Em “E mail Config” (1), defina o destinatário do e mail (2), o titulo da mensagem(3), o corpo da mensagem (4) e clique em “Change” (5). 6 2 4 1 3 5 Agora devemos estabelecer a comunicação com a placa para que o e-mail possa ser enviado quando a placa mandar. Para isso clicaremos em Mail Server (1), configuramos em qual porta COM a placa está (2) e a velocidade de comunicação (3). Após isso clicaremos em “Connect” (4). 2 3 1 Com isso o computador está pronto para enviar o e-mail assim que a placa mandar. 4 Antes de testar o programa, reinicie a placa arduino apertando o botão Reset no meio da placa. Botão de Reset O funcionamento do protoboard é o seguinte: - Em [1], os 16 pinos na horizontal estão interligados, sendo então duas fileiras de 16 pinos. - Em [2], os 6 pinos na vertical estão interligados, sendo então 16 fileiras de 6 pinos. 1 2 Primeiramente vamos conectar os polos positivo e negativo da placa e também o fio da entrada analógica 14 (A0) no pequeno protoboard. 5V GND A0 GND 5V A0 Em seguida ligaremos o sensor no protoboard. Primeiramente ligaremos o positivo e negativo do sensor no protoboard na mesma ordem dos dois GND e 5V que colocamos, em seguida ligaremos o sinal (fio branco) na mesma linha do fio que colocamos na entrada analógica A0 (que corresponde á entrada 14 que criamos no programa). 5V GND A0 O objetivo deste projeto é, através de um controle remoto, acionar e desligar uma lâmpada ligada na rede elétrica. Assim que aprendermos a ligar a lâmpada por meio do controle remoto, poderemos ligar qualquer coisa por meio de um controle remoto ou um celular com bluetooth como um ar condicionado, um ventilador ou a trava de uma porta. Antes de tudo, devemos tomar alguns cuidados: Misturar o tipo de energia usado no arduino e o usado na rede elétrica é perigoso, além de ter o risco de danificar a placa arduino pode acarretar também ferimentos. Para evitarmos isso nós utilizaremos um relê de forma a evitar que a tensão da rede elétrica possa entrar em contato com a tensão utilizada na placa arduino e procure manejar a energia que vem da rede elétrica com cuidado, peça orientações se necessário. A programação irá funcionar da seguinte forma: o botão “1” irá servir para ligar a lâmpada; o botão “2” irá servir para desligar a lâmpada e iremos utilizar a saída 4 para acionar a bobina do relê. Para evitar que possa ocorrer problemas com os comandos, iremos inserir atrasos após os comandos. Primeiramente quando vamos usar o controle remoto, devemos acionar o botão “Include IR” que irá mudar de vermelho para verde. Quando fazemos isso automaticamente criamos uma variável chamada “ir”. Assim, sempre que acionarmos algum botão do controle remoto, o programa irá atribuir um número á variável “ir”. 1 Com isso adicionaremos a seguinte linha na programação. Após isso, devemos fazer a primeira leitura da variável que fará a lâmpada ligar. Primeiramente então clicaremos em “Start Commands Block” no quadrado do “IF Variable”. Depois vamos configurar o “if” da seguinte forma: se “ir” for igual a 1. 1 2 4 Com isso adicionaremos a seguinte linha na programação. 3 Após isso vamos configurar o que irá acontecer dentro do “if”. Primeiramente devemos fazer a saída que aciona o relê. Iremos então em “output” e mandaremos a saída 4 ligar. 1 2 3 4 Com isso adicionaremos a seguinte linha na programação Agora daremos um delay para dar um tempo para o comando ser executado. Colocaremos um pequeno delay de 200ms (milissegundos). 1 2 Com isso adicionaremos a seguinte linha na programação 3 Agora podemos fechar esse “if” que liga a lâmpada. Para isso clicaremos em “End Commands Block” dentro do bloco “IF Variable” para fechar o “if”. 1 Com isso adicionaremos a seguinte linha na programação. Agora devemos começar a fazer o “if” que irá servir para desligar a lâmpada. Clicaremos então em “Start Command Block” dentro do bloco “IF Variable”. Vamos configurar ele para, quando a variável “ir” for igual a 2. 1 3 4 2 5 Adicionaremos então a seguinte linha na programação. Agora vamos começar a programar dentro do “if” que fará a lâmpada desligar. Para isso clicaremos em “Output” e mandaremos a saída 4 desligar. 1 2 3 Com isso adicionaremos a seguinte linha na programação. 4 Agora colocaremos outro delay para dar um tempo para executar o comando. Clicaremos então em “Wait” e colocaremos outro tempo de 200ms (milissegundos). 1 Com isso adicionaremos a seguinte linha na programação. E agora podemos fechar este segundo “if”. Clicaremos então em “End Commands Block” no bloco “IF Variable”. 1 Adicionaremos então a seguinte linha na programação. Depois de termos terminado os dois “ifs” faremos ele voltar para o começo. Para isso clicaremos em “Jump” e faremos o programa pular para a primeira linha. 1 2 3 Adicionaremos então a seguinte linha na programação. Agora devemos salvar a programação antes de executá-la. Clicaremos então em “Edit Label” para definir a descrição do programa que iremos salvar como: Título do programa; descrição e para qual tipo de placa iremos executar nosso programa. 1 2 3 4 4 5 Após isso clicamos em “finish and save local”. 1 2 E depois em “Save in the Cloud”: 1 2 Agora, depois de o nosso programa ser processado, iremos baixar ele. Clicaremos então em “List my Programs” (1), selecionaremos o programa que fizemos (2) e depois faremos o download do programa clicando em “Download Program” (3). Preste atenção no Status do seu programa: um status 0 significa que o programa ainda não foi processado; um status 2 significa que ele foi processado com sucesso e um status 9 significa que foi processado mas ocorreu um erro no programa feito que impediu o processamento, nesse caso o seu programa deve ser refeito. 1 2 3 Agora faremos o upload da programação para a nossa placa. Para isso iremos em upload (1), localize a pasta pp_programmer2 (a pasta normalmente é criada automaticamente na instalação do programa na pasta c:), e escolha o arquivo “program.hex” (2). Antes do upload se certifique que a placa correspondente foi selecionada (3) e que a porta COM da placa tambem foi selecionada corretamente (4). Não é necessário mudar a taxa de transferência (Baud Rate)(??) 1 Ao clicar em Upload, na parte de baixo da janela aparecerá a mensagem que o programa está sendo baixado e depois ele informará a quantidade de dados baixada para a placa. Para a parte elétrica do projeto, devemos modificar uma tomada (que colocaremos uma lâmpada de 5W) para que ele possa se conectar com o relê. Em seguida, ligaremos o sensor de infravermelho na placa arduino. O GND do sensor colocaremos em um GND da placa, o 5V colocaremos em um 5V da placa e o sinal iremos colocar na entrada analógica A5 da placa arduino Em seguida ligaremos o relê na placa arduino. Para isso, utilizando dois cabos ligaremos: um GND da placa arduino e a saída 4 aos terminais 6V do relê. Não é preciso se preocupar com a polaridade. Por fim ligaremos a lâmpada que modificamos nos terminais “COM” e “NA” (Normalmente Aberto) do relê. Não é preciso se preocupar com a polaridade. Fotos do sistema funcionando. Esquema elétrico do projeto O objetivo deste projeto será: a partir de um comando enviado da internet, o computador receber o comando e a partir daí, o computador enviar um comando via Bluetooth para a placa arduino que fará acionar ou desliguar uma saída. O programa terá capacidade de acionar e desativar até 4 dispositivos. O funcionamento da função será o seguinte: toda vez que clicarmos em um botão do site, o programa irá identificar isso e irá atribuir um valor a uma variável predefinida x e então, usando “ifs” acionar as saídas. Testaremos a programação fazendo ligar uma lâmpada ligada na rede elétrica. Antes de tudo, devemos tomar alguns cuidados: Misturar o tipo de energia usado no arduino e o usado na rede elétrica é perigoso, além de ter o risco de danificar a placa arduino pode acarretar também ferimentos. Para evitarmos isso nós utilizaremos um relê de forma a evitar que a tensão da rede elétrica possa entrar em contato com a tensão utilizada na placa arduino e procure manejar a energia que vem da rede elétrica com cuidado, peça orientações se necessário. No menu superior, no botão “Setup Info”, teremos dispostos no quadrado “Web Commands” os valores que a variável x pode receber. Primeiramente faremos o login no programa. Clicaremos então em “Change User” e colocaremos o login e a senha do usuário. Como vamos trabalhar com a comunicação entre a placa arduino e o computador, devemos clicar em “Include Serial Port”. A cor do botão irá mudar de vermelho para verde. Com isso iremos adicionar a seguinte linha na programação Agora para podermos habilitar o programa a receber comandos da internet clicaremos no botão “Receive Web Comands”. Com isso adicionaremos a seguinte linha na programação: Agora começaremos a definir as funções dos botões. Iremos definir que quando o valor 1 for colocada na variável x a saída 4 será ligada e quando for 2 a saída 4 será desligada. Começaremos então um “if” que verificará se x for igual a 1. Clicaremos então no “Starts Commands Block” no quadro “IF Variable” e faremos essa verificação. Com isso adicionaremos a seguinte linha na programação Agora acionaremos a saída 4, para isso clicaremos em “Output” e mandaremos a saída 4 ligar. Adicionaremos então a seguinte linha na programação. Com o primeiro “if” definido, fecharemos ele clicando em “Ends Commands Block” no quadro “IF Variable” Adicionaremos então a seguinte linha na programação. Agora começaremos o “if” para fazer a saída 4 desligar. Iremos então iniciar um “if” para fazer essa verificar quando a variável x for igual a 2. Clicaremos então no “Starts Commands Blocck” no quadro “IF Variable” e faremos essa verificação. Adicionaremos então a seguinte linha na programação: Agora mandaremos a saída 4 desligar, para isso clicaremos em “Output” e mandaremos a saída 4 desligar. Adicionaremos então a seguinte linha na programação: Agora devemos fechar o segundo if. Clicaremos então em “Ends Commands Block” no quadro “IF Variable”. Adicionaremos então a seguinte linha na programação. Para que possamos fazer um Loop para que esses dois ifs sejam verificados constantemente, usaremos o comando Jump para ir para a linha 9999. Adicionaremos a seguinte linha na programação: Agora devemos salvar a programação antes de executá-la. Clicaremos então em “Edit Label” para definir a descrição do programa que iremos salvar como: Título do programa; descrição e para qual tipo de placa iremos executar nosso programa. Após isso clicamos em “finish and save local”. A cor do botão irá mudar de verde para vermelho. E depois em “Save in the Cloud”: Agora, depois de o nosso programa ser processado, iremos baixar ele. Clicaremos então em “List my Programs” (1), selecionaremos o programa que fizemos (2) e depois faremos o download do programa clicando em “Download Program” (3). Preste atenção no Status do seu programa: um status 0 significa que o programa ainda não foi processado; um status 2 significa que ele foi processado com sucesso e um status 9 significa que foi processado mas ocorreu um erro no programa feito que impediu o processamento, nesse caso o seu programa deve ser refeito. Agora faremos o upload da programação para a nossa placa. Para isso iremos em upload (1), localize a pasta pp_programmer2 (a pasta normalmente é criada automaticamente na instalação do programa na pasta c:), e escolha o arquivo “program.hex” (2). Antes do upload se certifique que a placa correspondente foi selecionada (3) e que a porta COM da placa tambem foi selecionada corretamente (4). Não é necessário mudar a taxa de transferência (Baud Rate)(??) Ao clicar em Upload, na parte de baixo da janela aparecerá a mensagem que o programa está sendo baixado e depois ele informará a quantidade de dados baixada para a placa. Para a parte elétrica do projeto, devemos modificar uma tomada (que colocaremos uma lâmpada de 5W) para que ele possa se conectar com o relê. Em seguida ligaremos o relê na placa arduino. Para isso, utilizando dois cabos ligaremos: um GND da placa arduino e a saída 4 aos terminais 6V do relê. Não é preciso se preocupar com a polaridade. Por fim ligaremos a lâmpada que modificamos nos terminais “COM” e “NA” (Normalmente Aberto) do relê. Não é preciso se preocupar com a polaridade. Agora indo no site nós conseguiremos acionar a saída da placa arduino Fotos do projeto funcionando: Esquema elétrico do projeto: