Você está na página 1de 2

ROTEIRO DE ATIVIDADE PRÁTICA

PROGRAMAÇÃO E CONTROLE
FLUXOS DE PROGRAMAÇÃO EM ARDUINO (FLOW)

ATENÇÃO: Os fluxos (flow) devem ser criados em abas separadas. Será penalizado em -1 ponto
por cada exercício, as provas enviadas que não apresentarem as respostas em sua respectiva
aba de fluxo. Os fluxos devem ser enviados em um único arquivo contendo todas os fluxos de
todas as abas do node-red (opção All flows ao exportar). Os fluxos devem ser exportados para
um editor de texto plano (ex.: notepad++) e salvos como <NUM_TIA>.json. Lembre-se que
pelo menos 1 nó deve estar selecionado na tela para que a opção de exportação seja habilitada
pelo node-red.

1. (2,0) Construa um fluxo, denominado Fluxo M, no Node-Red que permita o controle de


um servo motor conectado ao Arduino pelo pino Digital 5. O controle deve ser feito
enviando o valor numérico da posição via plugin inject, diretamente para o nó do tipo
Arduino out. Não é necessário o uso da placa física nesta etapa, apenas a criação do Fluxo
e correta configuração dos nós, tipos de portas e tipos de dados no node-red.

2. (1,0) Construa um fluxo, denominado Fluxo N, que permita desligar e ligar o led interno
(pino Digital 13). Os valores de true e false devem ser enviados separadamente via nó do
tipo inject para o nó Arduino out. Seu fluxo deve utilizar o plugin Arduino out disponível
na palheta de nós. Não é necessário o uso da placa física nesta etapa, apenas a criação do
Fluxo e sua correta configuração.

3. (2,0) Construa um fluxo, denominado Fluxo O para que a posição do servo motor seja
armazenada no tópico <NUMERO_TIA>\servo (ex.: 123456\servo), o estado do rele seja
armazenado no tópico <NUMERO_TIA>\rele. Para cada tópico no broker configure os nós
MQTT out com o nome de cada tópico separadamente. A entrada de valores deve ser feita
via nós do tipo inject. Utilize um nó de entrada MQTT in ligado a um nó Arduino out para
acionar o rele no pino Digital 6 e faça o mesmo para configurar o servo no pino Digital 7.
Utilize um único nó Debug conectado a um único tópico com uma consulta MQTT através
de um nó MQTT in para apresentar os valores de TODOS os tópicos via consulta MQTT
(não é o mesmo que ligar todos em um único debug). O broker MQTT deve ser configurado
para o broker.mqtt-dashboard.com:1883. Não é necessário o uso da placa física do
Arduino, apenas a criação do Fluxo e a configuração correta (tipos de dados, tipos de
entrada, saída etc.) de todos os nós. Estes fatores serão avaliados em sua resposta.

4. (2,0) Crie um fluxo denominado Fluxo P que utilize os módulos dashboard para criar uma
interface de monitoramento dos tópicos MQTT criados no exercício 3, representando o
servo motor e o rele. Não esqueça de configurar o Group e o Tab para cada plugin
dashboard, pois sem isso os controles não estarão visíveis. Utilize o módulo switch para
controlar o rele via MQTT, o módulo gauge para monitorar a posição do servo via MQTT e
o módulo slider para modificar a posição do servo motor via MQTT. Os pinos do Arduino
permanecem os mesmos da questão 3. Atenção: todos os comandos enviados para o
Arduino devem passar pelos tópicos criados no broker MQTT, assim, nenhum dispositivo
deve ser acionado diretamente neste exercício. Não é necessário o uso da placa física,
apenas a criação do Fluxo. O acionamento direto do dispositivo zera o valor da nota deste
exercício. A não configuração dos nós dashboard implica em nota 0 nesta questão.

1
5. (3,0) O Servo motor é um dispositivo bastante utilizado em diversos projetos. Nele, o
motor pode girar de 0 a 180 graus e, em alguns modelos, de 0 a 360 graus. Em nossas
aulas, utilizamos o Micro servo 5G, que funciona conforme a Fig. 1.

Figura 1. PWM para o Micro Servo 9G. Fonte: www.engineersgarage.com


Neste exercício, um código fonte disponibilizado no moodle (arquivo servo.ino) tem
por objetivo controlar o Micro-Servo 9G utilizando um potenciômetro ligado a
entrada A0 no Arduino UNO. Entretanto o programa neste arquivo está incompleto.
Corrija o arquivo servo.ino para que funcione corretamente, ou seja, a posição do
servo mude de X a Y graus de acordo com a movimentação do potenciômetro (de
mínimo para máximo). Não deve ser utilizada nenhuma função ou biblioteca a mais
do que as que já estão presentes no código. É proibido utilizar a biblioteca servo.h
neste exercício.
X = menor digito do seu TIA.
Y = maior digito do seu TIA x 20
Ex: TIA= 1156768 X=1, Y=8x20=160

Monte o circuito para acionamento do servo utilizando um potenciômetro e envie o


link compartilhável do projeto público, juntamente com uma captura da imagem da
montagem e insira o código fonte com a sua correção na sua resposta.

Ao terminar os exercícios de 1 a 4, salve os fluxos em um arquivo <NUM_TIA>.json e os


envie no moodle juntamente com o PDF contendo as respostas para os exercícios.
Verifique se os seus arquivos estão válidos antes de enviar. Caso o arquivo .json estiver
corrompido ou inválido a nota nos exercícios que dependem dele será 0. O mesmo se
aplica as respostas enviadas para o exercício 5, o link compartilhável do Tinkercad e o
arquivo exercício_servo.ino corrigido.

Você também pode gostar