quarta-feira, 31 de maio de 2017

Vídeo: Introdução ao Arduino - exemplos de programação, circuitos e uso de sensores

Se você está procurando uma introdução detalhada ao Arduino, encontrou!

O vídeo abaixo foi apresentado originalmente no Conautomática 1.0, 2015 - Congresso on-line de Automação. Nele, eu apresento uma visão geral sobre o Arduino, explicando o que é, como seu hardware está organizado e como fazer seus primeiros programas. Explico os princípios de alguns sensores e mostro exemplos de circuitos e programas para utilizá-los.

Se você tem interesse em tópicos mais avançados sobre Arduino, como comunicação RS485, Threads, LCD gráfico ou conexão com o MATLAB, por exemplo, os posts listados nesta página podem ser mais úteis.





Os programas usados nos exemplos do vídeo (e vários outros) estão disponíveis aqui:
https://github.com/felipenmartins/curso_arduino

O vídeo completo tem quase 1 hora e meia de duração. Se você quiser ir direto a um tópico específico, clique num dos links abaixo:

Sistemas Embarcados: https://youtu.be/xh0fMgWlJmk?t=2m34s

Arduino - Introdução: https://youtu.be/xh0fMgWlJmk?t=3m46s

Arduino - hardware: https://youtu.be/xh0fMgWlJmk?t=15m03s

Microcontrolador: https://youtu.be/xh0fMgWlJmk?t=21m25s

Arduino - software: https://youtu.be/xh0fMgWlJmk?t=24m35s

Exemplo 1 - Pisca-LED: https://youtu.be/xh0fMgWlJmk?t=25m34s

Sensores Digitais: https://youtu.be/xh0fMgWlJmk?t=35m40s

Exemplo 2 - Lendo sensores digitais: https://youtu.be/xh0fMgWlJmk?t=38m09s

Arduino - Programas mais complexos: https://youtu.be/xh0fMgWlJmk?t=44m26s

Sensores Analógicos: https://youtu.be/xh0fMgWlJmk?t=52m49s

Exemplo 3 - Lendo sensor de luz (LDR): https://youtu.be/xh0fMgWlJmk?t=53m59s

Outros sensores (deslocamento, temperatura, distância etc.): https://youtu.be/xh0fMgWlJmk?t=58m16s

Comunicação serial: https://youtu.be/xh0fMgWlJmk?t=1h1m53s

Visualizando valores no computador: https://youtu.be/xh0fMgWlJmk?t=1h6m15s

Comunicação bidirecional e Exemplo 4: https://youtu.be/xh0fMgWlJmk?t=1h10m35s

Sinais PWM e controle de velocidade: https://youtu.be/xh0fMgWlJmk?t=1h12m20s

Exemplo 5: Controlando o brilho de um LED: https://youtu.be/xh0fMgWlJmk?t=1h15m20s

Avançando (shields, comunicação sem fio, MATLAB etc.): https://youtu.be/xh0fMgWlJmk?t=1h18m01s


Espero que o material seja útil.
Até a próxima!


domingo, 19 de fevereiro de 2017

Mecatrônica ou Controle e Automação?

Que curso devo fazer para estudar Robótica? Engenharia Mecatrônica ou Engenharia de Controle e Automação? Qual é a diferença entre eles?

Muita gente tem dúvidas sobre a diferença entre Engenharia Mecatrônica e Engenharia de Controle e Automação, e eu recebo muitas perguntas sobre esse tema. Vou dar a minha visão aqui pra tentar ajudar no esclarecimento.

De fato, no Brasil existe uma confusão na nomenclatura desses cursos de engenharia. Algumas faculdades tratam os cursos de forma distinta: Mecatrônica como ênfase da mecânica, Controle e Automação como ênfase da Elétrica. Outras tratam os termos "Mecatrônica" e "Controle e Automação" como sinônimos. Vale conferir a grade curricular de cada curso que você tiver interesse em fazer.

Eu já dei aula em dois cursos de Engenharia de Controle e Automação: na UCL (Faculdade do Centro Leste) e no IFES - Campus Serra. Ambos podem ser considerados mais próximos da elétrica, embora o curso da UCL tenha algumas matérias a mais da mecânica. Além das matérias básicas das engenharias, em ambos há matérias sobre Robótica. Também há várias matérias que tratam de Circuitos Elétricos, Eletrônica Analógica e Digital, Microcontroladores, Controle, CNC, PLC, Instrumentação, Sensores etc. Recomendo uma olhada nas grades curriculares pra terem uma ideia melhor:

http://sr.ifes.edu.br/index.php?option=com_content&view=article&id=146:engenharia-de-controle-e-automacao&catid=56:engenharia-controle-e-automacao&Itemid=73

https://www.ucl.br/graduacao/engenharia-de-automacao-e-controle/

No Brasil o Ministério da Educação (MEC) recomenda oficialmente apenas o uso do nome Engenharia de Controle e Automação, e não Engenharia Mecatrônica. Há alguns anos o MEC iniciou um processo para reduzir a quantidade de denominações de engenharia, agronomia e arquitetura no Brasil, de mais de 200 para  apenas 22. A lista de denominações e descrição do perfil profissional corresponde está disponível aqui:

http://portal.mec.gov.br/dmdocuments/referenciais2.pdf

O MEC também publicou uma lista de convergência de denominações para os cursos de engenharia, esclarecendo qual nova denominação deve ser considerada para cada denominação antiga. Assim todos podem ter uma ideia melhor de como o Ministério da Educação classifica cada formação:

http://portal.mec.gov.br/dmdocuments/convergencia_denominacao.pdf 

Portanto, entendo que o título oficial recebido após o curso deva ser Engenherio de Controle e Automação. Dependendo da faculdade, a formação pode ser uma ênfase do curso de Mecânica ou de Elétrica. Nesses casos, o título recebido poderá ser Engenheiro Mecânico ou Engenheiro Eletricista, com a ênfase correspondente.

Resumindo, é muito importante conferir a informação com a faculdade de seu interesse, principalmente porque os cursos podem dar habilitações diferentes (junto aos CREAs), impactando diretamente nas áreas em que o engenheiro pode atuar depois de formado.

Espero que esse texto ajude a esclarecer um pouco mais a sobre a denominação desses cursos.
Até a próxima!

domingo, 23 de agosto de 2015

ROSOS - simulador gratuito de futebol de robôs

Tela do ROSOS no início de uma partida.
Que tal programar seu próprio time de robôs para jogar futebol? E o melhor é que você não precisa gastar dinheiro!

O amigo e ex-aluno Ivan Seidel Gomes e eu criamos uma plataforma de simulação para futebol de robôs. O objetivo principal é prover acesso à robótica educacional a todos os alunos, inclusive aos que não têm acesso a robôs físicos!

Ok, fiz só o início do código e o Ivan fez a maior parte. No fim, o software também contou com a colaboração do Renato Ferreira e do João Pedro Vilas. Mas, eu fiz o importante papel de supervisão e cobrança até o seu nascimento. ;-)

A plataforma que criamos é chamada ROSOS (RObot SOccer Simumator). É open-source e roda em computadores com sistema operacional Windows, MAC OS ou Linux.

ROSOS simula uma partida de futebol jogada por robôs autônomos. O tamanho do campo e a quantidade de robôs por time é variável. Cada time deve programar os seus próprios robôs e o simulador controla a interação entre os componentes físicos. Os robôs contam com motores e sensores virtuais de forma que cada equipe pode utilizá-los para movimentação de seu robô, localização da bola, medição de distância, orientação etc. Os programas dos robôs virtuais possuem a mesma estrutura dos programas de robôs reais, sendo possível inclusive simular ruído e falhas nos sensores, o que torna a experiência mais próxima do uso de robôs reais.

Tela do ROSOS com campo de maior área durante a realização de uma partida.

A criação do simulador já resultou em dois artigos. O primeiro, intitulado "Soccer Simulation League – a proposal for the RoboCupJunior competition", foi apresentado por nós em julho de 2015 no WEROB - Workshop on Educational Robotics da RoboCup, realizada na China. O segundo, intitulado "Junior Soccer Simulation - Providing all primary and secondary students access to educational robotics", será apresentado em outubro no Latin American Robotics Symposium. Este também tem a coautoria da professora Carmen Faria Santos, do Laboratório de Robótica Educacional da UFES.

Uma pequena competição foi organizada no campus da UFABC em julho de 2015 para testar o simulador. A competição foi realizada pela seção UFABC do IEEE RAS e pela Tenda Digital, com apoio da WebRádio UFABC e da Inova UFABC e com patrocínio da RoboCore e da Giro UFABC. O vídeo abaixo foi gravado no dia da competição. Confira as partidas!



Interessados em usar o simulador ou em contribuir com a sua melhoria podem obtê-lo no link abaixo. Para executar ROSOS é necessário também instalar o software gratuito Processing.
 https://github.com/ivanseidel/Robot-Soccer-Simulator

Com a ajuda de outros colaboradores, foi criado um canal no YouTube com instruções de uso e exemplos. Confira!
https://www.youtube.com/channel/UCZekRTPIwhe56lbicQpO-vg

Espero que gostem e aproveitem o ROSOS!

Até a próxima!


sexta-feira, 29 de maio de 2015

Drones: o desafio é voar!

O texto a seguir é uma reprodução do artigo que o colega Alexandre Brandão e eu escrevemos para a Revista Mundo Robótica. Trata-se de uma explicação geral sobre drones e suas características.
Acesse o site da Olimpíada Brasileira de Robótica para ler todas as edições da Revista Mundo Robótica!

---

Drones, cientificamente conhecidos como veículos aéreos não tripulados, estão cada vez mais presentes no nosso cotidiano. Em uma concepção inicial, estas aeronaves tinham como objetivo a realização de tarefas de inspeção de grandes áreas, que comumente eram realizadas por veículos tripulados. Mais além dessas aplicações, os Drones atualmente podem ser vistos como brinquedos de alta tecnologia.

Quadrotor Phantom.

Facilmente podemos encontrar um veículo do tipo helicóptero convencional, quadrotor (aeronave com quatro pás rotativas), avião ou dirigível, que pode ser guiado remotamente por pessoas sem muita experiência na área de controle de aeronaves. A facilidade na estabilização em voo e na realização de manobras se dá por causa dos dispositivos eletrônicos embarcados, como sensores microprocessadores. Esses dispositivos embarcados permitem que o ajuste na velocidade dos motores para estabilização da aeronave seja feito de forma automática. Tal característica só foi alcançada através de muito estudo, pesquisa e desenvolvimento nas áreas de eletrônica, computação e controle.


Parrot AR.Drone 2.0
Hoje em dia, mesmo as aeronaves radio-controladas mais simples já possuem diversos sensores em seu corpo. Por exemplo, a determinação da orientação da aeronave durante um voo é feita a partir dos chamados sensores inerciais (giroscópios e acelerômetros). Tais sensores são capazes de determinar a aceleração e a variação de orientação da aeronave nos 3 eixos cartesianos, o que é essencial para controlar sua estabilização. Para voos em ambientes externos, um receptor de GPS pode ser utilizado para determinar sua localização global, principalmente em voos de longa distância. Câmeras de vídeo podem ser utilizadas para auxiliar na navegação e para realizar registro da área navegada. Tais itens tornam estes veículos bastante atrativos para as mais diversas aplicações sejam em ambientes externos (por exemplo, campos abertos, cidades, regiões de montanhas, ambientes hostis) como em ambientes internos (por exemplo, escritórios, edifícios, galpões).

Alguns centros de pesquisa ao redor do mundo utilizam Drones para realização de manobras acrobáticas e experimentos de controle de formação (pelotão ou grupos de robôs). Eles contam com sistemas de rastreamento baseado em visão computacional, tais como, OptiTrack e Vicom System, para determinação com alta precisão da localização tridimensional das aeronaves (que comumente possuem marcadores reconhecíveis pelo sistema) e assim realizar missões de cooperação típicas de estratégias de guerra usando veículos tripulados.

Pequenos, mas precisos

A miniaturização dos Drones é algo que também está de moda. Cada vez mais vemos universidades e institutos apresentando aeronaves que cabem na palma da mão.

Mini-drone tipo quadrotor.

Apesar de não terem uma grande capacidade de carga, em virtude de suas dimensões físicas, elas desempenham tarefas importantes no que diz respeito ao controle cooperativo e de formação para a realização de tarefas de inspeção. Imagine utilizar drones observando uma área de floresta para busca de pessoas perdidas, por exemplo. A tarefa pode ser realizada de forma muito mais eficiente por um grupo de pequenos drones do que por um drone grande e poderoso. Além disso, há uma maior garantia de cumprimento da tarefa, pois a falha de um ou mais Drones não irá comprometer totalmente sua realização (execução). O filme Operação Big Hero (Big Hero 6) ilustra muito bem como um enxame de pequenos robôs pode aumentar a eficiência e a gama de aplicações de um sistema robótico.

Os drones podem ser divididos em veículos aéreos de hélices coaxiais ou multirrotores (como os quadrotores), de asas fixas (como aviões e planadores), de asas oscilantes (tipo pássaros) ou de asas rotativas (como helicóptero). Sim, são consideradas asas as pás que giram para sustentar o helicóptero! Certamente você já viu drones em forma de avião, helicóptero e quadrotor. Mas, se você ainda nunca viu um drone na forma de um pássaro, cuja propulsão vem do bater de suas asas, procure sobre o Smart Bird da empresa Festo.

Em termos de miniaturização, os Drones de asas rotativas ou multirrotores são mais fáceis de encontrar no mercado em dimensões reduzidas do que aviões, planadores, dirigíveis e aeronaves tipo pássaro. Por razões de aerodinâmica, os Drones de asas fixas ou oscilantes tendem a apresentar maiores dimensões físicas. Vale adicionar que os Drones de asas rotativas possuem uma maior manobrabilidade (capacidade de se deslocar nas várias direções do espaço tridimensional) e a capacidade de realizar voo pairado (ancorar sobre um ponto em terra a uma dada altitude). Em contrapartida, tais aeronaves são mais difíceis de controlar, quando comparadas às outras, exigindo certo grau de experiência dos usuários.

Desafios

Baterias de LiPo.
Um dos grandes desafios da atualidade está relacionado à autonomia de voo dos Drones. Baterias de diversas composições químicas têm sido utilizadas como fonte de alimentação dos sistemas de propulsão, sensoriamento e controle. Atualmente, as baterias utilizadas na ampla maioria dos drones são as de LiPo (Polímero de Lítio) por terem grande capacidade de carga e elevada potência. Porém, o tempo de voo das aeronaves comerciais utilizadas para fins de pesquisas ou aplicações de entretenimento ainda é pequeno, da ordem de quinze minutos de operação contínua. Apesar de parecer pouco tempo de voo, tal autonomia é suficiente para realizar inspeção em campos de pastagem, observação dos arredores de um edifício ou mesmo a realização de uma apresentação acrobática. Drones mais caros podem ter autonomia maior, como 30 a 45 minutos.

Finalmente, o que mais se espera hoje em dia é que os drones sejam capazes de voar de maneira completamente autônoma, sem nenhum tipo de interferência humana. Muitos grupos em todo o mundo estão trabalhando nesse problema, que não é de solução trivial. Alguns grupos têm se dedicado ao desenvolvimento de veículos e sistemas de controle que permitam voo em ambientes externos e outros em ambiente internos, inclusive detectando e desviando de obstáculos. Para isso, estão sendo desenvolvidos e aplicados novos sensores, novas técnicas de visão computacional, algoritmos inteligência artificial e teoria de controle. Esse é o passo final para a transformação dos drones em verdadeiros robôs autônomos. Vamos contribuir?

Fonte: Revista Mundo Robótica, ano 2, número 4, 2015.

---

Até a próxima!

terça-feira, 10 de junho de 2014

Arduino + Threads

Ou... como piscar dois LEDs com Arduino de maneira foda.

:-)

Falando sério, o +Ivan Seidel criou uma biblioteca muito legal de threads para Arduino e fez esses vídeos para explicá-la. É muuuuito útil para programar o seu robô!

O primeiro vídeo é uma excelente aula sobre programação de Arduino (e de microcontroladores em geral). O segundo ensina a usar a biblioteca. Vale muito à pena ver os dois!




Até a próxima!

quarta-feira, 28 de maio de 2014

Google self-driving car

Há várias empresas e universidades trabalhando em projetos de carros autônomos, inclusive no Brasil. Até hoje, todos os protótipos eram veículos comerciais adaptados para serem autônomos. Mas, mais uma vez a Google deu um passo adiante de todos: construiu um protótipo de veículo pensado, desde o início, para ser autônomo.

Qual é a diferença?

Bem... se o veículo é realmente autônomo, você não precisa de acelerador, freio ou volante!



Quando será que as cidades terão carros autônomos como esse como parte do sistema de transporte público? 

Até a próxima!