Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução ao Arduíno: Projetos e Aplicativos, Notas de estudo de Automação

Informações sobre o projeto 2 a projeto 6 do curso introdução ao arduíno, incluindo a utilização de sinais analógicos (pwm), motores dc, servomotores, mandando e recebendo strings, e orientação a objeto. O texto também menciona competições de robótica e simulação que o ger participa, como a competição brasileira de robótica e the freescale cup. Arduíno é descrito como uma plataforma acessível e poderosa para desenvolver projetos de eletrônica e robótica, com a possibilidade de utilizar vários tipos de sensores e shields.

Tipologia: Notas de estudo

2021

Compartilhado em 06/04/2021

lucas-c15
lucas-c15 🇧🇷

3 documentos

1 / 27

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Introdução
ao ArdUÍno
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Pré-visualização parcial do texto

Baixe Introdução ao Arduíno: Projetos e Aplicativos e outras Notas de estudo em PDF para Automação, somente na Docsity!

Introdução

ao ArdUÍno

Índice

 Sobre o Grupo

 Introdução

 A placa

 Protoboard

 Projeto 0: “Hello World”

 Estrutura de um Código

 Projeto 1: Piscar LED

 Projeto 2: Push-Button

 Sinais Analogicos (PWM)

 Projeto 3: PWM com Motor DC

 Projeto 4: Servomotores

 Entradas Analógicas e Sensores

 Projeto 5: Sensores

 Projeto 6: Mandando e recebendo Strings

 Extra: Orientação a Objeto

Introdução

O que é?

Arduíno é uma plataforma open-source de desenvolvimento que consiste em uma placa com microcontrolador e uma IDE (Integrated Development Environment), o software que permite ao usuário desenvolver o código usado pela placa. O grande diferencial do Arduíno é permitir a programação de um micro controlador usando uma linguagem de alto nível, possibilitando que iniciantes e leigos em eletrônica e programação possam desenvolver projetos relativamente complexos.

História

O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, mais especificamente no Interaction Design Institute Ivrea. A equipe de fundadores era composta por Hernando Barragan, Massimo Banzi, David Cuartielles, Dave Mellis, Gianluca Marino, e Nicholas Zambetti. Na época, os estudantes do instituto utilizavam sistemas de prototipagem considerados caros. Como alternativa a isso, surgiu o Arduíno. Tal nome veio de um bar em Ivrea, onde alguns dos fundadores do projeto se encontravam.

Seu sucesso foi sinalizado com o recebimento de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica , além da marca de mais de 50.000 placas vendidas até outubro de 2008.

Comunidade

A comunidade que estuda e utiliza Arduíno é bem numerosa e acessível. É possível encontrar uma grande variedade de projetos e tutoriais através de sites, fóruns online e livros.

No próprio site do Arduíno existem tutoriais que mostram diversas funcionalidades da placa e como desenvolver projetos com ela. (https://www.Arduíno.cc/en/Tutorial/HomePage)

Além disso, com o Arduíno, também é possível utilizar vários tipos de sensores e shields (placas de expansão de hardware) de maneira rápida e simples. Esses dispositivos são extremamente úteis em diversas aplicações eletrônicas.

Exemplos

Devido a sua grande comunidade o Arduíno se tornou extremamente popular nos circulos DIY (Do it yourself), vários exemplos de projetos podem ser encontrados na internet:

Um exemplo clássico da robótica é o robô seguidor de linha, que utilizando sensores de luz consegue percorrer uma pista desenhada no chão. Um projeto desse tipo utilizando Arduíno pode ser visto em http://goo.gl/ePkyDJ.

O Arduíno também pode ser utilizado em projetos mais complexos, como para transformar uma bateria utilizada em games (como Guitar Hero) em uma bateria eletrônica comum. (Veja o projeto em http://goo.gl/5kZAXK).

Além disso, existem outros projetos interessantes como um braço robótico controlado via Bluetooth (http://goo.gl/jIhZCc) ou até um quadricóptero (http://goo.gl/zSHlyF).

Assim, há uma grande variedade de projetos divertidos e úteis que podem de ser trabalhados com Arduíno. Cada um tem seu nível de complexidade e muitos não são tão fáceis de serem desenvolvidos. Mas o que não se pode negar é que o Arduíno é uma plataforma acessível e poderosa.

Sites com tutoriais de projetos com Arduíno (em inglês):  http://playground.Arduíno.cc/Projects/Ideas  www.instructables.com/id/Arduíno-Projects  http://duino4projects.com

Portas

Esteja atento a esta imagem para realizar os exercícios propostos. Perceba no canto esquerdo inferior os pinos analógicos (A0 até A5) e no canto direito os pinos digitais (1 até 12). Cada um tem um respectivo número, o qual você irá se referir em seu código para ativar aquele determinado pino. No canto esquerdo superior têm-se os pinos de tensão fixa (GND é o pino conectado ao terra, ou seja, 0V).

Referências: https://www.arduino.cc/en/Main/arduinoBoardUno

Entradas Analógicas e Sensores

Protoboard

Antes de começar a programar a placa, é necessário aprender a usar uma ferramenta extremamente util na prototipagem de circuitos: a Protoboard.

A protoboard é uma placa com vários furos para fazer conexões entre componentes de um circuito elétrico, sendo, normalmente, usada para fazer testes com circuitos pequenos devido à grande facilidade de manuseio. O modelo utilizado pode ser visualizado na imagem abaixo.

A placa é espelhada e tem duas partes: a central, para conexões entre os componentes elétricos, e a periférica, geralmente usada para conectar a alimentação e a terra. Na parte central os furos das colunas são conectados entre si, mas não se conectam com outras linhas. Já na parte periférica os furos das linhas são conectados entre si e não se conectam com os furos das colunas. Como pode ser visto na imagem abaixo.

Para conectar um resistor, por exemplo, basta colocar os seus dois terminais em colunas diferentes. Se uma ligação de dois resistores em série for necessária, basta conectar os terminais de um resistor em colunas diferentes e os terminais do outros resistor em uma das colunas já utilizadas e em outra livre. No caso de uma ligação em paralelo, é necessário ligar as pontas de cada resistor nas mesmas colunas. Uma imagem exemplificando as conexões pode ser vista a seguir.

Caso o LED não acenda, certifique-se ele esta corretamente conectado. O LED, L ight E mitting D iode, como o próprio nome já diz, é um diodo, ou seja, possui uma polaridade correta. Você deve conectar a alimentação do seu circuito (5V) ao ânodo do LED (caracterizado pela perna maior) e o terra do circuito (GND) ao catódo do LED.

Desafio Adicional:

Usando apenas duas portas do Arduíno (5V e GND), conecte dois LEDs em série, em paralelo com outros dois LEDs em série. Tente fazer este desafio com apenas dois resistores e três jumpers.

Estrutura básica de um código

Uma das facilidades propostas pelo Arduíno é uma IDE simples e fácil de usar. Ela possui vários exemplos prontos de código, um monitor serial e uma ferramenta que simplifica a adição de novas bibliotecas.

Antes de começarmos a programar é necessário que nos certifiquemos que a IDE esta devidamente configurada para a nossa placa e para a entrada USB que estamos utilizando.

Para isso vá em: Tools > Board e se certifique de que a opção Arduino Uno esteja selecionada. Depois vá em Tools > Serial Port e se certifique de que a porta correta está selecionada (depende do seu computador).

Agora podemos começar a programar. Provavelmente o maior atrativo do Arduíno é que ele permite a programação de um micro-controlador com linguagem de alto nível. Neste caso, utilizaremos C++ com uma série de bibliotecas prontas oferecidas. Mais adiante, iremos abordar um pouco a questão de Orientação a Objeto em um projeto do Arduíno.

Projeto 1: Piscar LED

Iremos escrever um código básico para fazer com que dois LEDs pisquem alternadamente, ou seja, quando um liga o outro desliga.

O circuito para este projeto está na imagem a seguir:

Utilizamos os pinos digitais 10 e 6. O Arduíno Uno possui 14 pinos que podem ser usados como saídas digitais, eles podem ser usados para emitir um sinal de 5V (HIGH) ou de aproximadamente 0V (LOW).

Perceba que alguns pinos possuem um ~ ao lado do número, isto será abordado mais tarde. Além disso os pinos 0 e 1 possuem ao seu lado as palavras RXD e TXD , isto é utilizado para comunicações com o protocolo serial, isto não será abordado neste curso porém tente não utilizar estas portas.

Este é o código utilizado:

Neste código utilizamos três funções importantes, são elas:

pinMode (ledPin, OUTPUT) : Define o pino ledPin, no caso do exemplo os pinos 6 e 10, como OUTPUT (saida)

digitalWrite (ledPin, HIGH/LOW) : Manda um valor alto ou baixo para uma saída digital.

delay(1000) : Pausa a execução do código, nesse caso a pausa dura 1000ms

Desafio Adicional:

Escreva um código que faça um LED piscar com diferentes frequências de forma iterativa, ou seja, o LED começa a piscar lentamente, aumenta a frequência gradualmente (até que o usuário não consiga perceber que está piscando) e diminua a frequência até a frequência inicial_._

Desafio Adicional++:

Escreva um código que faça dois LEDs piscarem com diferentes frequências de forma iterativa e alternada, ou seja, um Led começa a piscar lentamente, aumenta a frequência gradualmente (até que o usuário não consiga perceber que está piscando) e diminua a frequência até o estado inicial , o outro LED faz o contrário, começa a piscar de forma rápida e diminui a frequência até ficar constantemente ligado, depois volta a aumentar até a frequência inicial.

Este é o código do projeto:

Desafio Adicional:

Inicialmente faça o LED piscar como nos ultimos projetos, depois faça com que cada vez que o usuário apertar o botão a frequência fique mais rápida, quando ela atingir seu valor máximo, faça com que cada “aperto” do botão diminua a frequência. Não esqueça que a frequencia só deve mudar após o usuário ter soltado o botão.

Sinais Analógicos: PWM

Até agora, todos os projetos lidaram somente com valores digitais, 0V (falso) e 5V (verdadeiro) , porém em várias aplicações precisamos trabalhar com um intervalo maior de possiveis valores, para isso precisamos trabalhar com Sinais Analógicos , a imagem abaixo mostra a diferença entre os sinais.

Observe que o sinal digital (azul) só admite dois valores, enquanto o sinal analógico (vermelho) permite um número muito maior de valores. O quão preciso são os valores do sinal analógico depende do seu hardware e software. No caso do Arduíno as saídas possuem uma precisão de 8 bits [0,255], enquanto as entradas posuem uma precisão de 10 bits [0,1023].

Porém o Arduíno não possui como emitir sinais verdadeiramente analógicos, porém seus componentes permitem o uso de PWM para sanar este problema.

P ulse W idth M odulation consiste em mandar vários sinais digitais, com diferentes larguras de banda em uma frequencia relativamente alta, de forma que o valor médio do sinal em um dado instante se assemelha a um sinal analógico. A imagem abaixo ilustra o PWM.

O código do projeto não apresenta grandes complicações, porém existe uma função nova que ainda não utilizamos.

analogWrite(motorPin, i) : Envia um valor „i' para uma saída digital com suporte a PWM. O valor está contido no intervalo [0,255].

Desafio Adicional:

Use um push button para alterar a intensidade de rotação do motor, quanto mais tempo se aperta o botão mais rápido o motor gira. Ao soltar o botão a potência do motor cai gradativamente.

Projeto 4: Servomotores

Como discutido anteriormente, o Arduíno possui uma série de bibliotecas prontas que facilitam o uso de certos componentes que normalmente necessitam de um grande volume de código. Isto aliado à Programação Orientada a Objeto facilita bastante o desenvolvimento de projetos com poucas linhas de código.

Isto é ilustrado com o uso de um Servomotor. Um componente que também faz a ponte entre um sistema elétrico e um sistema mecânico, porém com uma maior precisão. Enquanto o motor DC permite que mudemos a intensidade de rotação, o servomotor permite que giremos um ângulo já definido.

Neste projeto iremos alterar o ângulo de rotação de um servo de maneira iterativa.

Segue o circuito do projeto, note que o servo possui três fios, são eles:

VCC: Fio vermelho, usado para alimentar o servo.  GND: Fio preto ou marrom, é o terra do servo  Signal: Fio normalmente amarelo, é o que iremos usar para mandar o sinal para o servo, note que o sinal deve ser mandado por uma porta com suporte a PWM.