Se você é novo nessa área de desenvolvimento e quer começar a programar, ou se você tem interesse em saber mais como funciona a programação, então esse artigo é para você.
A máquina trabalha apenas com energia elétrica, ela não pode compreender o mundo como nós o compreendemos, a única coisa que ela consegue identificar é se está recebendo energia ou não, por isso os chips de microcontroladores e CIs vão sempre trabalhar com uma linguagem digital, ou seja, sequências de 1(ligado), ou 0 (desligado). Quando estamos fazendo comandos mais básicos é totalmente possível o uso dessa linguagem, mas nossos computadores e até os controladores são usados para atividades mais complexas e por isso foi desenvolvido uma espécie de tradutor para que possamos dar o comando para essas máquinas com uma linguagem mais próxima da que utilizamos e esse tradutor vai transcrever para a máquina em formato de 0 e 1 que é o que ela entende.
Esses tradutores são chamados de compiladores e existem diversos programas para fazer essa compilação, o que vai diferenciar é a linguagem que você utilizará para enviar a informação para ele fazer a compilação (tradução). Essa linguagem é chamada de linguagem de programação e pode ser de baixo nível, que é uma linguagem que se assemelha mais com a linguagem da máquina e de alto nível, que se aproxima mais com a nossa forma de nos comunicar.
A linguagem mais utilizada pela eletrônica e projetos com robótica é a linguagem em C, mas isso não quer dizer que outras linguagens não podem ser usadas ou aproveitadas. Existe uma lista de linguagem de programação e mesmo as mais tradicionais e mais usadas possuem outras linguagens que derivam delas. Um exemplo é a linguagem c ++ ou a c# que vieram da linguagem c mas que possuem mais comandos para que fique mais fácil destrinchá-las. A linguagem java surgiu da linguagem C, a princípio com a intenção de se especificar em internet das coisas, mas acabou sendo voltada e até hoje muito usada para desenvolvimento de web.
É importante mostrar para o leitor que independente da linguagem que ele escolha se especializar ou começar a aprender, existem algumas características e aprendizado que serve para todas as linguagens. Todas elas possuem uma lógica (lógica de programação), é importante exercer e trabalhar essa lógica e assim você vai conseguir lidar muito bem com a programação (não importa a linguagem). Nós seres humanos, temos a capacidade de interpretação, o que a máquina não tem. Então para comunicar com ela você precisa ser bem especifico e literal, sem margens para interpretação.
A primeira coisa que todo programador deve aprender para conseguir se dar bem nesse ramo é o algoritmo (estrutura da programação). Esse também é independente da linguagem. Com ele você vai aprender a melhor forma de organizar e estruturar seu programa. Seguindo as regras e instruções certinhas você vai ter mais facilidade para programar, para entender programas que outras pessoas fizeram e facilitará na hora de arrumar seu programa ou fazer alterações futuras. Sendo assim, com os algoritmos você poder especificar de forma correta a ordem de ações que o programa deve seguir.
Bhom e Jacopini foram dois pesquisadores que conseguiram demonstrar para todos que é possível escrever um programa com apenas três estruturas de controle, são elas: estrutura de sequência, estrutura de seleção e estrutura de repetição. Mas esses termos serão mais familiares futuramente, quando estiver já trabalhando e estudando programação. O que eu quero dizer é que quando trabalhamos com uma execução sequencial (e por isso vale a pena o leitor investir em mais tempo com esse aprendizado) não temos muito trabalho com o programa.
Uma boa forma de praticar essa estrutura e até mesmo a lógica de programação é desenvolvendo e analisando fluxogramas. Em breve deixarei aqui no site um artigo para falarmos apenas do desenvolvimento de algoritmo.
Agora que o leitor já compreendeu um pouco mais de programação vou deixar aqui em baixo o link do vídeo que fiz explicando e mostrando a plataforma de software do Arduino (plataforma utilizada para construção de projetos robóticos).