quinta-feira, 9 de junho de 2011

Hackers, Tecnologia, Criatividade

Uma das coisas maravilhosas a respeito da tecnologia é a capacidade de potencializar a criatividade humana. No passado, para expressar criatividade, o homem tinha de ter algum talento artístico, seja na pintura, na literatura, música ou desenhando. Tecnologias modernas permitem que pessoas, sem o talento de um Picasso ou Bach, criem coisas espantosas. É como a definição atual de criatividade que li no blog do Sílvio Meira: a combinação de RIP, MIX e BURN: pegar uma coisa daqui e dali, recombinar (raramente introduzindo algo novo, seu) e apresentar o novo desenho ao mercado.

A placa TWR-MECH da Freescale torna fácil a vida do hacker, aquele amante da arte de dominar tecnologias (ao contrário do cracker, este sujeito repugnante que gosta de invadir e inoperar sistemas, criar e disseminar vírus de computador, entre outras ações nocivas). Você pode pensar nesta placa como uma extensão de I/O de seu PC ou um host embarcado. Ela permite que programadores .NET, Java ou Python assumam os controles do hardware e leiam sinais analógicos e digitais externos. Pode se conectar via interface USB ou RS232. Quando conectado via USB, ele se parece como uma porta serial virtual para o host controlador, permitindo que qualquer linguagem com funções de acesso a serial possam realizar coisas como ler canais analógicos ou controlar um servo rádio controlado.

Para usuários avançados, podemos detalhar que esta placa tem um processador ColdFire de 32 bits com 512 K de Flash e 64 K de RAM. Um debugador USB-BDM onboard torna a programação e o debug de código C de forma facilitada. A placa torna o desenvolvimento do sistema embarcado de tempo real simples, com pouca necessidade de se escrever drivers customizados em Linux, Windows ou Android.
Figura 1 - Placa Freescale TWR-MECH

A figura 2 a seguir mostra um exemplo de um sistema Linux Embarcado agindo como controlador da placa TWR-MECH. Este sistema Linux embarcado é baseado no processador i.MX233 com capacidade wi-fi. Ele se conecta a placa TWR-MECH usando o driver USB Virtual Com em linux (usbserial).




Figura 2 - Placa TWR-MECH controlada por Linux Embedded


A figura 3 é um robô andante baseado no Chumby One, que é o sistema embarcado host. O Chumby One está instalado no topo de um FSLBOT, que é um robô baseado na placa TWR-MECH. O Chumby One pode ser programado em Python, Perl ou Bash. Há também um port para RobotSee, que é uma linguagem de programação tão fácil quanto Basic e tão poderosa quanto C. Para mais informações sobre isso, acesse www.emgrobotics.com

Figura 3 - Chumby One controlando robô usando a placa TWR-MECH

A placa TWR-MECH é uma extensão de I/O para  qualquer sistema que utiliza uma serial ou USB. Quando conectado a um host Windows você pode escrever programas usando Java, .NET, C#, Visual Basic ou RobotSee. Alternativamente, em Linux poderão ser utilizadas linguagens como Java, Python, Perl, Bash ou RobotSee.

Já a placa i.MX53 é um computador embarcado 3 x 3 polegadas com um processador i.MX53 de 1 GHz e 1 GB de RAM-DDR3. Com isto, ele tem poder suficiente para executar um Ubuntu desktop. Para conectá-lo ao mundo, a placa tem dois conectores USB, um conector USB OTG, uma porta Ethernet, um conector serial DB9 e um conector VGA DB15.

Figura 4 - Diagrama de bloco da placa i.MX53

Esta placa tem suporte para Linux, Android e Windows Embedded 7. Ela vêm com um Linux e Ubuntu Desktop, incluindo o GCC, tornando fácil o desenvolvimento e o debug de aplicações nele, pois nenhum host Linux é necessário. Para tanto, um DVD está incluso com uma imagem VMWare com um Linux Target Image Builder (LTIB) pré-instalado. O LTIB torna fácil a criação do seu próprio Linux customizado.

O processador da placa é poderoso o suficiente para rodar bibliotecas de visão computacional como o OpenCV. A figura 5 mostra um braço robótico com ambas as placas i.MX53 e TWR-MECH. O i.MX53 roda linux com Ubuntu Desktop e uma aplicação baseada no Open-CV conectado a uma câmera USB. A placa controla os quatro servos do braço, conectando-se a este via serial. Na sequência, a figura 6 ilustra um diagrama de blocos.

Figura 5 - Braço robótico controlado por visão computacional usando as placas citadas

Figura 6 - Diagrama de Blocos

As figuras 7 e 8 demonstram uma arquitetura similar para um carro de corrida da Freescale Cup Racer. Ele utiliza um controle eletrônico de velocidade (ESC) RC da Traxxas para controlar um motor CC. Você controla o ESC da mesma forma que um servo RC. Isto facilita a manipulação do motor CC pela placa TWR-MECH.

Figura 7 - Carro de corrida da Freescale Cup Racer

Figura 8 - Diagrama de blocos do carro

A Vex Robotics comercializa um kit robótico com partes metálicas em vários formatos e tamanhos, inclusos os parafusos necessários para montá-los. Junto, há engrenagens plásticas, rodas, eixos, servos e motores que o habilitam, com uma chave Allen, criar dispositivos eletromecânicos diversos.
Um kit básico é exibido na figura a seguir. Consiste em mais de 300 peças plásticas e metálicas diversas. A figura 10, em seguida, mostra alguns robôs montados com este kit. O da esquerda abre garrafas de cerveja. O da esquerda é um braço robótico com 3 graus de liberdade e uma tenaz.

Figura 9 - Kit da VEX

Figura 10 - Alguns robôs montados com o kit da Vex

Um servo é um tipo especial de motor que só gira 180 graus. É dado um comando e ele se posiciona conforme. A um motor é dado um comando de velocidade e ele gira na velocidade determinada. Os servos da VEX são a 3 fios, podendo ser conectados diretamente à placa TWR-MECH através de um adaptador macho-fêmea a 3 fios. Já os motores contam com dois tipos de interfaces, a 3 e 2 fios. A 3 fios, podem ser conectados diretamente à placa via o referido adaptador. Já a 2 fios é necessário um adaptador de 2 para 3 fios que pode ser adquirido da VEX. Ambos motor e servo podem ser alimentados usando fontes de 5,5 a 8 Volts. A fonte da placa TWR-MECH com 4 pilhas AA a 6 Volts pode alimentá-los diretamente. Para robôs mais pesados, uma bateria de 7,2 Volts pode ser conectada à placa utilizando o pino BAT2 da mesma.
A figura 11 mostra um robô VEX controlado por uma placa TWR-MECH e um netbook. Ele tem 6 rodas tracionadas por dois motores a 3 fios. Sendo "pesado", ele exige uma bateria de 7,2 V, sendo uma de Ni-Cd acoplada diretamente ao pino BAT2 da placa. O regulador da fonte interna desta placa pode aceitar entradas de até 16 V.

Figura 11 - VExplorer usando a placa TWR-MECH e um netbook executado RobotSee

Iniciantes podem programá-lo de forma simples e rápida com um PC-Windows e usando RobotSee. Já experts podem programá-lo numa ampla variedade de linguagens usando a placa i.MX53.

Enfim, a tecnologia tem feito da atividade de "hackear" algo facilmente acessível. Tais kits permitem que se possa expressar qualquer ideia na forma física, seja algo que requer controle de movimento, leitura de sensores ou simplesmente controlar LEDs. Há soluções que fazem isto de forma simples, rápida e divertida.

Traduzindo e adaptado de: The hacker's trifecta: Freescale TWR-MECH board, i.MX53 Quick Start Board and VEX Robotics

Nenhum comentário:

Postar um comentário