PI de framboesa e GPIO pinos: Controlando um LED com Bash e Python

No post anterior que vimos eram os pinos GPIO e alguns exemplos de aplicações práticas, Hoje vamos nos concentrar em operação de pinos de uso geral, e aprender a controlá-los com as ordens do interpretador Brito e com Python.

proto&levou

Usará um DIODO EMISSOR DE LUZ, uma resistência de 330 Ohm, fio, e um Tábua de pão, ou solda e um ferro de solda.

Precisaremos também de nosso Framboesa Já tem Raspbian pré-instalado, Se seu caso não é, Você pode ver como fazê-lo o seguinte link do Diretório.

Montando o circuito

Você pode soldar diretamente o DIODO EMISSOR DE LUZ fio e resistência, como você verá a seguir diagrama, Embora seja muito melhor usar um Tábua de pão; Também é muito importante olhar bem na patilhas, como na “diagonal” dentro da diodo DIODO EMISSOR DE LUZ combinando os dois pinos para montar o circuito, Já Isso se você montá-lo para trás não liga.

Circuito necessário para controlar a ignição de um diodo LED.

Circuito necessário para controlar o poder de um diodo LED.

Vou usar um Tábua de pão, e eu recomendo que você use um, Há alguns de cerca de €4 e eles nos permitem reutilizar componentes repetidamente sem a necessidade de solda-los, as conexões internas de um Tábua de pão Eles tendem a ser o seguinte.

protocon

Conexões uma Breadboard.

As conexões entre o Tábua de pão e o Framboesa Eles devem ser como no diagrama a seguir, o GPIO Pode chegar a questão 3,3V para atribuir um valor lógico de alto.

Circuito na Breadboard.

Circuito necessário para controlar o poder de um diodo LED.

Olá mundo do GPIO com Bash

Uma vez montado circuito, Nós vamos fazer o que eu chamo um “Olá mundo GPIO” em Brito executando o seguinte roteiro.

#!/bin/bash
#Exportamos el puerto GPIO 17 
echo 17 > /sys/class/gpio/export 
#Lo configuramos como salida 
echo out > /sys/class/gpio/gpio17/direction 
#Encendemos el LED asignandole 1 como valor lógico
echo 1 > /sys/class/gpio/gpio17/value

Para desligar o LED, podemos fazê-lo com o seguinte roteiro.

#!/bin/bash
#Apagamos el LED asignandole 0 como valor lógico
echo 0 > /sys/class/gpio/gpio17/value  
#Eliminamos la entrada del puerto GPIO 17 
echo 17 > /sys/class/gpio/unexport 

Basicamente o que estamos fazendo com Brito é criar um Hierarquia de diretórios em /gpio/sys/classe e adicionando o conteúdo de cada arquivo que será tratado como um variável.

hierarquia

Hierarquia dentro do diretório /sys/class/gpio.

Introdução ao Python

Nós já provaram que nosso circuito está funcionando corretamente e o DIODO EMISSOR DE LUZ Ele foi disparado para dar um alto valor lógico para a variável, Agora vamos ver como podemos fazer o mesmo Python, Isso nos permitirá programar nossa aplicativos da Web para controlar as entradas e saídas da GPIO partir de qualquer dispositivo.

funcweb

Operação usando o aplicativo da WEB.

Antes de prosseguir, Eu recomendo que você vê... os capítulos do 1 para o 10 de Neste vídeo tutorial de Python o canal de YouTube de Código facilitado, Se como eu não tenho muita idéia de programação em Python, Pode vir para você muito bem para familiarizá-lo com o código que veremos mais adiante e vim a entendê-lo.

Pinagem diferente do GPIO (BCM e placa)

Existem dois tipos de numeração de pin, a numeração física ou modo PLACA, e a numeração do chip SoC Broadcom controlá-los, Nós vamos usar a pinagem no modo BCM, Mas vamos olhar para a diferença.

BCMvsBOARD

Olá mundo do GPIO com Python

Depois de assistir os vídeos, e pinagens diferentes já podem entender o código básico para fazer o “Olá mundo GPIO” em Python.

Primeiro vamos baixar tudo que você precisa para controlar o GPIO com Python, em Raspbian Eles já estão instalados. Python e as bibliotecas GPIO, Mas nós vamos instalar um pacote adicional e atualizar o sistema para a versão mais recente.

usuario@maquina:~$ sudo apt-get install python-dev
usuario@maquina:~$ sudo apt-get install python-rpi.gpio
usuario@maquina:~$ sudo apt-get update && sudo apt-get upgrade

Atualizado uma vez, Vamos ver como ativar o DIODO EMISSOR DE LUZ com o seguinte roteiro, Você pode chamar por exemplo enciende.py, e nós podemos executá-lo como root com o comando “sudo Python enciende.py”.

#!usr/bin/env/ python
#enciende.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico alto para encender el LED
GPIO.output(17, GPIO.HIGH) 

Com isto podemos desligá-lo, por exemplo, chamar apaga.py

#!usr/bin/env/ python
#apaga.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM
GPIO.setmode(GPIO.BCM)  
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico bajo para apagar el LED
GPIO.output(17, GPIO.LOW) 
#Finalmente liberamos todos los pines GPIO, es decir, los desconfiguramos)
GPIO.cleanup() 

E com isso vamos chamá-lo parpadea.py, Nós faremos a piscar a DIODO EMISSOR DE LUZ.

#!usr/bin/env/ python
#parpadea.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Importamos la libreria time
import time 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Queremos que lo que contenga el for i in range se repita 5 veces
for i in range(0,5): 
        #Asignamos valor logico alto para encenderlo
               GPIO.output(17, GPIO.HIGH) 
        #Esperamos un segundo
               time.sleep(1)
        #Asignamos valor logico bajo para apagarlo
         GPIO.output(17, GPIO.LOW) 
        #Esperamos un segundo
         time.sleep(1) 
#Una vez termina las 5 repeticiones, liberamos el pin GPIO utilizado; en este caso el 17
GPIO.cleanup() 

Se você não importar a biblioteca “tempo“, Não é possível adicionar o “sono“, e se não adicionar o “sono” de um segundo entre ligado e desligado, É bem possível que nosso olho não irá perceber cintilação.

É muito importante não adicionar caracteres especiais na scripts de em Python, por esta razão os comentários não carregam acentos, Desde que ele deu erro de caractere inválido.

A seguinte entrada Vamos ver como fazer um simples Aplicativo Web nos permitir executar estas scripts de, para ser capaz de controlá-la de qualquer dispositivo com navegador Web.

Se você gosta você pode me seguir no Twitter, Facebook, Google +, LinkedIn, ou compartilhá-lo com os botões sob esta publicação, Se você tiver dúvidas ou sugestões não hesite em comentar.

Ajude-na alcançar mais leitores Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
Email

16 reflexões sobre"PI de framboesa e GPIO pinos: Controlando um LED com Bash e Python

  1. Eu tenho uma pergunta de novato…
    Porque a resistência do 330 Ohm e quando usá-lo?

    Sempre são utilizados para 330 Quando trabalhamos com RPI, ou ele pode variar?

    Um acolhimento e excelente blog!!!

    • Oi, Peter.,

      Em princípio deve funcionar, erro só deu permissões para algumas pessoas, mas executando de aplicativo da web, como o usuário www-data por padrão não tem mais essas permissões.

      Apenas no caso tente executar “sudo chmod + x script.py” para torná-lo executável, Embora não tão deve funcionar apenas do terminal; Você pode me ensinar se você retorna um erro no terminal para executar o script??

      Muito obrigado pelo seu comentário.

  2. Olá,
    Estou tentando ligar um LED através do python guia amostras a seguir, mas me dá o seguinte erro quando eu executo o código:

    importação RPi.GPIO como GPIO

    Erro:
    -Brito: importação: a ordem não foi encontrada

    Você sabe por que é esse erro?

    Obrigado e parabéns pelo blog está me servindo muito!

    • Olá nano, Bem-vindo novamente.

      A linha que você menciona é a instrução que é muitas vezes incluída no início de um script para contar o terminal onde o interpretador que ordena que você deveria passar, Neste caso, Python; para a festança seria da seguinte maneira:

      #!/bin/bash

      Neste caso, ele funciona com a declaração e sem ela, desde que o arquivo tem a extensão py, Mas é uma boa prática sempre adicioná-lo.

      Espero ter limpo suas dúvidas, voltar aqui quando quiser e muito obrigado por seu comentário 🙂

  3. Obrigado, o tutorial é excelente, Mas tenho uma duvida:

    deixam-me com os seguintes erros:

    linha 12 importação:não encontrado
    linha 14 erro de sintaxe: palavra inesperada (à espera “)”)

    Meu código é:

    #GPIO-setup.py
    ### COMEÇAR A INFORMAÇÃO DE INIT
    # Fornece: GPIO-setup.ch
    # Necessário-início: $remote_fs $syslog
    # Necessário-Stop: $remote_fs $syslog
    # Padrão-início: 2 3 4 5
    # Padrão-Stop: 0 1 6
    # Curto-descrição: Configuração modo gpio
    # Descrição: Instalação gpio 22/27/17/4 modo de
    ### INFORMAÇÃO DE INIT FINAL

    importação RPi.GPIO como GPIO
    #Definimos o modo BCM
    GPIO.setmode(GPIO. BCM)
    #Agora definimos os GPIO pinos de saída
    GPIO.setup(4, GPIO. PARA FORA)
    GPIO.setup(17, GPIO. PARA FORA)
    GPIO.setup(27, GPIO. PARA FORA)
    GPIO.setup(22, GPIO. PARA FORA)

    Qualquer idéia???

    • Olá Leoctam, Obrigado por comentar.

      As primeiras linhas dão a entender que você está tentando criar um daemon do sistema, Mas eles são comentados por ele não ser tomado em conta.

      Por outro lado, o código que você está usando para interagir com o GPIO é Python, Então você deve ficar em um roteiro py que será invocado do seu daemon do sistema de, ou usar o Bash para fazê-lo como no primeiro exemplo neste tutorial.

Deixar uma resposta