Utilizando a interface GPIO do Raspberry Pi
Primeiro, descobri que após desligar o RPi, ele fica em um estado stand by. Caso queira ligar ele novamente sem retirar e recolocar o cabo usb, basta fechar um curto rápido nos pinos 5 e 6 da GPIO.
Após os testes iniciais, parti para o que realmente me interessa que é a interface GPIO.
A programação da interface é feita em Python, e para isso é necessário instalar a biblioteca RPi.GPIO. Ela funciona de forma bem parecida com a programação em C do Arduino. Para a instalação use os comandos:sudo apt-get updatePara a programação, você pode usar o Idle, ícone disponível no desktop do Raspbian, ou com algum editor de textos(leafpad ou nano) para criar um arquivo .py. No Idle, pelo pouco que usei, você vai digitando os comandos, linha a linha.
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
Update:
Após alguns testes com o Idle, apredi que você pode criar e testar o programa por ele mesmo. Indo em File/New Window, criando o programa, salvando e depois rodando F5 (Run/Run Module). Para parar o programa use CRTL+F6 (Shell/Restart Shell). Um detalhe é que o Idle precisa rodar como root para trabalhar com a GPIO. Basta abrir um terminal e digitar:
sudo idlePara o arquivo .py, basta copiar o exemplo mais abaixo e liberar o arquivo para execução, detalhes abaixo também.
Primeiro é necessário importar o modulo RPi.GPIO, utilizando:
Será necessário também importar o modulo time.import RPi.GPIO as GPIO
import timeO próximo passo é definir se utilizaremos a numeração das pinagens por BOARD ou BCM. Por BOARD será seguido a numeração do conector P1 por padrão, numeração interna na foto acima. A vantagem deste tipo é que em uma atualização de versão da placa, não haverá mudanças, já que o conector é padrão. Já na BCM será seguido a pinagem do processador, onde é necessário acompanhar o esquema eletrônico, disponível na pagina 2, ou numeração externa na foto acima.
Exemplos:
BCM18 = BOARD12
BCM11 = BOARD23
Para a definição use:
GPIO.setmode(GPIO.BOARD)ou
GPIO.setmode(GPIO.BCM)Com o:
GPIO.setup(channel, GPIO.OUT)definimos o pino (channel) e se ele será uma entrada(IN) ou saída(OUT), bem parecido com o pinMode do Arduino. Com o:
GPIO.output(channel, GPIO.HIGH)definimos além do pino novamente, o estado da saída(LOW/HIGH), bem parecido com o digitalWrite do Arduino. Fazendo tudo dentro de um loop While(1), definindo dois tempos de atraso com time.sleep(1.0), onde o valor 1.0 representa um segundo, teremos um blink. Ligando um led com um resistor em torno de 1k ohms na porta correspondente para o terra (GND), o led irá piscar a cada um segundo.
Aqui o programa completo:
Para executar o programa como arquivo .py, abra o LXTerminal, estando na pasta onde ele foi criado, utilize primeiro:
chmod +x nomedoprograma.pyIsto fará com que o arquivo se torne possível de ser executado. Depois basta rodar:
sudo ./nomedoprograma.py &Para parar a execução é preciso parar o programa. Primeiro procure o numero do processo do programa com o comando:
ps -ef | grep nomedoprograma.pySerá exibido algo como:
Onde o numero que procuramos neste caso é 2692. Depois rode:
sudo kill 2692Aqui um video rápido do processo:
Nós próximos passos, pretendo trabalhar com entradas e PWM.
Em relação à ligar o rasp, o legal é colocar um botão para facilitar e que pode servir para desliga-lo também programando ele :)
ResponderExcluirCom certeza, temos inúmeras opções ;)
Excluir