रास्पबेरी पीआई और GPIO पिन: एक पार्टी की योजना बनाई और पायथन के साथ नेतृत्व को नियंत्रित

पिछले पोस्ट में हमने देखा कि थे GPIO पिन और व्यावहारिक अनुप्रयोगों के कुछ उदाहरण, आज हम सामान्य प्रयोजन पिंस के संचालन पर ध्यान दिया जाएगा, और उन्हें व्याख्याता के आदेश के साथ नियंत्रित करने के लिए जानें पार्टी की योजना बनाई और के साथ अजगर.

आद्य&नेतृत्व

का उपयोग करेगा एक एलईडी, एक प्रतिरोध की 330 ओम, तार, और एक Breadboard, या मिलाप और एक टांका लोहे.

हम भी की आवश्यकता होगी हमारे रास्पबेरी पहले से ही है Raspbian पूर्व-स्थापित, यदि आपका मामला नहीं है, आप यह कैसे देख सकते हैं निम्न लिंक से निर्देशिका.

सर्किट की सवारी

आप सीधे मिलाप कर सकते हैं एलईडी तार और प्रतिरोध के रूप में आप निम्न में देखेंगे आरेख, हालांकि यह बहुत उपयोग करने के लिए बेहतर है एक Breadboard; यह भी अच्छी तरह से गलमुच्छा पर देखने के लिए बहुत महत्वपूर्ण है, के रूप में “विकर्ण” के अंदर डायोड एलईडी सर्किट माउंट करने के लिए दो पिनों के संयोजन, पहले से ही यदि आप इसे पीछे की ओर माउंट कि चालू होगा नहीं.

एक एलईडी डायोड के प्रज्वलन को नियंत्रित करने के लिए सर्किट की जरूरत.

एक एलईडी डायोड की शक्ति को नियंत्रित करने के लिए सर्किट की जरूरत.

मैं एक का उपयोग करने के लिए जा रहा हूँ Breadboard, और मैं सुझाव है कि आप का उपयोग एक, वहाँ कुछ कर रहे हैं लगभग 4 € से और वे हमें घटकों पर और फिर से उन्हें मिलाप करने के लिए कोई बिना पुन: उपयोग करने की अनुमति, एक आंतरिक कनेक्शन Breadboard वे निम्न हो जाते हैं.

protocon

एक Breadboard कनेक्शन.

के बीच कनेक्शन Breadboard और रास्पबेरी वे निम्न आरेख के रूप में होना चाहिए, टीटी GPIO आप समस्या तक पहुँच सकते हैं 3,3V एक तार्किक उच्च मान असाइन करने के लिए.

Circuito en Protoboard.

एक एलईडी डायोड की शक्ति को नियंत्रित करने के लिए सर्किट की जरूरत.

नमस्ते Bash के साथ GPIO की दुनिया

एक बार माउंटेड सर्किट, हम क्या मैं कॉल करने के लिए जा रहे हैं एक “नमस्ते दुनिया GPIO” में पार्टी की योजना बनाई ejecutando el siguiente स्क्रिप्ट.

#!/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

एलईडी बंद चालू करने के लिए, हम निम्नलिखित के साथ ऐसा कर सकते हैं स्क्रिप्ट.

#!/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 

मूल रूप से क्या हम के साथ कर रहे हैं पार्टी की योजना बनाई बनाने के लिए है एक निर्देशिका पदानुक्रम में /sys/वर्ग/gpio y añadir contenido a cada archivo que será tratado después como una चर.

jerarquia

/Sys/class/gpio निर्देशिका के भीतर पदानुक्रम.

परिचय पायथन

हम पहले से ही सिद्ध कर दिया है कि हमारे सर्किट सही ढंग से काम कर रहा है और एलईडी यह एक तार्किक उच्च मान करने के लिए चर देने के लिए निकाल दिया गया है, अब चलो देखते हैं कैसे हम वही कर सकता है अजगर, कि हमें शेड्यूल करने की अनुमति होगी हमारी वेब अनुप्रयोग निविष्टियाँ और outputs के नियंत्रित करने के लिए GPIO किसी भी डिवाइस से.

funcweb

वेब अनुप्रयोग का उपयोग कर कार्रवाई.

आगे बढ़ने से पहले, मैं सुझाव है कि आप देख के अध्याय 1 करने के लिए 10 के इस वीडियो ट्यूटोरियल से अजगर का चैनल YouTube के कोड की सुविधा, अगर मैं में प्रोग्रामिंग के अधिक विचार नहीं है के रूप में अजगर, os puede venir muy bien para familiarizaros con el código que vamos a ver mas adelante y llegar a entenderlo.

GPIO के विभिन्न Pinouts (बीसीएम और बोर्ड)

पिन क्रमांकन के दो प्रकार हैं, भौतिक क्रमांकन या मोड बोर्ड, और चिप का क्रमांकन SoC Broadcom que los controla, हम pinout मोड में उपयोग करने के लिए जा रहे हैं बीसीएम, लेकिन हम पर फर्क देखो.

BCMvsBOARD

नमस्ते GPIO साथ अजगर के विश्व

विडियो देखने के बाद, और अलग pinouts बनाने के लिए मूल कोड पहले से ही समझ सकते हैं “नमस्ते दुनिया GPIO” में अजगर.

सबसे पहले हम सब कुछ आप की जरूरत करने के लिए नियंत्रण को डाउनलोड करने के लिए जा रहे हैं GPIO के साथ अजगर, में Raspbian ya vienen instalados अजगर और पुस्तकालयों GPIO, लेकिन हम एक अतिरिक्त पैकेज़ को स्थापित करने और सिस्टम के पास नवीनतम संस्करण को अद्यतन करने के लिए जा रहे हैं.

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

एक बार अद्यतन, चलो देखते हैं कैसे चालू करें एलईडी निम्नलिखित के साथ स्क्रिप्ट, आप उदाहरण के लिए कॉल कर सकते हैं enciende.py, y podemos ejecutarlo como root con el comando “sudo अजगर 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) 

इस के साथ हम इसे बंद कर सकते हैं, उदाहरण के लिए कॉल 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() 

और इस के साथ हम आपको कॉल करेगा parpadea.py, हम चमकती कर देगा एलईडी.

#!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() 

यदि आप लायब्रेरी आयात न करें “समय“, नहीं जोड़ सकते हैं “नींद“, और अगर नहीं जोड़ें “नींद” एक दूसरे के बीच चालू और बंद की, यह कि हमारी आँख देखती नहीं जाएगा बहुत संभव है झिलमिलाहट.

यह विशेष वर्णों में नहीं जोड़ने के लिए बहुत महत्वपूर्ण है लिपियों पायथन में, इस कारण के लिए लहजे टिप्पणियों का पालन नहीं करते, चूंकि यह अमान्य वर्ण त्रुटि दे दी.

में निम्न प्रविष्टि हम देखेंगे कैसे एक सरल बनाने के लिए वेब अनुप्रयोग हमें इन निष्पादित करने की अनुमति लिपियों, यह ब्राउज़र के साथ किसी भी डिवाइस से नियंत्रित करने के लिए सक्षम होने के लिए वेब.

यदि आप आप की तरह मुझे अनुसरण कर सकते हैं चहचहाना, Facebook, Google +, LinkedIn, या यह इस प्रकाशन के अंतर्गत इस बटन के साथ साझा करें, यदि आप कोई प्रश्न या सुझाव टिप्पणी करने के लिए कृपया संकोच नहीं करते.

Artículos relacionados

हमें और अधिक पाठकों तक पहुँचने के लिए मदद Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 पर विचार'रास्पबेरी पीआई और GPIO पिन: एक पार्टी की योजना बनाई और पायथन के साथ नेतृत्व को नियंत्रित

    • Hola Pedro,

      En principio debería funcionar, solo les ha dado error por permisos a algunas personas pero ejecutándose desde la aplicación web, ya que el usuario www-data por defecto no tiene dichos permisos.

      Por si acaso pruebe ejecutandosudo chmod +x script.pypara volverlo ejecutable, aunque sin serlo debería funcionar igual desde terminal; puede enseñarme si le devuelve algún error en la terminal al ejecutar el script¿?

      Muchas gracias por su comentario.

  1. नमस्कार,
    estoy intentando encender un LED a través de python siguiendo la guía que muestras pero me da el siguiente error cuando ejecuto el código éste:

    RPi.GPIO GPIO के रूप में आयात करें

    Error:
    -पार्टी की योजना बनाई: import: no se encontró la orden

    ¿Sabes a qué se debe este error?

    Gracias y enhorabuena por el blog me está sirviendo de mucho!

    • नैनो नमस्ते, bienvenido otra vez.

      La línea que comentas es la declaración que se suele incluir al inicio de un script para indicarle a la terminal donde se encuentra el intérprete al que debe pasarle las órdenes, en este caso Python; para bash sería la siguiente:

      #!/bin/bash

      En este caso funciona con la declaración y sin ella puesto que el archivo tiene extensión .py, pero es una buena práctica añadirla siempre.

      मैं अपने संदेह को मंजूरी दे दी है के लिए आशा है कि, vuelve por aquí cuando quieras y muchas gracias por tu comentario 🙂

  2. धन्यवाद, el tutorial esta excelente, pero tengo una duda:

    me salen los siguientes errores:

    linea 12 import:not found
    linea 14 syntax error: word unexpected (expecting “)”)

    Mi codigo es:

    #gpio-setup.py
    ### BEGIN INIT INFO
    # Provides: gpio-setup.ch
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Setup mode gpio
    # Description: Setup gpio 22/27/17/4 mode out
    ### END INIT INFO

    RPi.GPIO GPIO के रूप में आयात करें
    #Definimos el modo BCM
    GPIO.setmode(GPIO. बीसीएम)
    #Ahora definimos los pines GPIO como salida
    GPIO.setup(4, GPIO. बाहर)
    GPIO.setup(17, GPIO. बाहर)
    GPIO.setup(27, GPIO. बाहर)
    GPIO.setup(22, GPIO. बाहर)

    किसी भी विचार???

कोई जवाब दो