terça-feira, 17 de setembro de 2013

Placas para prototipagem rápida da Texas Instruments (Atualizado)


Dica quentíssima para quem quer começar a desenvolver projetos de eletrônica/programação embarcada e está sem grana.
A Texas Instruments (TI), uma das maiores (se não for a maior) fabricantes de componentes eletrônicos do mundo está com uma promoção de aniversário onde você ganha 25 dólares para gastar na loja deles (https://estore.ti.com/), isso mesmo ganha. Sem contar que a TI também arca com os custos de envio e impostos de importação do Brasil (que são absurdos: 60% em cima do valor declarado).

A TI possui várias placas de para prototipação rápida, estilo Arduino, onde podemos desenvolver um programa, gravá-lo no microcontrolador da placa e já sair testando o projeto. 
E a melhor parte, para os fãs de Arduino é que a IDE Energia (http://energia.nu/), que também é free, pode ser utilizada para gravar as placas da TI, e tem a interface e comandos iguais aos do Arduino, ou seja, somente é necessário se adaptar a nova pinagem.

Seguem os links de algumas placas que podem ser adquiridas por menos de US$ 25.00:




As placas acima são compatíveis com a IDE Energia. Estou fazendo testes com a MSP430 e ela funciona similarmente a placa Arduino.

Você pode ver um comparativo das placas em  http://www.ti.com/ww/en/launchpad/overview_head.html

Então vamos lá, para poder desfrutar dessa promoção (que não sei até quando é válida), basta fazer o seguinte:


  • cadastrar-se normalmente na página da TI (https://myportal.ti.com/portal/dt?provider=TIPassLoginSingleContainer&lt=myti&j5=2&j3=1&goto=https://my.ti.com/cgi-bin/home.pl);
  • clicar no link de confirmação de e-mail, assim que você receber o e-mail de confirmação;
  • adicionar os produtos desejados ao carrinho. Os produtos ficarão listados no lado direito da página, podendo ser removidos a qualquer hora;
  • após selecionados os produtos, clicar em Checkout Now (um botão vermelho que fica logo abaixo dos produtos no carrinho);
  • preencher os dados para entrega. É importante destacar que é obrigatório preencher o seu CPF válido, no campo Address Line 2. Ao chegar na alfândega brasileira, será gerada uma DARF referente ao imposto de importação e será paga pela transportadora (normalmente FEDEX);
  • quando chegar na hora de preencher a forma de pagamento, no centro da página aparecerão as opções de pagar com PayPal, Cartão de Crédito, etc. No lado direto, abaixo de um resumo da compra, aparecerá um campo (se não me engano, Coupom Code), onde você deve preencher o código National-1yr e clicar no botão logo abaixo;
  • após a validação do cupom promocional, o valor total da compra, (caso você tenha adicionados produtos que não ultrapassem 25 dólares), deve ser zerado.



Ao efetuar a compra você deve verificar se o produto escolhido está em estoque, normalmente aparece a informação shipment in 24h - 48h ou out of stock. Nos casos de o produto estar em estoque, a encomenda chega em cerca de 5 a 8 dias, é bem rápido. A TI envia e-mail com atualizações do status do seu pedido e envia o código de rastreio quando o pedido é postado que pode ser rastreado na página da FEDEX (http://www.fedex.com/br/).


[Pois é pessoal, quem comprou, aproveitou. Quem comprar agora, terá que arcar com as despesas dos impostos. Pois a TI não está mais pagando os impostos. Segundo alguns colegas comentaram, gira em torno de R$ 80,00 para compras com valores próximos a US$ 25.00.]


quinta-feira, 18 de julho de 2013

Controlar um carrinho com o Controle do PS3 Usando Arduino

Esse é um projeto bem legal e bem simples, que pode ser encontrado facilmente na internet, porém nem sempre está descrito de forma simples para que qualquer um possa implementá-lo.


Hardware 

Primeiramente, vamos precisar de uma placa Arduino. No meu projeto utilizei a Arduino UNO mesmo, porém após compilar o Sketch, com todas as bibliotecas, o tamanho ficou próximo dos 30KB, que é o tamanho máximo que o programa pode ter(2KB é utilizado pelo BootLoader).

A comunicação do controle é feita via Bluetooth, então precisaremos ter um Bluetooth para comunicar nosso Arduino com o controle. Mas, não pode ser qualquer Bluetooth e também não pode ser os shields que fazem comunicação serial com o Arduino. Precisaremos da Placa USB Host Shield, que possui uma entrada USB e então precisaremos de um Dongle Bluetooth (desses que conectamos via USB no PC) que seja do padrão Bluetooth 2.0 compatível com EDR. Normalmente na embalagem do Bluetooth aparecem essas informações, caso não apareça, deve ser procurado pela velocidade de 3Mbps.


Temos vários modelos de placa USB Host Shield, testei 3 delas, e todas as três são compatíveis com a biblioteca.



Eu utilizei um carrinho de controle remoto antigo. Retirei a parte eletrônica dele, coloquei um servo motor para controlar os pneus dianteiros(pois o que havia no carrinho era um motor DC e não tinha controle analógico) e aproveitei o motor DC que já havia no carrinho.



Enfim, é isso que precisaremos de "Hardware", para montar nosso projeto:

- Placa Arduino UNO
- Placa USB Host Shield
- Dongle USB 2.0 + EDR (3Mbps)
- Carcaça de carrinho antigo
- Servo motor
- Motor DC
- Controlador de Motor DC (Ponte H)


A placa USB Host Shield vai conectada ao Arduino UNO, normalmente(é importante que essa placa tenha conectores empilháveis),


e na placa USB Host Shield conectaremos nossa placa controladora de motor. No meu casso confeccionei uma placa específica para esse projeto, onde tenho a saída para o servo motor, motor DC, farol(LED) e buzina(buzzer).



Existem placas prontas que fazem a ponte H que controla o motor DC, uma boa alternativa, caso você não tenha conhecimento de confecção de placas. Basta dar uma procurada no mercadolivre ou no google que aparecerão várias opções. Procure como "Ponte H Arduino", ou como "Driver Motor Arduino". É importante que tenham conectores do tipo empilháveis para que os pinos do Arduino estejam disponíveis para fazer a ligação do Servo motor.
A placa USB Host Shield utiliza os pinos de 7 a 13, se não me engano (já faz uns 2 meses que montei esse projeto), então não utilize esses pinos para fazer ligações.

Posteriormente quero postar minhas técnicas de confecção de placa, para fazer em casa.
Ou, quem preferir pode mandar fazer a placa, mas o preço é bem salgado.

A caixa de pilhas do carrinho foi aproveitada e a alimentação foi feita da seguinte forma: 

- GND, ligado ao GND do arduino;
- 7,5V (ou 5 pilhas) ligado no Vin do Arduino;
- 12V ligado na ponte H que controla o motor.

Quando você liga alguma tensão no Vin do Arduino, os reguladores de tensão para 5V e 3,3V funcionam normalmente, como se estivessem sendo alimentados pelo pino P4.
O servo motor que eu utilizei precisa de 5V e foi ligado na porta correspondente do Arduino.

Software

Primeiramente vamos baixar e instalar a biblioteca que controlam a placa USB Host Shield (https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip).

Estou usando a versão 1.0.5 da IDE do Arduino.

Vamos descompactá-la na pasta libraries do seu Sketchbook (normalmente fica na pasta C:\Usuários\Seu usuário\Documentos\Arduino. Pode ser alterado clicando em Arquivo/Preferências/Localização do Sketchbook) e renomeá-la da seguinte maneira USB_Host_Shield_20. Após isso, caso você esteja com a IDE Arduino aberta, feche e abra novamente. Já será possível ver que apareceu uma nova opção com o nome da biblioteca em Arquivo/Exemplos.

Vamos abrir o exemplo USB_Host_Shield_20/Bluetooth/PS3BT. Agora ficou fácil!!


Dando uma rápida olhada no código, você irá reconhecer os comandos dos botões (Triangle, Circle, R2, R1, etc). SIM, você só precisa inserir seu código nos blocos if adequados para controlar seu projeto de acordo com sua necessidade.

Para fazer o servo virar as rodas dianteiras usando o botão analógico esquerdo, adicionei o seguinte código:





A informação passada pelo controle analógico funciona assim: tudo a esquerda é 0, tudo a direita é 255. Com o comando map escrevi diretamente no servo motor, utilizando os comandos da biblioteca <Servo.h>. Como o espaço para giro do motor é pequeno, limitei o movimento em 30 graus para cada lado (90 é o centro, 180 é roda para a esquerda e 0 é roda para a direita, por isso usei os valores invertidos no map)


Para controle do motor usando o botão analógico direito, usei o seguinte código:



O motor precisa que seja mandado uma determinada tensão (PWM) em um pino para ir para a frente e em outro pino para ir para trás, tive que colocar os if para dividir esse ponto central.

Não esquecer de declarar e inicializar as variáveis no início do código:



Para fazer a biblioteca funcionar, alimente o Arduino(necessita alimentação externa), plugue o dongle bluetooth na USB da placa USB Host Shield, deixe por alguns segundos para que a biblioteca leia o endereço MAC do bluetooth. Remova o bluetooth e insira o cabo do controle do PS3, conectado ao controle, para que a biblioteca grave o endereço MAC do bluetooth no controle. Quando o controle reconhecer o MAC, todos os LEDs do controle ficarão piscando. Após isso é só reconectar o bluetooth, pressionar o botão PS no controle e aguardar até que ele conecte e fique somente o LED 1 acesso. Caso não consiga conectar de primeira, tente resetar o Arduino, porém não será mais necessário retirar o bluetooth e gravar MAC no controle, uma vez feito isso, fica gravado permanente.

Agora é só brincar.


Grande parte do conteúdo foi encontrado nas seguintes páginas: http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part-1 http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part-2 http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part-3 https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information Nessas páginas o negócio está bem explicado, inclusive são os criadores da placa USB Host Shield e da biblioteca, porém está em inglês. Caso tenham dúvidas, podem enviá-las nos comentários, que vou responder assim que possível.


Código fonte disponível em Projetos-Arduino/PS3BT_carro.ino

segunda-feira, 18 de fevereiro de 2013

Começando

Começando minhas postagens gostaria de primeiramente explicar o porque deste Blog.

Primeiramente, porque sei o quanto o Google é utilizado para procurar respostas para nossas dúvidas, pesquisas escolares ou para o trabalho. E quero auxiliar as pessoas que assim como eu, adoram tecnologia e tem dúvidas (que eu também já tive) e acabam encontrando as respostas no Google e em blogs que acabam "salvando nossas vidas".

Sou Engenheiro da Computação e tenho muita afinidade na área de redes, de sistemas embarcados e eletrônica. E gostaria de compartilhar alguns desses conhecimentos.
Sou também curioso de plantão, daqueles que perde um tempão só estudando o funcionamento de alguma coisa.

Espero conseguir sanar as dúvidas de muitas pessoas e ajudá-los em suas vidas, seja profissional, na faculdade ou para os curiosos que gostam de brincar de inventar soluções para os problemas cotidianos, assim como eu.

Aqui vão as imagens de algumas placas que eu fiz no meu TCC. Conforme o tempo permitir, estarei dando algumas dicas de como confeccionar placas de circuito impresso, darei dicas de como obter melhores resultados na confecção "artesanal" de placas, falarei sobre alguns componentes mais comuns e alguns mais interessantes como módulo XBee, módulo GPS e GSM.


Placa módulo GSM/GPRS (dupla face feita em casa utilizando percloreto)



Placa contendo módulo XBee, vários CIs e Módulo GPS