Logo Pisciotta

PISCIOTTA

Soluções Inteligentes

PROFESSOR

Listar
Artigos, curiosidades e muitas dicas.

Aproveite, curta, compartilhe.

Microcontroladores



MICROCONTROLADORES

2143 Views - 15 Curtidas




Microcontroladores estão por toda a parte. Conheça as características dos microcontroladores e anote as dicas para conseguir estudar mais e dominar esse importante assunto, básico para o desenvolvimento de qualquer dispositivo inteligente. Impulsione-se pelos movimentos Embarcados e IoT.

Microcontroladores

Já parou pra pensar que ao realizar uma simples soma na calculadora estamos passando essa tarefa a um dispositivo eletrônico que faz o trabalho por você e exibe o resultado em uma "telinha", e que tudo isso é feito em uma fração de segundo? ... E que a calculadora só entende informação digital (0 ou 1, aberto ou fechado, 0V ou 5V)? Como ela consegue fazer tanta coisa sendo daquele tamanho tão insignificante?

A resposta é: através de um microcontrolador!

Um microcontrolador é um componente eletrônico que possui dentro de si um microprocessador, uma memória RAM, e pode conter vários outros dispositivos que o ajudem a cumprir suas tarefas, como memória ROM, conversores analógico-digital, temporizadores, porta serial, etc... A ideia é que um microcontrolador tenha tudo o que seja necessário para trabalhar sozinho.

Um microprocessador é a CPU (sigla em inglês para Unidade de Processamento e Controle), também chamado de cérebro eletrônico (embora esteja muito longe disso) que executa comparações e cálculos matemáticos de acordo com um conjunto de instruções, chamado programa. Dentro da CPU existe a UC (Unidade de Controle) e a ULA (Unidade Lógica e Aritmética) que executa os cálculos e as comparações. A CPU trabalha constantemente com a entrada de dados, a memorização e a saída de dados.

Você pode ler um pouco da história dos microprocessadores na Wikipedia neste link.

Um microcontrolador possui um micropocessador dentro de si, além dos outros periféricos mencionados anteriormente. Os microcontroladores são utilizados em equipamentos menores, onde o poder de processamento pode ser reduzido em prol de uma maior compactação física.

Tanto os microcontroladores como os microprocessadores precisam de um programa (software) para indicar as tarefas a serem executadas. Essas instruções são gravadas na memória de programa, que no caso do microcontrolador, fica em uma parte da memória EEPROM interna, e nos microprocessadores fica em uma memória não volátil externa ao chip. Esse programa é executado pela UC (Unidade de Controle) que lê essas instruções na sequência, executa cálculos e comparações na ULA (Unidade Lógica e Aritmética) e utilizando a memória RAM para armazenar os resultados e para poder consulta-los de acordo com a necessidade do programa.

Quando eu estudei meu curso técnico, entre os anos 1998 e 2000, tínhamos à disposição basicamente duas famílias de microcontroladores:

  • a família 8051 da ATMEL
  • e a família PIC da Microchip.

Trabalhar com esses dispositivos era muito difícil naquela época porque se necessitava conhecer muito as características do microcontrolador escolhido, e haviam muitas opções para se escolher.

As ferramentas para programação também não ajudavam em nada, e não tínhamos acesso à internet, ainda cara naquela época. E quando tínhamos, era difícil encontrar algo a respeito. Não existiam essas ferramentas de busca fantásticas que conhecemos hoje.

A família PIC da Microchip se destacou pela variedade microcontroladores, facilitando a escolha do chip ideal para o seu projeto. A documentação da Microchip também sempre foi muito boa. Mas ainda assim se precisava muito estudo do microcontrolador escolhido para que seu projeto saísse do papel, pois cada microcontrolador tem um modo diferente de ser programado. Por isso, muitos profissionais e estudantes da época tinham o seu microcontrolador "preferido", e faziam quase todos os seus projetos considerando aquele microcontrolador, e só mudavam de microcontrolador quando aquele primeiro realmente não atendia às necessidades de um determinado projeto, reiniciando a penosa curva de aprendizado, com a leve vantagem de possuir alguma experiência com outra plataforma.

No início tudo era programado em linguagem Assembly, uma linguagem de baixíssimo nível, que exige também profundo conhecimento do hardware que você estava utilizando. Com essa linguagem é necessário trabalhar byte a byte, e às vezes, bit a bit. Um software chamado compilador converte esses códigos em linguagem de máquina, fornecendo um arquivo hexadecimal com extensão .hex. Um pouco mais tarde surgiram os tradutores que permitiam a construção do seu software em linguagem C, bem mais amigável aos olhos humanos, e que convertia os comandos para códigos hexadecimais no compilador.

A PIC manteve uma grande vantagem no mercado até que a ATMEL lançou outra família de microcontroladores: a AVR, que fez muito sucesso e está presente nos Arduinos tão populares hoje em dia. A ATMEL fez bastante sucesso também com os micrcontroladores CORE M0+ e M4, além dos processadores ARM A5 para aplicações de alta performance. Essa sequência de sucessos talvez tenha motivado uma ação até então inusitada: no início de 2016 a Microchip adquiriu a Atmel.

Outros fabricantes conquistaram o mercado, e temos um leque de opções muito grande para trabalhar hoje em dia.

O "BOOM" com o Arduino

Com o projeto Arduino, liderado por Máximo Banzi, ficou muito fácil montar um protótipo funcional em questão de minutos. Banzi era professor de uma faculdade de Artes de IVREA na Itália quando um de seus alunos (o Colombiano Hernando Barragán) apresentou como trabalho de conclusão uma plataforma de prototipagem chamada Wiring (www.wiring.org.co) que usava o Ambiente de Interface e Desenvolvimento Processing de Ben Fry e Casey Reas para facilitar o projeto de artistas na construção de protótipos interativos. Banzi aprimorou a ideia, criou uma comunidade participativa e... BOOM!

A oferta de placas Arduino, sua facilidade de conexão a outros dispositivos, e a inteligência do software (IDE) que facilita a programação, fez com que essa placa fosse utilizada por designers e hobbistas do mundo inteiro, aumentando a demanda de sensores e outros periféricos eletrônicos, barateando esses dispositivos.

Essa foi a parte boa do Arduino. Digamos que a parte ruim foi que estudantes de curso técnico agora pensam que programar é muito fácil, e que não precisam conhecer o hardware a fundo para conseguir um protótipo funcional. Isso até pode ser verdade para o mundo Arduino, mas... e fora dele? E para transformar um protótipo em um produto comercial? Você vai disponibilizar seu código e os esquemas elétricos do seu produto como um Open Source, permitindo a qualquer outra pessoa copiar o seu projeto e ganhar dinheiro no seu lugar? [Sim, quando utilizamos um Arduino, estamos sujeitos às mesmas regras de suas licenças].

Contudo, não posso negar que a cada dia que passa, mais e mais plataformas de prototipagem surgem com a mesma ideia do Arduino, muitas delas se utilizam inclusive da IDE do Arduino. E não pense que são empresas pequenas: a Intel, com o Galileo, disponibiliza uma plataforma de prototipagem que possibilita compatibilidade com as Shields do Arduino, e a programação pela mesma IDE. Então, aprender Arduino é sim um bom negócio se você não está preocupado em desenvolver hardware.

Dicas de estudo

Mas.... por onde começar? Como escolher o microcontrolador ideal para o meu projeto?

Recomendo que você se cadastre neste link da Microgenios, que foi parceira de treinamentos oficial da Microchip no Brasil durante muito tempo, e que hoje disponibiliza gratuitamente uma série de vídeos para orientar você nos estudos de microcontroladores. Realmente vale a pena assisti-los, pois você vai conhecer muitas ferramentas que o ajudarão em sua trajetória em busca do conhecimento em hardware.

Minha recomendação para quem está iniciando é começar pelo Arduino para aprendizado de software, e começar a compreender um pouco de hardware. Não apenas copiando os exemplos encontrados na rede, mas sim entendendo-os e modificando-os para a sua necessidade. Essa seria a fase do protótipo rápido. Depois passe para um projeto dedicado, escolhendo um microcontrolador para você ir se familiarizando com ele. Depois que você estiver fera nesse chip, conheça outros da mesma família e de outros concorrentes. Comece pelos microcontroladores de 8 bits, depois pelos de 16 bits e por fim passe aos poderosos 32 bits.

Nem preciso dizer que inglês é essencial para você buscar conhecimento nessa área, e que se você parar de pesquisar, vai ficar para trás muito rápido, pois hoje a evolução nessa área é espantosa.

Simplesmente não dá para ser especialista em tudo, mas é bom conhecer as vantagens e desvantagens dos chips que temos em maior oferta no nosso mercado e aproveitar suas funcionalidades.

Outros sites que indico são:


Para o aprendizado de microcontroladores AVR, recomendo dois sites, sendo uma para iniciantes e outro para os mais experientes:

Nesse site aqui eu consegui resolver um problema específico para acionar pinos PWM de forma específica: https://sites.google.com/site/qeewiki/books/avr-guide/pwm-on-the-atmega328


Grande abraço, e bons estudos.