Aprendendo Arduino — Parte 1 — uma viagem pessoal

twoidiotsonekeyboard

Nos primórdios, quando o mundo era jovem e a única diversão era assistir aquele seriado de ficção científica, Flintstones, eu brincava com eletrônica. Comprava as revistas todas. Saber Eletrônica, Divirta-se com Eletrônica e até a assustadora Antena, com seus esquemas complexos e conceitos assustadores para uma época em que não existia LED azul nem laser de camelô.

Construí inúmeros projetos, alguns quase funcionaram, mas era um tempo em que a eletrônica digital (doméstica) ainda estava engatinhando. Sim, construíamos circuitos com portas lógicas, flip-flops e até usávamos uns circuitos integrados TTL, mas o normal era no máximo fazer VU de LEDs com um 4017 e sequenciais com um 555.

Com o advento da microinformática, um mundo novo surgiu. Os computadores eram incrivelmente complexos, comparados com o que construíamos nas horas vagas. A idéia de interfacear circuitos com nossos micros existia, mas computadores eram muito caros e meus pais me matariam se eu queimasse meu TK90X. Só tive coragem quando o teclado deu problema, e eu consegui sei lá como um gabinete completo de Commodore 94. Em um projeto 100% meu (não havia internet para pesquisar nada) consegui fazer o TK funcionar com o teclado do Commodore.

Fui abandonando a microeletrônica, em prol do software. Quando fui ver em que pé estava, caí em um mundo horroroso de PICs nada amigáveis. Em teoria um PIC é basicamente um computador, na prática não. Vamos a uma aulinha:

Aqui o esquema de um computador:

spectrum_sch_6

Ok vamos tentar algo mais didático:

r7

Um computador é formado pelas seguintes partes:

  • memória, que guarda informações;
  • dispositivos de entrada e saída de dados (teclado, mouse, monitor, etc);
  • CPU, a Unidade de Processamento Central, que gerencia os dados e programas;
  • e o Sistema Operacional, que podia ser algo tão simples quanto uma instrução de hardware para a CPU começar a executar código de um determinado ponto da memória quando inicializada, abrir o interpretador BASIC e esperar comandos.

Originalmente esses dispositivos ocupavam armários diferentes: a CPU não era um chip, chips não existiam.

3fdafce79778c58d1a30cb117cac3f8e

Isso mudou em 1971, quando a Intel conseguiu atuchar em um único chip 2.300 transístores, tornando muito mais rápido e simples a construção de computadores e equipamentos sofisticados. O 4004 era capaz de ler chips de memória, executar instruções, processar programas e enviar os resultados para outras posições de memória.

O 4004 era um microprocessador de 4 bits, ou seja, era preciso um bom jogo de cintura interno para que o 4004 acessasse um mínimo de memória. Os endereços por exemplo tinham 3 palavras de comprimento, ou 12 bits. Ele usava instruções de 8 bits, e conseguia acessar diretamente 640 bytes de RAM. Quer dizer, diretamente em termos, rolava uma paginação interna.

O clock era de 740 kHz e ele conseguia executar 92.600 instruções por segundo. Não, não rodava Crysis.

Mesmo assim o 4004 foi o começo de tudo, e logo tínhamos o 8008, o 8080, o Z80 e o 6502, o coração do Apple I e II.

intel_c4004

Com o tempo os engenheiros criaram CPUs mais e mais poderosas, mas elas continuam dependendo de componentes externos. Sim, qualquer microprocessador hoje em dia tem memória interna, alguns tem até GPUs dentro do mesmo chip. O resultado é que a AMD tem CPUs com 4.094 pinos, versus os 16 do 4004 original.

Um dia alguém pensou: que tal tentar colocar no mesmo chip o microprocessador, memória, armazenamento e controle de input/output, tendo assim um computador “completo”, capaz de executar um programa sem precisar de módulos externos?

Em 1974 a Texas Instruments criou o TMS-1000, com ROM de 1 kB, RAM de 256 bits e clock de 400 kHz. Não, também não rodava Crysis, e não precisava. O conceito de um microcontrolador não era substituir uma CPU, até porque com tudo integrado aumentar a RAM de um TMS-1000 era quase tão difícil quanto fazer o mesmo com um Microsoft Surface.

O microcontrolador foi pensado para realizar tarefas discretas de forma independente, confiável e segura. Você pode programar um microcontrolador para ler dados de sensores, identificar a temperatura de um aquário, e se estiver muito baixa, acionar um aquecedor. Muito alta, aumenta a refrigeração. Permaneceu muito tempo fora da faixa aceitável, soa um alarme.

É contra-intuitivo, mas é mais fácil fazer isso com um microcontrolador do que com um computador inteiro, e seria canhão pra matar passarinho, de qualquer jeito.

Só que na época em que microcontroladores invadiram a eletrônica, eles eram um porre. A programação era feita essencialmente em Assembler, e eu não sou (mais) masoquista a esse ponto. Você precisava usar programadores altamente inamistosos. E caros. Apagar a memória necessitava colocar o chip debaixo de uma fonte ultravioleta. Havia até programadores onde você digitava em um teclado hexadecimal seu programa.

Por muito tempo, tempo demais microcontroladores foram propriedade de um grupo fechado, uma elite  de escolhidos. Eram caros, complicados de usar, não eram ferramenta de aprendizado. A plataforma comum de ensino era um microcontrolador com interpretador BASIC, custando na faixa de US$ 100,00. Inviável para qualquer estudante.

Um sujeito chamado Hernando Barragán criou como tese de mestrado (chupa, Tedson) uma plataforma chamada Wiring, um conjunto de IDEs, compiladores e hardware de suporte compatível com microcontroladores bem mais baratos. Outros três italianos pegaram a base do Wiring (era Open Source) e criaram uma versão compatível com o microcontrolador ATmega128. Hoje em sua versão básica o Arduino roda o ATmega328:

ard1293

Ele é uma CPU de 8 bits, com clock máximo de 20 MHz, 32 kB de memória Flash, 2 kB de RAM, 1 kB de EEPROM e velocidade de 20 MIPS. Não, não roda Crysis, mas roda Space Invaders:


bruixot66 — Arduino Game Oled Display – Space Invaders

O grande segredo do Arduino (que aliás ganhou esse nome em homenagem a um bar #respect) se divide entre sua facilidade de uso e seu preço. Você acha o ATmega328 para vender no Mercado Livre por R$ 10,00. Um Arduino Uno R3 compatível completo acha-se no Brasil por R$ 42,00.

Junte a isso uma comunidade de hobbystas (me recuso a pagar de hipster usando “makers”) imensa, e um total apoio das empresas, e temos um ecossistema excelente. A Arduino disponibiliza uma IDE que é simples E poderosa. Imagine você, depois de anos emburrecendo as crianças com Javascript agora elas aprendem a programar em C/C++ no Arduino, e nem percebem.

Aliás, refazendo: o segredo, segredo mesmo é que o ATmega328 é muito amigável em termos de conexões externas, e a placa Arduino foi projetada pensando nisso. É extremamente simples acessar, tanto para ler quanto para escrever os pinos do chip.

arduinouno2

Por exemplo: o Arduino tem um LED na placa conectado ao pino 13, é útil para você testar programas sem precisar espetar nada nele. Como fazer esse pino piscar? O programa de exemplo é este:

void setup() {
 pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
 digitalWrite(LED_BUILTIN, HIGH); 
 delay(1000); 
 digitalWrite(LED_BUILTIN, LOW); 
 delay(1000); 
}

Como você pode perceber, são duas seções, setup e loop. Setup é executada uma vez, loop é executada, bem, em loop. Ele define que o pino do LED integrado será OUTPUT. Em seguida no loop  o programa muda o estado do pino para HIGH, pausa 1.000 milissegundos, muda para LOW, pausa mais mil milissegundos  e o ciclo se inicia.

Tente fazer isso com um PC.

Sensores? Extremamente simples. Veja um giroscópio acoplado ao Arduino, passando dados para um PC:


mattzzw — 6 DOF IMU (3 axis accelerometer, 3 axis gyroscope), Arduino, OpenGL, Python, complementary filter

Aí você vai falar “mas Cardoso isso é muito caro”. Com certeza, era. Werner Von Braun se tornaria seu melhor amigo se você aparecesse com uma caixa desses chips em Peenemünde. Você correria risco até de virar melhor amigo de Hitler.

Chips? Sim, chips. O sensor giroscópio/acelerômetro para o Arduino vem em um chip. É o MPU-6050 e custa menos de R$ 10,00 no Mercado Livre.

450xn

Existem literalmente centenas de sensores diferentes para Arduinos, todos facílimos de utilizar. O projeto original foi pensado para “designers e artistas”, então a curva de aprendizado dele é muito amigável. Claro que idealmente você termina enfiando rotinas em assembler, utiliza a IDE da Atmel e fala direto com os registradores do microcontrolador, mas ele ainda é perfeitamente usável e útil mesmo se você tiver conhecimentos básicos de programação e/ou eletrônica.

Óbvio que quando você manja dos paranauês num nível quase Jedi, consegue fazer o Arduino tocar um vídeoclipe, com áudio a 20 fps:


jonnection — A-ha Take on Me video playback on Arduino at 20 fps (with instructions !)

Eu decidi começar a brincar com o Arduino por necessitar de um hobby fora da internet, mas percebi que ele despertou meu lado saudosista, do tempo em que homens eram homens e otimizavam seu código até o último byte, em vez dos programadores frufrus de hoje em dia que preferem dizer pro cliente comprar mais RAM.

Não sei ainda o que farei com o Arduino, mas comprei este kit básico, um tela display LCD de cristal líquido, dois displays Nokia 5110 igual ao do vídeo do A-ha (R$ 12,00 no Mercado Livre) e outras pecinhas.

Vou passar a documentar regularmente minhas experiências, criando uma espécie de curso de Arduino/Microeletrônica, isso tornará mais divertido ainda a experiência e eu ainda ganho conteúdo pra publicar aqui no MeioBit.

Se você quiser brincar com o Arduino, a IDE é de graça, em www.arduino.cc com versões pra macOS, Windows e Linux. Também há uma versão 100% web, pra quem quiser programar na nuvem.

Também não é preciso sequer comprar um Arduino para testar seus circuitos. A Autodesk tem sua excelente suite de desenvolvimento e prototipagem de circuitos online, a circuits.io. Você pode simular em protoboard seus circuitos e incluir até um Arduino. Com direito a programas.

Eu consegui queimar um LED.

simulador

Esse cara aqui criou uma versão do jogo da cobrinha, da Nokia.

ardusnake

As possibilidades são ilimitadas, e se você duvida, este sujeito aqui fez um LIDAR para mapeamento 3D de ambientes.


Dana Peters — Arduino-based LIDAR Scanner

Chega, né? Então até o próximo capítulo, onde aprenderemos em detalhe sobre o Arduino Uno e o que faz seu coração bater. Spoiler: é o cristal de 16 MHz.


Leia também:

Relacionados: , , , , ,

Autor: Carlos Cardoso

Entusiasta de tecnologia, tiete de Sagan e Clarke, micreiro, hobbysta de eletrônica pré-pic, analista de sistemas e contínuo high-tech. Cardoso escreve sobre informática desde antes da Internet, tendo publicado mais de 10 livros cobrindo de PDAs e Flash até Linux. Divide seu tempo entre escrever para o MeioBIt e promover seus últimos best-sellers O Buraco da Beatriz, Calcinhas no Espaço e Do Tempo Em Que A Pipa do Vovô Subia.

Compartilhar
  • Rafael Rodrigues

    Arduino é fuderásrico!!!! Parabéns por divulgar e trazer mais gente para o ecossistema!!!

  • Tem um ano q coço a mão pra comprar um e fazer um robô. Quem sabe agora este seja o incentivo final.

    • Eu fiz um carrinho, foi bem fácil. Vídeo da primeira versão dele: https://goo.gl/photos/CfF6jD1EojBzbqNe8

    • Glauber Santos

      Se quiser robozinhos legais mesmo eu recomendado os kits LEGO (sim do mesmo brinquedo lego) para robótica.

      É um investimento bemmmm maior, mas muito mais legal.

  • Boa!

  • Pingback: Aprendendo Arduino — Parte 1 — uma viagem pessoal | Notícias Legais()

  • “emburrecendo as crianças com Javascript”..
    Ganhei um belo texto com uma bela ofensa…

    • Leooo

      Acendam as tochas, encotramos o programador JAVA!!!!!

      • Jesus explodiu o Krakatoa para ver se livrava o mundo dessa praga de Java

      • Java != Javascript

        • Leonardo Alves Araujo

          Tenho certeza que o lugar no inferno é o mesmo, xD

        • Luiz

          Não, Java é pior. Só faltou mencionar PHP para completar o Trio do Eixo do Mal.

  • Victor

    Que delícia de artigo q não entendi nada.

    • Anayran Pinheiro

      Bem, este artigo ele mostra um pouco da história da computação. Se você não entendeu a primeira parte (que está muito bem escrita, por sinal). você não vai entender o resto.

      Mas resumindo, esse artigo mostra a sensação de um programador de antigamente ter que se preocupar com otimizar seu programa em um hardware atual, porém com uma curva de aprendizado bem mais branda. Se você aprende isto com o Arduino, o céu é o limite.

  • J’onn J’onzz

    Excelente artigo.
    Eletrônica embarcada é uma de minhas paixões. Bom ver ela ganhar um espacinho aqui no meiobit.

    Acho sensacional a popularidade e o ecossistema por trás do arduino, mas o mundo dos microcontroladores já estava a todo vapor antes dele.
    Se consideramos IDEs pagas emprestadas na locadora do Paulo Coelho, a família MSP430 (16 bits) é bem amigável a programação em C a bastante tempo. A própria família AVR, utilizada nos arduinos, já estava ganhando muita força antes do arduino aparecer, começando a desbancar os microcontroladores de 8 bits como PIC e 8051.
    E ainda antes de surgir o Arduino, os ARMs Cortex-M3 simplesoões de 32 bits estavam se popularizando bastantee, especialmente a linha STM32. E competindo quase de igual para igual em termos de custos com os microcontroladores de 8 bits.

  • Cris

    hoje tem microcontroladores com wifi embutido como o esp8266, utilizo bastante, é mais pratico usar apenas ele pra soluções que necessite de acesso a rede local ou internet.

    • Sim, perfeito, vamos começar um artigo de eletrônica básica e microcontroladores já com networking e teoria de redes.

      • Luiz

        E implementar todo o stack de rede em C no microcontrolador é bem easy.

        • SIm, pq todo iniciante começa implementando protocolos de comunicação.

  • J’onn J’onzz

    Dica importante. Filtrar dado de sensor ajuda muito a aplicação não se compoptar de forma maluca. Seja um filtro linear (média móvel é o mais simples deles), filtro de mediana ou filtro de kalman. Provavelmente não vai demorar para se deparar com algum deles nos tutoriais.

    • Gauss já deu essa dica em 1805, com a FFT.

      • J’onn J’onzz

        A motivação da dica não era alertar para existência de filtros, era só para lembrar que os mesmos existem porque é comum esquecer na hora de criar aplicações. É comum perder um tempão procurando erros no código quando o problema é a falta de tratamento dos sinais dos sensores.

        Sobre a FFT… ela é linda e Gauss era o cara, provavelmente um dos gênios mais produtivos da história.
        Eu sei que você não disse que usaria a FFT para isso, mas a FFT muitas vezes é overkill.
        E em microncontroladores de 8 bits pode ser bem pesado calcular fft (ou qualquer outra coisa que precise de de muitos cálculos de float). Dependendo da aplicação, número de canais, taxa de aquisição… pode ser inviável. Se for uma aplicaçao a bateria também, qualquer cálculo a mais significa menos autonomia.
        Para a maioria dos casos média móvel resolve, de preferência com tamanho de janela potência de 2 para realizar divisão de int através de shift-rights.

        Já que comecei a discorrer sobre o assunto (me empolgue lembrando de DSP), cabe observar que a FFT e filtros lineares não são resposta para tudo, tem uns ruídos de amplo espectro e curta duração (burst noise) que eles não eliminam muito bem, mas filtros de mediana eliminam que é uma beleza e com bem menos esforço computacional.

        E o filtro de Kalman é outra coisa linda da matemática, concebida através da mais pura genialidade. O conceito não é muito intuitivo mas depois de entendido parece óbvio, e aplicado normalmente roda leve e funciona tão bem que parece mágica. Aplicações de acelerômetro e giroscópio normalmente usam filtro de Kalman.

  • Don Scopel

    O projeto mais legal que fiz com Arduino foi em que na hora certa ela ligava um relé q por sua vez ligava uma bomba e irrigava os vasos de plantas aqui de casa.
    A hora e a quantidade de agua (na verdade o tempo que a bomba ficava ligada) era todo definido por uma interface que eu fiz suando muito (pq sou exagerado) no visor 16×2 que inclusive tinha ate a animação da bomba funcionando. O projeto ainda ia contar com um sensor de umidade de solo que ate comprei mas como vou me mudar acabei desmontando tudo antes de o projeto ficar 100%
    E tinha um log que marcava a temperatura e, futuramente, a umidade do solo.
    O grand finale ia ser (ou vai ser, depende da minha disposição) calcular a quantidade de agua em razão da temperatura e umidade.
    ps. não sabia nada de eletrônica qdo comecei

    • LV

      Tem mercado pra isso.
      Coisa mais chata eh regar planta

      • Diego Marco Trindade

        Eu compraria. As plantas da sacada vivem morrendo, e como não quero que a patroa coloque a culpa em mim, eu compraria isso.

    • Fiz algo parecido, mas foi com a bomba d’água de casa, pra encher a caixa. Coloquei 3 sensores de nível e a bomba só é ligada se tem água no cano da CEDAE (porque as vezes eles cortam a água e se a bomba ligar sem água pode queimar ou dar ar no cano).

      • Don Scopel

        Como vc fez pra saber se tinha agua no cano?

      • Jonatas

        Pode usar apenas um sensor de ultrassom, ao invés dos 3 de nível.

        • Pelo menos o sensor de ultrassom que eu tenho tem uma precisão muito ruim, por isso optei pelos 3 sensores de nível.

    • Veritas46

      Vc recomendaria um livro ou curso pra quem quer começar e não entende nada de eletrônica??

      • Don Scopel

        A primeira Arduino que eu adquiri foi pelo kit de Iniciante da Robocore, ele acompanha um CD com vários tutorias explicando o bê-á-bá básico, dali vc pega o básico pra não sair queimando seu leds e outros componentes rs
        Dai pra frente fui aprendendo tudo na base da curiosidade e pesquisando na internet
        Mas eu ainda comprei dois livros que não chegam a ensinar muita coisa avançada mas são cheios de dicas e bons exemplos para se ter refencias:
        Primeiros Passos com o Arduino – Autores: Massimo Banzi e Michael Shiloh – Editora: Novatec
        Arduino em Ação – Autores: Martin Evans, Joshua Noble e Jordan Hochenbaum – Editora: Novatec

        Mas não se preocupe muito com a parte de eletrônica, apesar de no começo assustar um pouco vc pega o jeito, acho que o mais importante é a programação

      • Oberaldo Gilmentoo

        Tem uma série de livros chamada “Evil Genius” que acho que vale a pena dar uma olhada. Tem “electronic for the evil genius”, “arduino for the evil genius”, e por aí vai. Tem na biblioteca do Paulo Coelho.

  • dclobato

    Acho que escolher Arduino como um hobby fora da internet pode não ser uma boa… Você vai passar um bom tempo, na internet, procurando informações sobre ele, tutoriais, datasheet de componente… 😉 É depois, se ligar um esp-01, vai colocar o bichinho na internet…

  • Escutem um sábio conselho… Arduino é só pra começar, existe vida fora da bolha. Tem um ditado que diz que: Arduino emburrece, portanto use com moderação, e saia da caixa quando tiver um pouco mais de confiança.

    • Tenho certeza que Arduino emburrece. Por isso que na NASA só tem toupeiras

      • Lucas Linki

        Aposto que na SpaceX não tem Arduinos..

        • Nem rovers em Marte ou telescópios espaciais.

          • Lucas Linki

            Detalhes…

          • Marcelo Mosczynski

            Os processadores usados pela nasa tem espcs. Superiores a Mil, então você não vai achar um i5 em foguetes ou nos robôs.
            Sem contar que eles normalmente usam equipamentos de 10 anos atrás.
            Para as crianças que fazem mimimi com arduino o Z80 ainda é usado em muitos equipamentos.
            Eu portei todos os projetos para a linha Atmel (arduino), simplesmente para ganhar eficiência no desenvolvimento.

      • OverlordBR

        Arduíno é coisa do Demonho.

        • Sim
          https://theolotech.files.wordpress.com/2008/07/devil.jpg

    • EU ouvia isso da interface gráfica, da máquina de escrever… sempre tem uma elite babaca que acha que tudo tem que ser difícil e cansativo como no “tempo deles”.

      • Mario Neis

        lembro da frase “empurrador de mouse” ser usada como xingamento haha

        aí às 18 enquanto eu saía do trampo pra ir pro happy hour com o povo e o batedor de teclado ficava pra trás eu dava risadas…

        pessoal da TI tem um ego muito frágil quando aparecem interfaces que facilitam a inclusão de outras “tribos” na brincadeira rsrs

        “meu deus!! vai vir alguém de outro lugar e vai programar melhor que eu… lusiano mim ajuda! vamos tentar deixar as coisas ininteligíveis que vai me garantir que eu continue aqui por anos à fio!”

        • Tem um artigo famoso, acho da Computer World que fala sobre Interface gráfica ser uma modinha que não vai durar 6 meses.

          • Mario Neis
          • Mario Neis

            sempre que vejo alguém argumentando que “antigamente..era melhor.. qualquer coisa…” eu lembro disso aqui https://uploads.disquscdn.com/images/1cb0930112479cc0f458c878c37c35d11fade890437b3b65281299247868723c.jpg

          • Reinaldo Matos

            Eu tirava a borracha e usava como bolinha de gude…

          • Daniel Plainview

            Já quebrei algumas bolinhas de gude de amigos com isso, era apelação demais.

          • Reinaldo Matos

            Ninguém tinha dito que não podia…

          • OverlordBR

            O cara que limpou este mouse aí é burro…
            O problema não era a bolinha… eram os dois rolamentos lá dentro do mouse. E limpar com cotonete, como ele tá tentando na foto, era difícil porque a porcaria da sujeira encruava nas rodinhas e não saia fácil.

            Aliás, limpar a bolinha com água é mais estúpido ainda porque o material do qual era feito parece que absorvia um pouco de líquido mesmo tu secando bem. E a sujeira grudava mais ainda!

          • Mario Neis

            de acordo, eu sempre utilizava alcool para limpeza de coisas eletronicas e isopropílico pra contato direto com as trilhas de placas de fenolite..

    • Xultz

      Eu tenho um pensamento que o Arduino fora do curso de Engenharia Elétrica é uma benção. Dentro da Engenharia Elétrica, é um câncer. Estou terminando meu curso de Engenharia Elétrica, e tenho muitos colegas que estão se formando e só sabem mexer com Arduino e nada mais. Isso é muito horrível. Porém quando vejo pessoas de outras áreas, principalmente crianças e idosos (como o Cardoso) desenvolvendo com Arduino, sinto uma emoção muito grande.

      • Mario Neis

        dei “laique” só pelo ” idosos (como o Cardoso)” hahahahaha

      • André K

        Tirando a parte dos idosos, foi o melhor comentário!

      • Exato, Arduino é para o pessoal de informática com uma pegada no hardware, não para engenheiros.
        Certa vez fui tentar explicar que sempre se deve evitar usar loops em microcontroladores, mas sim interrupção. A cabeça dos caras deu tilt, custou até entenderem.

        Ai se descobriu que a IDE do Arduino não facilita o uso desses registradores.

        • PP CarvalhoF

          Interessante!

          Qual motivo para se evitar loops em microcontroladores? Fiquei curioso… Mesmo sabendo pouco de programação (só “arranhei” um pouco de C e “olhei” o Java), sei que loops são comuns…

          • Luiz

            Se tu esta fazendo loop, se não tiver uma pausa, o processamento vai subir muito, o que causa interferencia. Ou então se tiver pausa, tu pode perder o evento, o que causa problema de sincronia, pois voce estava parado esperando o evento ocorrer.
            Sem contar que gasta muito, muito mais energia.
            Quando o CPU está parado esperando interrupção, ele pode entrar em HALT state basicamente.

          • Paulo Bernardi

            Se você fizer um loop de 1s, o microcontrolador para tudo que está fazendo e fica incrementando um contador por 1s. Nada de útil é feito, a não ser contar por 1 segundo.

            Se usar uma interrupção, o microcontrolador roda normalmente, fazendo tarefas diversas por 1s, e quando a interrupção estourar, ele vai para a rotina de interrupção, roda o que você quer e volta a fazer o que estava fazendo antes. Assim você não desperdiça tempo de processamento.

          • Via de regra, quando se entra num loop o núcleo da CPU só faz aquilo, nada mais. Para um PC não é lá um problema porque memória RAM e clock de CPU são basicamente infinitos. E há outros núcleos fazendo outras coisas.
            Um microcontrolador, por outra lado, tem suas unidades em KB de RAM, em uns MHz de clock. E o mais importante, se a CPU do microcontrolador estiver presa num loop, não poderá mais receber os dados do sensor, ou seja, vai perder informação.
            O correto é se usar os vetores de interrupção, fazendo um “multitask” bem bacana e bonito de se programar e sincronizar. E agora um spoiler: é um parto de um elefante fazer isso pela IDE do Arduino (quando possível).

      • Tejobr

        Como dizem, o Arduino fora do Hobby serve para prototipação. Não vai entregar um projeto para um cliente com placas arduino. rs

    • Paulo Bernardi

      Concordo. A frase é essa mesmo: “use com moderação”.

      Um Arduíno é suficiente pra um hobbysta, pra alguém que quer entender como as coisas funcionam, mas não é suficiente para um profissional – embora um profissional possa sim, fazer uso.

      Eu comparo o Arduíno com o Java: por ter um monte de recursos e projetos já prontos na internet, existem pessoas que na base do Ctrl+C, Ctrl+V acham que já fizeram um projeto, não é bem assim.

      Ser de fácil entendimento e altamente difundido é uma força no primeiro momento, mas uma fraqueza se isso te impedir de dar o passo seguinte.

      • Que postura besta.

        • Microamp

          Relaxa, é a postura da maioria: na minha faculdade acham que engenheiro de verdade só faz projetos com flip flop e contador.

          Uma pena esse pensamento (muito comum no BR) de que só é bom quem faz as coisas como na idade da pedra. Um bando de engenheiros e programadores se f&¨% para criar algo que agilize o progresso e um bando de imbecis ficam falando como papagaios que a nova tecnologia é ruim e só o método antigo presta.

          Arduino é solução para tudo? Não, mas é aí que entra o engenheiro para decidir qual será a melhor saída para um problema. Ignorar tecnologias só porque “é de iniciante” mostra a pobreza profissional de alguns.

          Meus dois centavos é que o Arduino pode sim ser utilizado em projetos e é ferramenta indispensável durante a prototipagem. Já vi vários projetos começando com o Arduino e terminando com placas extremamente complexas e redundantes desenvolvidas sob medida; já vi também projetos hiper complexos que tem o Arduino em algum ponto apenas para traduzir o dado de um sensor ou para servir de auxílio.

          Um exemplo que me vem a mente é a Makerbot, que usava o Arduino como base para as placas das impressoras 3D (digo usava porque não tenho certeza sobre as atuais).

          • Luiz

            Arduino é de iniciante, e para prototipo. Mas nada impede o cara de reescrever o codigo, optimizar, tirar os libraries padrão e gravar um Atmel “nativo”.

          • Paulo Bernardi

            Projetos com flip-flop e contador? Oi? Nos anos 80 a civilização já usava o 68000 para diversos fins, de onde você inferiu essa de flip-flop e contador?

            Na verdade, há muita coisa mais poderosa e com o preço acessível: Raspyberry Pi, Beaglebone. Eu pessoalmente gosto de kits de FPGAs, há alguns kits bem baratos, e dá pra fazer muita coisa com eles:

            http://www.waveshare.com/core3s250e.htm
            https://www.xilinx.com/products/boards-and-kits/1-3i2dfk.html

            Mas FPGA tem o contra que as “linguagens de programação” – que na verdade são linguagens de descrição de hardware (VHDL/Verilog), são muito específicas e contra-intuitivas pra quem mexe com SW.

            Novamente: Não tenho nada contra usar o Arduino para aprendizado. Não tenho nada contra profissionais que utilizam o Arduino ocasionalmente, especialmente para prototipagem. Mas acho furada pessoas que se dizem profissionais e só fazem projetos com Arduinos, porque não conhecem outras tecnologias.

          • Microamp

            Infelizmente tirei do meu próprio curso de engenharia eletrônica. Estou há quase dois anos só nesse mundo dos anos 60, meus professores ainda tratam como se fosse a parte mais importante (não reclamo de aprender a história e entender a evolução, mas o foco é exagerado) e a única forma de montar aparelhos. Quando eu comento com meus amigos eles respondem em tom de sarcasmo (tipo: olha esse imbecil, não quer estudar então reclama). Tenho ido bem, mas é maçante estudar esse tipo de coisa sabendo o que existe. Gosto de desafios, e isso não é.

            Eu estou doido para ver FPGA’s (só em 2018 na faculdade), alguma recomendação de onde começar por conta própria?

            Concordo que um profissional deva buscar novos conhecimentos para continuar a jornada até o “topo”, se não fizer isso realmente ele não é um – bom – profissional.

          • Paulo Bernardi

            Academicamente, o VHDL é mais difundido no Brasil. Então, se você quiser ir pelo caminho mais difundido, gosta bastante de sofrer, ficar debugando coisas por causa da liguagem com sintaxe rígida e não entender porque as coisas não funcionam, trilhe o caminho do VHDL 😉

            Agora, se quiser ir por um caminho menos difundido academicamente (que significa resistência dos professores e menos material em português), mas de mais fácil aprendizado e mais intuitivo (muitas estruturas parecidas com o C), vá para o lado Verilog da Força.

            Se tiver 89 Trumps, recomendo importar a plaquinha USB que indiquei acima. Ela tem um tamanho bom de lógica e é mais suficiente para aprendizado. A outra de 23 Trumps também dá pra aprender de boa, mas tem um pouco menos de lógica e usa uma FPGA mais antiga. O ambiente é gratis pelo site da Xilinx.

            Para aprender Verilog, tem alguns sites bem bons. Recomendo os seguintes, todos em inglês:

            http://www.fpga4fun.com/ <= muitos exemplos de hobistas
            http://www.asic-world.com/verilog/verilog_one_day.html <= exemplos de sintaxe
            http://hackaday.com/2010/12/01/j1-a-small-fast-cpu-core-for-fpga/ <= adoro este exemplo, um controlador de 100 linhas de código escrito em Verilog!

          • OverlordBR

            É a mesma postura babaca de gente da Informática que acha que uma determinada linguagem de programação / SO / SGBD / é melhor do que outro simplesmente porque o cara usa aquela.

            Lembro quando o Java chegou que os FDPs queriam usar Java em tudo.

      • Não acho que seja pra hobbysta. Meu irmão trabalhou num local onde fizeram toda a prototipagem do controle de uma hidroelétrica usando apenas placas Arduino.

      • RSPeres

        Não sei se são todos iguais mas vi em um shopping aqui em SP que estão usando Arduino mega para controlar os sensores das vagas (aqueles que acendem qdo tem carro na vaga), ou seja acho que foi bem além de “use com moderação”.

        • Henrique Silveira Steinmetz

          é usado em praticamente todos os shoppings do pais, por ser o mais barato possível e funcionar muito bem, se usa um protocolo de comunicação que vc pode ligar todos os sensores do estacionamento praticamente em apenas 2 fios… (RS485)(protocolo serial)

      • Luiz

        O Arduino não é tão ruim.

        • Paulo Bernardi

          Não, ele é simples. Por um lado é ótimo, mas por outro significa que tem várias coisas mais poderosas por aí.

      • Henrique Silveira Steinmetz

        Engraçado, trabalho para um empresa de monitoramento, e uma das empresas que trabalham fazendo automação residencial e de condomínios pra gente faz tudo em cima do Arduíno e de RS485 (comunicação serial), e eles ganharam espaço e vendem muito por fazer as coisas direito com o preço mais barato.

    • Filipe Siegrist

      Cara, engraçado que não sei pq os professores da Engenharia ODEIAM arduíno. Aqui na Mecatrônica o professor de microcontroladores abomina o arduíno.

      Pra mim por exemplo, que to trabalhando com controle e instrumentação será uma mão na roda. Mas pretendo ir mais a fundo (ainda tenho que cursar a matéria)

      • Luiz

        PIC é melhor, só que não. Atmel nativo.
        Mas é igual Javascript, não é programação de verdade.
        Arduino não é eletronica de verdade.

        • Filipe Siegrist

          Boa comparação. O Javascript é na minha opinião uma ótima linguagem para se começar a programar, pela facilidade de uso (afinal vc só precisa do bloco de notas e de um navegador qualquer) pela sintaxe simples e descomplicado (o que claro gera desvantagens, mas que são pouco perceptíveis pra quem ta começando), pela sintaxe parecida com C,Java.. entre outras vantagens.
          O arduino é semelhante, tem uma sintaxe familiar, inumeras bibliotecas, a sintaxe não fica na frente da lógica e te permite ver bastante resultado em pouco tempo. Sem falar que quem realmente gosta vai se aprofundando. Sem falar no preço.

      • Paulo Bernardi

        Arduino tem tudo pronto na Internet. Exemplo para tudo, desde de hello world até pilhas TCP/IP feita na unha, entradas de sensores de tudo quanto é tipo, conectividade com vários tipos de displays. Enfim, um convite ao Ctrl+C, Ctrl+V, que não ensina nada, especialmente para os que querem passar de ano e pegar o diploma ao invés de aprender.

        É como tentar aprender matemática com uma calculadora do lado. Você chega ao resultado final, mas não entende o processo.

      • Adriano Garcez

        Sou formado em Engenharia de Controle e Automação e te digo que se na minha época (2012) tivesse Arduino na faculdade, eu seria um puta programador de sistemas embarcados hoje em dia. A barreira de início do PIC é muito grande. Para ter ideia, não foi ensinado a programar PIC em C na faculdade, apenas em Assembly. Fui programar PIC em C durante um trabalho da faculdade anos depois.

    • Adriano Garcez

      Vi a galera comentando aqui e acho que não entenderam o que você quis dizer – apesar de você ter sido infeliz no tom.

      O problema do Arduino é que tudo é encontrado na internet, então dá para programar ao entender superficialmente o que algumas bibliotecas fazem. Para hobbystas e iniciantes é uma maravilha, mas para quem é estudante de engenharia tem que tomar cuidado para não depender demais da plataforma, afinal sequer usa-se loops na indústria, apenas interrupções.

      Mas dá para ir fundo no Arduino também. Meu TCC foi usando Arduino e tive que salvar alguns bytes para rodar meu programa (automação residencial com acionamento IR de AC e lâmpada) ao mesmo tempo que rodava a pilha TCP/IP dentro do UNO, já que usei o ENC28J60.

  • Erivelton Muniz

    Eu acabei me enfiando no universo do Arduino devido o meu interesse por impressoras 3D e CNC caseiras (já desenhei uma plotter CoreXY e estou com a encomenda de outra na fila), mas também queria me aventurar um pouco pela área da criação de micro robôs, para incentivar crianças no mundo da programação e da micro-eletrônica. É uma boa porta de entrada, e o principal, resolve muita coisa de forma relativamente simples, por mais que outras plataforma ofereçam mais recursos.

  • Juliotenorio

    Arduino é muito bom, o que quebra para mim é só programação, que não sei quase nada. E por falar em flip-flop, esse ano estou tendo montar um PC de 8 bit, até agora quase não entendendo nada, mas espero que já comece a montar os registradores esse mês.

  • OverlordBR

    mas percebi que ele despertou meu lado saudosista, do tempo em que homens eram homens e otimizavam seu código até o último byte

    Seu… seu… escovador de bits!

    Eu, infelizmente, não tenho mais tempo eou paciência para isto. 🙁

  • Bruno Castro Alves

    Agora sim! Vou voltar a brincar com meu kit Arduino da Robocore 🙂

  • Deni Carson de Souza

    Já tem dois anos que eu comprei um unor3, e vários sensores, por alguns meses consegui dedicar um tempo a ele. Hoje não consigo, mas tenho vários projetos em mente. Já na introdução do texto, guardadas algumas diferenças acreditava que era a minha biografia que estava escrita ali…

  • Daniel Tenório

    Eu já tava na pilha pra comprar um kit… Agora eu vou comprei um hahahaha

  • Harlley Sathler

    “…fazer VU de LEDs com um 4017 e sequenciais com um 555.”

    Não seria o contrário?

    • Oberaldo Gilmentoo

      VU: UAA180
      sequenciais: 4017
      555: astáveis ou monoestáveis, em artigos do Newton C. Braga na Saber Eletrônica

  • Russo

    Artigo muito bom, apesar de eu não entender muita coisa. Não foi a toa que eu reprovei quatro vezes Computação II na faculdade de engenharia, mas pra minha sorte não havia jubilamento por reprovação.

  • cloverfield

    Pergunta: um amigo meu,que tem a mesma habilidade em eletrônica de uma minhoca adestrada, poderia fazer bom uso de uma Arduíno ou só com um pouco de conhecimento de eletrônica?

  • McLovin

    Opa, agora sim! Quando sai o próximo capítulo?

  • kenji

    Nada melhor que um texto desse para começar bem a semana, dá até vontade de seguir os links e comprar os kits, programação e eletrônica digital são tão legais… Ah, passou!

  • Alvaro Carneiro

    Se eu tivesse tempo livre, seria meu hobby. Mas não dá.

  • Leooo

    Olha eu com meus impulsos quase comprando um pra mim também, só falta aprender a programar!

  • Tom

    Sério, porque ninguém gosta de JS?

    • Javascript sequer é linguagem de programação.

      • Tom

        Teeeeeeeeeeeeecnicamente é.

      • worldchanger

        Sim, é. “Scripting languages” também são linguagens de programação.

      • Luiz

        Assim como Java. Para ser linguagem de programação tem que ter sistema de tipos

    • Eu tenho trauma, na faculdade acho que colocaram o pior professor da faculdade pra dar aula de java script, ele foi obrigado a dar uma segunda prova final por que ninguém passou na matéria dele.

    • Xultz

      Eu vejo muito este tipo de pergunta. Eu não sou programador JS, na verdade só programo em C para microcontroladores, mas essa discussão toda me faz lembrar de uma frase que Bjarne Stroup (ou seja como é que se escreve o nome do cara que inventou o C++), onde ele diz que tem 2 tipos de linguagens de programação: as que todo mundo reclamam, e as que ninguém usa. Como JS é muitíssimo usado porque é obrigatório seu uso em frontend web, o coro de gente apedrejando a linguagem é enorme.

      • JavaScript não é só utilizado em front-end. Hoje em dia JS é um pau pra toda obra, por exemplo tem backend que roda com base em JS (NodeJS), tem aplicativos nativos sendo desenvolvidos utilizando JavaScript como linguagem base, tal como o React Native, onde você usa JS que depois vira código nativo (pra Android e iOS), o app do Facebook, Instagram e muitos outros são desenvolvidos nessa plataforma. O Appcelerator Titanium segue a mesma linha (na verdade ele foi inspiração pro React Native).

        • Xultz

          Você está certo, eu me expressei mal. Não quis dizer que ele é usado somente no frontend, eu quis dizer que um dos principais motivos dele ser utilizado amplamente é porque é obrigatório na programação de frontend. Obviamente as demais aplicações que você citou fazem o JS ser ainda mais popular. Penso até que, se o JS não fosse tão popular no frontend, soluções como nodeJS não teriam sido inventadas. O principal atrativo de se usar o nodeJS é poder usar a mesma linguagem no frontend e no backend,

    • Antonio Carlos da Graça Mota D

      Opa! Essa palestra rápida pode te dar uma idéia:
      https : // www . destroyallsoftware . com/talks/wat

      • Tom

        Não fez sentido nenhum, talvez com som,
        só uma dica, você pode colocar um link entre

        • Antonio Carlos da Graça Mota D

          A idéia era os argumentos usados na palestra, mesmo.

    • Luiz

      Porque é uma linguagem com defeito e ruim ué.

  • Rafael

    Meu Deus Cardoso, tu fez eu me lembrar que pra me formar no Técnico em Eletrônica precisei programar em Assembler um 8051 pra controlar o nível d´agua de um aquário!

  • Ednei P. de Melo

    Alguém poderia aproveitar a oportunidade e explicar (para um leigo em eletrônica) as vantagens e desvantagens de um Raspberry Pi em comparação ao Arduino? &;-D

    • Zaaboo

      RaspPi é um computador, você roda versões de Linux ou outros SOs nele. Ele basicamente tem muito mais poder de fogo em termos de processamento e memória, com a facilidade do GPIOS para conversar com o mundo externo.

      Mãs, além de um pouco mais complexo para programar (não muito mais, a comunidade também é enorme) ele é definitivamente mais caro.

      Você compra Arduinos Nanos na china por US$ 2,00.

      É aquele lance. Depende do que você irá usar. Eu tenho os dois e pretendo, em um dos meus projetos, colocar o Nano para conversar com um driver de motor de passo e com os sensores enquanto o RaspPi faz a interface com o usuário.

      • Rafael

        Eu diria que um complementa o outro e diversos projetos, aliás.

      • Mario Neis

        perfeito! é aquela velha bobagem de “ainhheeeee java é méliórrrrrr… ainheeeeee naummm cí charpí é meliórrrrr snifffsnifff num chinga u php”

        povo gosta de tentar botar parafusos na parede com alicates… ( vao conseguir, mas vão passar trabalho à toa)

        tudo vira bandeira/time de futebol, o mundo geek volta e meia é meio deprimente por isso =/

    • Dependendo do que você quer fazer é um canhão pra matar uma mosca. A vantagem que você vai poder programar em linguagens de alto nivel, mas em questão de preço, você pode comprar um Arduino por menos de dois dólares : https://pt.aliexpress.com/item/Nano-V3-ATmega168-CH340-MicroUSB-Compatible-for-Arduino-Nano-V3-0/32630652771.html . Mas acho que a maior vantagem no Arduino é o consumo de energia que é muito baixo.

      Se você quer algo que possa programar em alto nível , com mais recursos de memória e processamento, eu acho interessante o Orange Pi Zero, que custa apenas 7 dólares, e vem com 256 MB e processador ARM quadcore:

      https://pt.aliexpress.com/store/product/New-Orange-Pi-Zero-H2-Quad-Core-Open-source-development-board-beyond-Raspberry-Pi/1553371_32760774493.html

      Caso você só queira algo com um pouco mais de processamento que um Arduino, um pouco mais facil de programar, por que usa a linguagem lua, ainda tem o NodeMCU, que é microcontrolador e tem baixo consumo de energia, mas ainda assim consome mais que o Arduino e é um pouco mais caro, mas tem a vantagem de ter uma placa de rede Wi-Fi e você pode integrar a alguma aplicação remota.

      https://pt.aliexpress.com/item/Lua-Nodemcu-WIFI-Network-Development-Board-Based-ESP8266/32609975439.html

    • Diego Marco Trindade

      Eu comprei um Raspberry Pi para plataforma de emulação. Baixei o Retropie, e aí ficou simples. Basta seguir umas instruções e baixar os Roms pelo PC para um pendrive. Os emuladores são baixados do servidor do Retropie mesmo.

      Pelo que vejo o Raspberry Pi serve para computação básica, linux, etc. Já o Arduino permite automação, sensores. Não sou programador, e até gostaria de mexer mais com isso, mas não tenho tido tempo nem pra terminar de ver tudo o que o Pi tem a oferecer. Então qnd meu menino estiver grande vou oferecer a ele a oportunidade de comprar todos os componentes necessários para brincar com programação.

      • Raspberry PI também permite automação, visto que tem entradas/saídas digitais.

        • Luiz

          Mas elas tem um tempo de resposta maior, also o sistema operacional não é de tempo real, o timing não é tão perfeito.

  • Zaaboo

    Eu fiquei apanhando do PIC durante mais de um ano. Tentando otimizar o código para atualizar um display sem afetar o clock de um motor de passo.

    No arduino, fiz a coisa toda em 3 dias. Do 0 ao final. É estupidamente simples de usar.

    • Luiz

      O compiler do PIC é um LIXO, melhor escrever o HEX manualmente. Also, o PIC não tem memoria para nada, come on, 2K only? WTF, qualquer Atmel custando 0.01% de um PIC tem 200 vezes mais memoria.

  • Poxa o cara escreve um artigo básico, primeiro de uma série pra iniciantes e não me diz se esse Atmel ai é little ou big endian, nem me fala quantos registradores esse negócio tem, e pior, não lista as instruções que o processador aceita? Assim fica difícil!

    • Já começa que achei uma bosta por não rodar Crysis

      • Claudionor Buzzo Raymundo

        Se esperar mais uns 30 anos terá uma versão que roda.

      • Luiz

        Mas roda Crysis, só que a 60 fpy, 60 frames per year.

  • Artepan Panfleteria

    Ótimo texto… Vou seguir com muita atenção e vou comprar um kit também… Vai ser meu hooby com certeza…

    Agora uma dúvida: Estou montando uma sala em um centro social (beneficente) em uma favela de Fortaleza, para ensinar crianças e jovens. E com os computadores (doados e bem antigos) só dar para ensinar programação. E as aulas será javascript e posteriormente HTML com CSS . Será que vou “emburrecer” este jovens mais do que a tv aberta?

    • Vai, pq vai criar robozinhos sem os conceitos básicos, que entendem computadores como caixas pretas mágicas, Esse tipo de programador não consegue resolver problemas nem pensar fora da caixa. Ele nem sabe o que tem dentro da caixa.

      • Artepan Panfleteria

        Caramba…. Sem querer ser chato, o que você sugere? Estou montando aulas com o codeAcademy (Hora do Código) e khanAcademy…
        Aulas na web, já que não dar para instalar muitas coisas no pcs doados (velhos Thinkpad´s IBM com 1mb de ram) …

        • Mario Neis

          exatamente o que o pryderi comentou abaixo brother, e depois quando for migrar pra alguma linguagem ( pode se JS pela simplicidade) mas não deixe nunca de colocar de forma clara que aquilo lá tá simples assim pq tem muita coisa que tá acontecendo por “baixo” do código

          dirigir um carro automático é fácil, pq tem muita coisa acontecendo dentro do carro pra que o fácil aconteça. rsrs

        • Com esse tanto de memoria é mais facil ensinar a programar em C , por que do que adianta eles fazerem codigo html e js se com 1MB não da nem pra executar um navegador dos mais antigos?

          Você não consegue ao menos uma maquina de servidor? Com esse tanto de memória é mais fácil usar essas maquinas de terminal burro , se você montar uma maquina servidor com pelo menos uns 4GB de RAM e montar uma interface grafica bem basica com o serviço LTSP pra linux, vai dar pra colocar pelo menos umas 10 maquinas rodando com um navegador mais simples, como midori por exemplo. E eles vão poder programar em varias linguagens mais modernas. Acho que toda aula de programação precisa ter algo mais baixo nivel, tipo C , e algumas linguagens voltadas pra web depois, Python, PHP. Se tiver tudo no servidor fica mais fácil trabalhar, por que vai poder ter bibliotecas mais novas, mesmo tendo uma estação que não suportaria nada recente.

          • Rodrigo M

            Acho que depende do foco. Pelo meu ver se a ideia é iniciar os moleques na programação, não vejo porque utilizar C. Esse negocio de ser obrigado a aprender e dominar C, IMO é coisa saudosista. Tive aulas de Assembler e linguagem de maquina, mas foi algo mais para demostrar que existe, mesmo caindo em prova.

            IMO, mais útil do que aprender C, é aprender pelo menos mais dois paradigmas diferente, como o funcional e lógico.

          • Luiz

            Olha com 1MB de memoria dá pra fazer Lua funcionar em C.

            Lua é uma linguagem bem feita, melhor que JS, nenhum engine de JS roda com 1MB de memoria.

          • Artepan Panfleteria

            Lua? Não conhecia… Vou procurar no Oráculo….

      • Petrus Augusto

        Fale não… O que eu encontro de ‘programador’ (em geral os recém formados, mas já vi uns mais antigos do mesmo jeito) que chega a me irritar.

      • Fico lembrando de um programador que precisava de uma pasta mapeada do servidor pro programa dele funcionar, mas ele não sabia fazer isso e mandou o cliente me chamar pra fazer isso. Tem muita gente que emburrece por preguiça de entender o ecossistema que ele precisa pra trabalhar. Ai pegamos programadores que ignoram limitação de memória, processador, io, sistema de arquivos, e depois tem programas que entregam o mínimo e consomem o máximo da maquina, e que foram tão mal escritos , que pra otimizar, só fazendo denovo.

    • Eu trabalho com isso. Sou o coordenador de Ciência do colégio onde trabalho. Lembre-se: programação não é usar linguagem, mas lógica. Com lógica, você programa uma pedra. Lógica é resolver problemas, Crie os problemas, deixe-os resolverem. Quer ensinar programação? Primeiro vc precisa ensinar-lhes a pensar.dependendo da faixa etária, vc pode começar com vários interruptores, fios e lâmpadas. Faça-os entender quem liga o que. O interruptor é o comando, a lâmpada (ou qualquer outra carga) é a ação que vc queira

      • OverlordBR

        Quer ensinar programação? Primeiro vc precisa ensinar-lhes a
        pensar.dependendo da faixa etária, vc pode começar com vários
        interruptores, fios e lâmpadas.

        Ou com qualquer tarefa cotidiana da vida. 🙂

    • Não ensine uma tecnologia diretamente, primeiro ensine lógica, pois linguagem de programação é como idioma, qualquer um aprende, mas só fala e se expressa bem quem conhece a lógica por trás do idioma (gramática, sintaxe, acentuação, etc).

      Um exercício simples de lógica é: como se coloca uma roupa?

      Um exercício um pouco mais complexo de lógica:

      Você está em frente a 2 portas, uma te leva pro paraíso e outra te leva pro inferno. Ao lado das portas tem 2 irmãos gêmeos (Tweedledee e Tweedledum?), sendo que um sempre fala a verdade e o outro sempre fala mentira. Você não sabe quem é que fala a verdade ou mentira.

      Você só pode fazer uma pergunta para um dos meninos (lembrando que você não sabe quem é o mentiroso). Qual é a pergunta que deve ser feita para ter certeza que a porta apontada é a que leva pro paraíso?

      • Artepan Panfleteria

        Isso é. Aprender a lógica é essencial. Estou me baseando nos cursos da Code . org ….
        Quero pelo menos dar algumas ferramentas para esses jovens favelados… Para que eles não virem bandidos…. 🙁

        • Sua atitude é louvável e acredito que ninguém esteja te criticando aqui nos comentários. Eu particularmente acho que você tem que colocar o conteúdo de forma que prenda a atenção desses jovens, senão eles vão acabar presos de outra forma. •ᴗ•

          Desenvolva um conteúdo que deixe um gosto de “quero mais”, tipo novela da Globo (OK, o exemplo foi péssimo, mas você entendeu…)

          • Artepan Panfleteria

            Tranquilo…. Estou atrás de toda informação. Detalhe: sou designer gráfico e não sei nada de programação. Acaba que eu também estou aprendendo…

            Mas tinha que fazer alguma coisa lá…. Neste centro social, tem esta sala, com 17 notes Thinkpad IBM (antigos, de doação). Estavam empilhados e mofando….
            Arrumei, limpei e coloquei para funcionar 11 notes…

            Estava querendo ensinar o que sei, Photoshop, illustrator, InDesign, mas com esses notes, sem chance.
            Por isto pensei em javascript e depois html com CSS….
            E estou pesquisando muito no code . org…..
            Vai ser isso mesmo… Vou fazer duas turmas aos sábados: das 9h ao meio dia e das 13 às 16h….
            É o meu trabalho voluntário….

            O ideal seria comprar estes kits Arduino para cada estudante, mas não tenho grana para isto…
            Já vou comprar 11 mouses para doar para este centro…

  • Fred

    Parabéns pela iniciativa. Vou acompanhar a série.

  • Mario Neis

    Sincronicidade é algo legal, tava querendo ver algumas coisas mais práticas com o arduíno e me aparece isso

    @ccardoso:disqus, coloca esses carinhas que tu for criando num listagem dentro do MB pra ter indexada toda essa história em ordem cronológica.

    Grato pela iniciativa! Way to go.

  • Bruno

    Só de ler o texto eu quase cliquei no botão comprar.

  • Othermind

    Dá pra fazer uma “fechadura eletronica/digital” com senha ou algo assim usando arduino como interface? Muito me interessa…

    • Zaaboo

      Sim, sem dúvida. Acho que você encontra inclusive os códigos prontos.

      • Sim, esses projetos que citei pro Othermind são todos opensource.

    • Até com sensor de voz of RFID se você quiser

    • Matheus Lopes (matheuscl)

      dá, e vou te falar, não chega a ser nada de outro mundo não, claro, se voce entender o minimo de programação ou ser curioso o suficiente =)

    • Sim dá. Eu já vi um projeto onde o cara colocou um leitor biométrico no carro dele, onde só dá partida se a digital for validade. Tem um outro projeto engraçado onde a fechadura só abre se o cara bater na madeira numa sequência correta, tudo usando Arduino.

  • Alex Henrique

    Arduino e PIC no meu ver já estão passados. O negócio agora é o esp8266 e esp32. Já vem com Wi-Fi e Bluetooth.

    • Yeah vamos todos aprender a dirigir em Bugattis Veyron, é muito melhor que fusquinha ou fiesta.

    • Arduino tem documentação ampla, trocentos componentes compatíveis e pra quem não precisa de rede ainda é interessante. Acho que o aprendizado de um não exclui o aprendizado do outro. Eu prefiro o kit nodemcu, mas acho que o arduino continua tendo o seu lugar em paralelo as alternativas novas, pelo menos enquanto nenhum se consolidar igual o arduino se consolidou.

      • Alex Henrique

        Veja o canal do vídeo que respondi ao Cardoso.

    • Já tem Arduino com Wi-Fi e bluetooth integrados.

      • Alex Henrique

        Sim, ao preço de um rim.

    • RSPeres

      Até a hora que vc tentar usar as features bacanas que dizem ter como rede mesh e descobrir que os chineses não estão muito afim de criar documentação. nesse momento o Arduino passa a ser lindo de novo! rsss

  • TakoKuOko

    Muito bom bom cara! Isso sim é um post sobre tecnologia! Da minha parte, posso afirmar, sai do Arduino e estou feliz e o meu bolso mais feliz ainda… Estou falando do NodemCu, Wemos, etc.

  • Eduardo Paiva

    Hola, muito muito interessante, estou lutando para aprender a programação, gostaria de saber qual é o seu canal do YouTube, estou sempre por lá captando idéias, e pondo algumas em prática, atualmente estou fascinado pelo app Blynk, que integra o Arduino a Internet numa interface bastante interessante, espero aprender mais, haa e parabéns pelo post.

    • Pq você acha que eu tenho um canal no Youtube?

      • ElGloriosoRangerRojo™

        VOCÊ NÃO TEM?!?!?!?

        • Ele tem, mas não no youtube. Foi isso que entendi. Acho que ele criou no vimeo, mas haters diriam que é no xvideos.

          • Reinaldo Matos

            Ele tem vergonha de dizer, mas tem Tumblr…

    • Youtube é péssimo para aprender coisas complexas, não tem como imprimir um esquema eletrônico do vídeo ou dar um zoom apenas na parte que você esta trabalhando na hora, um código que você precisa apenas copiar e adaptar não da pra fazer isso com vídeo. Pra eletrônica o modo texto ainda é melhor.

  • LV

    Agora sei o motivo do Contraditorium não ser atualizado há 15dias.

  • Renato Provazi

    a primeira coisa a ser feita é obviamente um fucking tricorder

  • Marcos Calicchio Vianna

    Cara, fantástico!
    E com você passando umas dicas de Arduino, com certeza eu vou começar a brincar com ele também.

    Pergunta: Por que você optou pelo Arduino e não pelo Raspberry?
    Tinha alguns projetos em mente?

    • Pq o Raspberry é um computador, computador eu já tenho, passei a vida inteira mexendo com computadores, qual a graça de comprar um computador menor e mais limitado?

      • Luiz

        Compilar manualmente os drivers do OpenGLES?

  • Reinaldo Matos

    “Você pode programar um microcontrolador para ler dados de sensores, identificar a temperatura de um aquário.”

    Escorreu uma lágrima de saudade da minha época de Senai, onde meu projeto final, foi justamente um controlador de temperatura de aquário, feito com um PIC-16F84, um display de cristal liquido (Display de 7 segmentos é para os fracos).

    Depois de ver o bixinho funcionando redondinho, a alegria era imensa…

    Infelizmente, por falta de tempo, ainda não consegui brincar com Arduino, mas está na lista…

  • IURB

  • @ccardoso:disqus um projeto muito simples, mas muito útil para sedentários (meu caso) que eu fiz foi o seguinte: eu peguei um Arduino Nano, um receptor de infravermelho e um relé, então peguei o controle da NET e li o código IR do botão amarelo e utilizo para ligar e desligar a luz do quarto, porque é um saco ter que levantar da cama só pra fazer isso.

    Eu também já construí um carrinho controlado por controle remoto e com vários sensores (de CO2, ultrassônico e gás metano). O vídeo da primeira versão do carrinho está aqui https://goo.gl/photos/CfF6jD1EojBzbqNe8

    O último projeto que eu fiz foi controlar a bomba d’água de casa, onde instalei 3 sensores de nível na caixa d’água (nos níveis 10%, 50% e 100%) e a bomba liga automaticamente quando chega a 50% da caixa e só liga se tiver água no cano de entrada vindo da tubulação da CEDAE. Coloquei do lado de fora 3 LEDs, indicando cada nível. A próxima versão vou fazer enviando essa informação por Wi-Fi pra um app no celular.

    Uma dica de locais pra comprar é a Robocore (brasileira) e a Sparkfun. Inclusive o software Fritizing (usado para desenhar esquemas) tem placas Arduino e componentes da Sparkfun pra ficar mais didático no desenho.

    • ElGloriosoRangerRojo™

      Caraca, genial esse do controle da TV!

    • Julio da Gaita ✔

      respondendo para pesquisas depois do trampo… .)

    • Eu fiz isso de copiar o IR do controle da NET XD

    • Knup

      E aí Shimatai! E aquele projeto da mesa touch que você estava fazendo? Utilizava Arduíno?

      • Eu fiz várias mesas, vendi todas na época. Não utilizava Arduino não (acho que nem existia ainda), era uma CPU com software de computação visional e uma webcam para leitura de infravermelho. Tempos depois chegou uma tela com touchscreen instalável em TVs e barateou o equipamento. Mas foi um tempo muito maneiro e divertido, além da grana.

  • tiago

    Eu tenho varios, utilizo como minions para fazer pequenas rotinas chatas que as vezes não tenho tempo de fazer, como tratar meu peixes no aquario. Mas o novo mundo mesmo são as placas Esp8266, são o novo arduino e utilizam a mesma interface com a vantagem de terem Wifi e são bem mais em conta que os chips atmega sozinhos

  • brunogbr

    Excelente Cardoso, eu também to começando a entrar nesse hobbie, to esperando ansiosamente meu kit chegar, com certeza vou acompanhar essa tua série/jornada. 🙂

  • Marcio Pereira

    Há! Entendi tudo!!!! Eu também comprava as revistas e fazia algumas montagens, que não funcionavam, geralmente. Conheci o Arduíno em 2015 e virou um hobby bem legal! Adorei e vou acompanhar de perto. ABS!

  • OverPower

    Quem lembra da revista Saber Eletrônica deve lembrar também da revista Elektor e seus projetos mirabolantes que a gente babava para querer fazer mas esbarrava na complexidade da placa de circuito impresso para os nossos decalques e canetas de circuito…. :'(

  • daniel matos

    artigo ótimo… matou muitas curiosidades que tinha sobre o arduino e despertou interesse.
    esperando os próximos capítulos***

  • Daniel Sugui

    Que artigo incrível! Me fez voltar 20 anos no passado quando fazia meu curso técnico de eletrônica. Usei muito 555, montei muito painel de led, cheguei a programar um Z80 direto nos registradores usando comandos em hexa. Lembro quando os PICs eram a sensação do momento, a maioria dos trabalhos de conclusão de curso no meu ano de formatura usavam PIC. Quem sabe com mais artigos como esse eu não acabo comprando um Arduino pra brincar também…

  • Oberaldo Gilmentoo

    Pra velha guarda, arduíno é tipo um PIC para meninas. 😉 Qqer maker hipster que nunca queimou o dedo no ferro de solda (os caras que dizem “ai, solda tem chumbo, é tóxico!”) hoje pode mexer com arduíno.

    Para quem ficou interessado / empolgado, vale a pena pesquisar os preços dos kits, acessorios e add-ons da China. Demora um bocado, mas a economia é significativa. A maioria das coisas é tão baratinha que pode ser comprada com frete grátis, e cada item mal passa de dez dólas, então a chance de ser taxado é desprezível. No momento estou esperando um receptor de GPS. 😉 Com vinte dólas v. já faz uma farra de Arduino no AliEx.

    Cardoso!

    Gostei muito da sua descrição do início da história: eletrônica nos anos 80, Saber Eletrônica, Be-a-bá da eletrônica, etc., e no fim das contas só se montava amplificadores de áudio, sirenes com som estranho, e todos os indefectíveis 555 astáveis do Newton C. Braga. Tb passei por um TK90x que deu problema no teclado, mas como ainda estava na garantia a loja trocou por um TK3000IIe. Percloreto de ferro e decalques transferíveis também são uma “boa” lembrança (projetar PCB em papel milimetrado, nem tanto).

    Sempre foi viável montar circuitos eletrônicos que se conectavam na porta paralela do PC com alguma facilidade. Mas, assim como a maioria, só fui descobrir isso depois que já existia internet. Mesmo assim não se fazia muito porque a) Não se iria arriscar queimar algum componente do caríssimo PC; b) o PC não era portátil. O ideal era ter um disquete de boot com DOS só para isso, mas, até o win98me, era possível acessar a LPT sem maiores problemas. Meu programador de PIC funciona conectado na porta paralela (eu fiz todo desde a PCB). Tinha uma linguagem de programação de um holandês gente boa que me salvou do assembly.

    • Flávio Pedroza

      No meu tempo era essa aqui que reinava https://pt.wikipedia.org/wiki/Intel_8051.
      Em relação a LPT, passei pela mesma coisa. Fazíamos muita coisa com a porta paralela do PC: controlar motor de passos, conversores a/d e d/a, discador automático, etc. Acessava através de comandos em assembly (mov, out, in). Mas o windows XP bloqueou acesso direto.

      • Oberaldo Gilmentoo

        Eu acessava a porta paralela com Basic, tanto no modo direto quanto com uns programas… era tosco e pouco otimizado, mas como era só brincadeira, tanto fazia…
        Já consegui fazer a LPT funcionar no XP, e conseguir usar o meu gravador de PIC, em algum lugar pela internet tem um driver que substitui um driver da Microsoft. Depois passei para Arduino, Attiny, e um USBTIny… ele conecta na USB tão facilmente, com a IDE do arduino…
        Ainda tenho uns PIC´s sem uso, que teoricamente eu poderia programar usando o Arduino como programador (que preguiça)

    • Você era rico, tinha um PC. A maioria dos jovens não tinha um PC.

      • Oberaldo Gilmentoo

        Antes fosse! 🙂 Só fui ter PC em 1993, e eu já tinha 20 anos. Só descobri que poderia interfacear a porta paralela em 1997, fuçando na internet. E só realmente tive coragem de fazer isso (usando o primeiro PC, era um 486 DX50) em 1999, depois que já estava no segundo PC (um K6-2) e podia arriscar o primeiro. Mas aí eu já tinha 26 e já não era tão jovem. 😉
        E então descobri que já era possível fazer isso desde os primeiros PCs com porta LPT. Se eu soubesse antes, o quanto eu teria enchido a paciência do meu pai para comprar o PC uns anos antes…

      • Oberaldo Gilmentoo

        Quem me dera! 😉 A primeira vez que eu liguei um circuito em porta paralela, eu já não era “tão” jovem (tinha quase 30). Mas foi aí que eu descobri que já poderia ser feito desde que existia PC.

  • Paulo Canedo Costa Rodrigues

    Vim até aqui só pra dizer que eu quero ver mais posts desses!!!

  • Duas coisas:
    1 – por favor, não use microeletrônica nesse contexto. Microeletrônica é o design, fabrico e uso de estruturas (sub)micromêtricas.
    2 – Infelizmente Arduino é porta de entrada para muitos. Alguns terão boas ideias, mas a dura realidade irá lhes mostrar que Arduino é meio que inútil num mundo real. O pisca-pisca citado como exemplo é um show de ineficiência de código, jamais um produto iria para produção com aquela estrutura. A melhor parte são os módulos, que baratearam muito.

    • 1 – microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica microeletrônica

      2 – onde CARALHOS você começa aprendendo já desenvolvendo para produção? Que bosta de didática é essa? Então não vamos mais ensinar nem Pascal, que os alunos comecem no primeiro dia de Introdução á informática aprendendo a programar em assembler. Não, em microcódigo, direto nas entranhas do processador. Satisfeito, tá bom assim?

      • No CEFET, no técnico e na graduação, aprendemos direto com assembler e C. Óbvio que na primeira aula não era lá grandes coisas, mas a curva de aprendizado era bastante razoável para um estudante médio.

      • Reinaldo Matos

        Conversando com alguns estagiários aqui da empresa, parece que nem estão passando tanto na programação estruturada, já vão direto para orientação a objetos.

        • Luiz

          oh, isto explica

          class BooleanHelper {
          private boolean b;
          BooleanHelper(boolean b) { this.b = b; }
          public BooleanHelper isBooleanTrue(boolean b) { return new BooleanHelper(b == true); }
          public bool getValue() { return b; }
          }

    • Luiz

      microeletronica? tu quis dizer VLSI, oh well, ou manufatura? todo mundo chama de manufatura ou processo, como 10nm manufacturing.

  • tryedge

    A melhor vantagem do Arduino é sem dúvidas o aprendizado, pode não ser útil mas só de estar testando novas ideias e treinando o conhecimento de lógica já é um baita microcontrolador, e claro um baita custo x benefício.
    Porém prefiro meu MSP430 😀

  • Adriano

    Caramba, Cardoso, muito bacana ler coisas desse tipo, quem sabe eu não tome vergonha na cara, arrume tempo (sim, é possível arrumar tempo) e comece essa saga também? Vou acompanhar a sua com atenção….. parabéns…

    À todos os entusiastas, pergunto: Acham melhor aprender já com um projeto em mente ou vai na teoria/prática esperando o próprio “EUREKA”?

    • -_-

      Eu acho que tanto faz. Eu comprei o Arduino sem ter ideia do que fazer, e me diverti muito assustando minha sogra.

      Tenho um amigo menos espírito de porco que queria ajudar uma amiga que teve AVC e perdeu os movimentos, exceto da ponta de um dedo, então ele já tinha um projeto em mente quando comprou o Arduino para fazer um sistema de comunicação com acelerômetro em um dedal.

  • Ricardo

    Programação nunca foi minha área, qual a curva de aprendizagem de um Arduíno? Para um iniciante qual seria melhor, Rasperry ou o Ardo?

    • Filipe Siegrist

      Se vc já programou em C alguma vez na vida (ou em alguma linguagem parecida tipo java ou até php) é bem fácil. Em uma semana eu já consegui fazer o que precisava só vendo tutoriais na internet

    • A curva do Arduino é muito melhor pq você não tem que aprender um monte de coisas antes de começar a mexer nele. O RP é um computador comum rodando Linux, algo que iniciantes (ou mesmo profissionais) deveriam manter distância.

  • Filipe Siegrist

    Valeu Cardoso, estou começando na área dos microcontroladores. Eu ficaria grato se você continuasse essa série de artigos e explicasse mais sobre a parte do hardware. No aguardo.

  • Luiz

    Atmel > PIC

  • +1 pra acompanhar a série (que, ao contrário do Sense 8, espero que não seja cancelada logo)

    j/k

  • Marcelo Eiras

    Conhecem o ardupilot ? avião/drone/heli/rov de controle remoto usando arduino.
    http://ardupilot.org/

  • void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
    }

    void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
    }

    Que maravilha essas modernidades de poder escrever um simples SLEEP em uma unidade básica de TEMPO, ao invés de executar um número fixo de “noops” já sabendo de antemão quantos ciclos ele leva, e tendo que calcular quantos ciclos precisam para um segundo XD

  • Também não é preciso sequer comprar um Arduino para testar seus circuitos

    Acho que você quis dizer que não é preciso QUEIMAR um Arduino para testar seus circuitos, né? 😀

  • Excelente artigo, (sem contar a parte técnica) me fez recordar muito de mim mesmo. Abraços !

  • AHSOliveira

    Eu tenho que criar vergonha e usar o meu para fazer alguma coisa, até agora fiz pouquíssimas coisas.

  • Block Black

    Fantástico!!

  • Cristiano

    Sensacional. Lendo o post e alguns comentários fiquei muito animado e comprei um desses kits iniciantes, finalmente vou dedicar algum tempo pra isso que será meu hobby. Sou Bacharel em Direito de formação, Sorveteiro de profissão (sério, ramo da família). Não entendo um ponto de programação. Mas sempre gostei de tecnologia. Frequento o Meio Bit desde 2007. Voltar a ser criança quando desmontava walkman e qualquer outro eletrônico que conseguia por as mãos, pra “ver por dentro” e tentar entender como funcionavam.

  • Salles Magalhaes

    Wow… Estava animado a comprar um e esse ótimo texto me animou ainda mais..

  • Badbass55

    Cardoso, obrigado por compartilhar, adorei “não, não roda Crysis” ahahhaha e “compre mais memória” ahhaah.
    Esperando os próximos capítulos dessa saga.

Aproveite nossos cupons de desconto:

Cupom de desconto Locaweb, Cupom de desconto HP, Cupom de desconto Descomplica, Cupom de desconto Nuuvem, Cupom de desconto CVC, Cupom de desconto Asus, Cupom de desconto World Tennis