Logo Pisciotta

PISCIOTTA

Soluções Inteligentes

PROFESSOR

Listar
Artigos, curiosidades e muitas dicas.

Aproveite, curta, compartilhe.

Microcontroladores



MICROCONTROLADORES

2470 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.