Tags: #eletrônica
Para quem quer se aventurar mesclando SW com HW, esta é um boa plataforma, pois, basicamente, é uma placa montada com tudo o necessário para plugar, jogar o código e ligar. Claro, tem suas limitações portanto não é possível jogar uma distro lfs nela… hehe e talvez não tenha memória para um ‘hello word !’ em java ^.^
Existem também outros kits e arquiteturas para a mesma finalidade baseados em AVR, ARM ou 8051 vendidos pela ATMEL ou pela Microchip, mas agora, aqui e hoje, falaremos do Arduino (ou Arduíno)
Por ser um kit completo, é fácil de se trabalhar, porém para quem gosta de dificuldades, sugiro fazer um programinha em assembler no notepad, ou vim, e jogar o código hexa.. =-)
Conceito:
Arduíno é uma plataforma open-source de protótipos eletrônicos. Existem vários modelos de protótipos de características diferenciadas.
Os seus microcontroladores são da ATMEL AVR (Atmega2560, ATmega328).
São usados geralmente para implementações de sistemas de controle. Por serem programáveis, suas aplicações são amplas, como um controle de acesso por um periférico (teclado) ou um controlador de temperatura por diferencial de tensões.
Algumas pessoas ou referências dizem que a linguagem utilizada é a C/C++, ‘mentira’, a Arduíno tem uma linguagem própria, que é baseada no C e no C++. Ou seja, na prática é C, na teoria é uma linguagem própria.
Seu hardware tem licença Attribution-ShareAlike 2.5 que é livre para copiar, distribuir, transmitir e modificar seus esquemas e documentações.
Para a programação também é indicado o uso da IDE processing que é open source e gratuita. Ou, como muito de nós gostamos, tem sua IDE própria achada no repositório do apt (pelo menos no Mint), ou aqui. O Arduino ADK tem algumas funções muito facilitadoras, pois evita de ter que pegar as especificações do microcontrolador para configurar pinagem por exemplo, pela chamada de pinMode(), digitalWrite(), digitalRead(), analogWrite() e analogRead(). E confesso que isso é o mais chato, pois pela especificação, você configura bit a bit em hexadecimal no código. Quem quiser se aventurar, faça com um PIC. =-)
Exemplo:
Dependendo da apliação, é escolhido o HW apropriado: http://arduino.cc/en/Main/Hardware
Como gosto muito da área de celulares, escolho para falar um HW para androids:
Quem gosta e faz algumas aplicações práticas em eletrônica, procura inicialmente a tabela de características, que diz a ‘potencialidade’ do HW (limitações e capacidades). Mas confesso que sem colocar a mão na prática, é uma simples documentação para constar.
microcontroller | ATmega2560 |
interface with Android | USB based on the MAX3421e IC |
digital input/output pins | 54 – 14 PWM outputs |
16 Analog inputs | |
4 UARTs | |
crystal oscillator | 16 Mhz |
some features | USB connection |
power jack | |
ICSP header | |
reset button |
DC Current per I/O Pin | 40 mA |
DC Current for 3.3V Pin | 50 mA |
Flash Memory | 256 KB of which 8 KB used by bootloader |
SRAM | 8 KB |
EEPROM | 4 KB |
Operating Voltage | 5V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limits) | 5.5-16V |
Uma boa vantagem do Arduíno é que sua alimentação pode ser feita via USB, o que te libera de ter uma fonte de tensão ou de cortar o plug do seu carregador de celular antigo.
Aplicações/Desenvolvimento:
Com esse HW é possível se conectar e interagir com um Android, porém brasileiros, só funciona para Android 3.1 e Android 2.3.4…
Essa comunicação é feita pelo protocolo Android accessory protocol, e encontramos mais informações para o desenvolvedores no developer.android.
Para quem quer fazer um primeiro projeto sugiro fácil e útil que apelido de ‘evitando tropeções’. Que na verdade é um interruptor fotoelétrico ligado a lampada do seu quarto. Pois seu HW é simples, precisa de um microcontrolador e o seu periférico é um LED/OPTOTRIAC que capta movimentos e seu código é um loop infinito com interrupções habilitadas. Quando uma interrupção é ativa, ou liga a lâmpada, ou espera um delay (para você chegar na cama sem tropeçar) e desliga. Porém o arduíno é muito usado para ficar conectado ao pc, celular, então é um certo desperdício de HW usar um arduíno para uma aplicação tão simples.
Para quem desejar quebrar a cabeça ( e não é Brainfuck language ) pode implementar o protocolo 6LoWPAN e comunicar via celulares. Ou fazer algo mais normal, uma comunicação “simples”, onde seu celular recebe um sinal que ativará o funcionamento da arduíno e poderá fechar o circuito da máquina de café. =-) Ou liberar algum acesso, ou ligar o som, o computador. Ou ativar um controlador geral, que liga o som, a luz e o chuveiro. E adivinha quem é o controlador geral? Seu amigo computador…\o/ gostei dessa idéia..
Bom, viagens a parte, alguma outra sugestão ? Algo a acrescentar sobre Arduíno ???
PS: Se alguém tiver uma boa ideia com fins lucrativos e quiser ajuda na mão de obra.. Sou voluntária… heheh