10 julho 2013

Raspberry PI GPIO - Parte I (Hardware para testes)

Antes do último post, o que desejava mesmo era apenas programar em python para acessar a GPIO e realizar alguma experiência. Eu iria precisar de algum hardware para realizar a experiência. Pensei em projetar algum circuito eletrônico em uma protoboard mesmo, mas eis que ao fazer uma limpeza em casa, acho uma montagem eletrônica que fiz a mais de 10 anos atrás, quando desenvolvia (para estudo) periféricos para a porta-paralela de PCs.




Sim é um cartucho antigo de Atari, o jogo acho que era H.E.R.O., e como podem notar o circuito é simples, apenas resitores, LEDs e chaves do tipo push-bottom, tudo isso muito mal soldado, diga-se de passagem, a um conector DB-25 fêmea, e utilizando um pedacinho de papelão para evitar curtos ;-) .

Mais tarde tentarei fazer um post explicando melhor o circuito, mas resumidamente são 8 LEDs, cada um ligado a um resistor de 1 K e ligado a um pino (pinos de 2 a 9) do conector DB-25, que serve para testar saídas, todos os LEDs estão ligados no pino 25 que era o terra da porta-paralela. Quando um nível lógico alto é setado a um pino que está ligado ao LED, este acenderá.

O pino 1 do DB-25 é ligado nas chaves, ele deve estar setado em nível lógico alto. Cada chave é ligada a um resistor também de 1 K que é ligado a 1 pino (pinos de 10 a 13) do DB-25, a outra extremidade da chave é ligada ao terra, pino 25 do DB-25. Dessa forma todos os pinos de entrada recebem nível lógico alto, quando a chave é fechada ficam em nível lógico baixo.

Verifiquei que a GPIO em seu pino 1, é uma saída constante em 3.3V. Como não sabia se essa coisa (a fita do Atari) ainda funcionava, e também porque ela foi feita para trabalhar com 5V da porta-paralela, apenas liguei o Raspberry PI, e com a ajuda de alguns fios conectei o pino 1 da GPIO, ao pino 2 do DB-25, e o pino 6 (terra) da GPIO ao pino 25 do DB-25 e o LED acendeu.




O que me deixou muito feliz, pois não precisaria fazer um circuito para programar a GPIO. Porém, teria que arranjar um jeito de fazer um cabo DB-25 para os pinos do GPIO. Daí achei na caixa de tranqueiras, uns flat cables de IDEs antigos, e resolvi me aventurar com o ferro de solda, como antigamente.

Abaixo a correlação de pinos DB-25 e GPIO:


DB25    x    GPIO
1    ------------    1

2    ------------    10
3    ------------    11
4    ------------    12
5    ------------    13
6    ------------    21
7    ------------    22
8    ------------    23
9    ------------    24

10  ------------      15
11  ------------      16
12  ------------      18
13  ------------      19

25  -------------      6


Abaixo algumas fotos de como ficou o cabo, e de como eu continuo sendo muito ruim com o ferro de solda :)






Depois de todas essa trabalheira, percebi que o pino 1 da GPIO fica para o lado de fora da placa, o que impede de conectar o conector do flatcable de IDE, porque ele é de 40 pinos, e a GPIO é de 26 pinos, e não tem espaço suficiente no interior da placa, por que logo em seguida vem a saída de video RCA. Eu teria que soldar tudo novamente, e então decide cortar o conector do flat, transformando-o em um conector de 26, que na verdade fico 26,5 ... cortei bem em cima do pino 27 e 28 rs. Mas o importante é que funcionou.



Acima é uma foto já de um código python executado dentro do interpretador para testar o cabo. O próximo post descreverei como foi feita a configuração e instalação do RPi.GPIO, a biblioteca python, e como utilizá-la para comunicação com a GPIO do Raspberry Pi.

[]s

Links utilizados:
http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/218-2-raspberry-pi-gpio-inputs-in-python
http://www.rpiblog.com/2012/09/using-gpio-of-raspberry-pi-to-blink-led.html
http://code.google.com/p/raspberry-gpio-python/wiki/BasicUsage

Nenhum comentário:

Postar um comentário