ラズベリー PI と GPIO ピン: Bash と Python の LED を制御します。

以前の記事で見ましたが GPIO ピンと実用的なアプリケーションの例をいくつか, 今日汎用ピンの操作に焦点を当てます, 通訳の注文でそれらを制御することを学ぶ BashPython.

プロト&led

使用、 LED, 抵抗 330 オーム, ワイヤ, 1 つ ブレッド ボード, またははんだとはんだごて.

必要になります、 ラズベリー テンガ屋 Raspbian プリインストールされています。, あなたのケースではない場合, それを行う方法を見ることができます。 次のリンクから、 ディレクトリ.

走行

あなたが直接はんだ付けすることができます、 LED ワイヤーとあなたとしての抵抗は次のように表示されます。 図, 使用する方が、 ブレッド ボード; また、もみあげにも見ることが非常に重要です。, ように、 “斜め” 中、 ダイオード LED 回路をマウントする 2 本のピンを組み合わせること, 既に その後方マウントする場合がオンにされません。.

LED ダイオードの点火を制御するために必要な回路.

LED ダイオードの電源を制御する回路が必要.

私は 1 つを使用するつもり ブレッド ボード, 私は使用することをお勧めしますと、, いくつかあります。 約 4 € から それらをはんだ付けすることがなく何度も繰り返しコンポーネントを再利用することが可能, 1 つの内部接続 ブレッド ボード 彼らは次のように傾向があります。.

protocon

ブレッド ボードの接続.

間の接続、 ブレッド ボード と、 ラズベリー 彼らは次の図のようにある必要があります。, 、 GPIO 問題を達することができます。 3,3V 論理の高い値を代入するには.

ブレッド ボード上の回路.

LED ダイオードの電源を制御する回路が必要.

こんにちは Bash の GPIO の世界

一度マウントされた回路, 私が呼ぶことをするつもりです、 “こんにちは世界 GPIO” で Bash 以下を実行してください。 スクリプト.

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

LED をオフに我々 は次のようにそれを行うことができます。 スクリプト.

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

基本的には我々 がやっていると Bash 作成するのには、 ディレクトリ階層/sys/クラス/gpio として扱われる各ファイルにコンテンツを追加して、 変数.

階層

/Sys/class/gpio ディレクトリ内の階層.

Python 入門

我々 はすでに私たちの回路が正常に機能していることと、 LED 変数に論理の高価値を与えるに発生しました。, 今我々 が同じを行うことができますどのように見てみましょう Python, スケジュールになります私たち web アプリケーション 入力と出力を制御する、 GPIO 任意のデバイスから.

funcweb

WEB アプリケーションを使用しての操作.

続行する前に, 私はあなたが参照してくださいお勧めします 章、 1 に、 10 の Python からこのビデオ チュートリアル チャンネル YouTubeコードを容易に, 場合、私はプログラミングの多くのアイデアを持っていません。 Python, それはより先を参照してください、それを理解するコードを理解するためにも非常にあなたに来ることができます。.

異なる、GPIO ピン配列 (BCM とボード)

ピン番号の 2 つの種類があります。, 物理番号またはモード ボード, チップの番号 SoC ブロードコム それらを制御します。, 我々 はモードでピン配置を使用しています。 BCM, しかし、違いを見てみましょう.

BCMvsBOARD

こんにちは Python で GPIO の世界

ビデオを見た後, 別のピン配列は既にする基本的なコードを理解できると、 “こんにちは世界 GPIO” で Python.

まず制御に必要なすべてをダウンロードする予定です、 GPIOPython, で Raspbian 既にインストールされています。 Python ライブラリ 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

1 回更新, オンにする方法を見てみましょう、 LED 次のように スクリプト, たとえば呼び出すことができます。 enciende.py, コマンドを root として実行することができます、 “須藤 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) 

これで我々 オフにできます。, たとえば呼び出す 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, 点滅をさせていただきます、 LED.

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

ライブラリをインポートしない場合 “時間“, 追加できません、 “睡眠“, 追加しない場合、 “睡眠” オンとオフの間秒の, それは私たちの目がない感知することはかなり可能ちらつき.

内の特殊文字を追加することは非常に重要だ、 スクリプト Python で, このためコメントはアクセントを実行しないでください。, 無効な文字エラーを与えたので.

次のエントリで 簡単な作り方を紹介します Web アプリケーション これらを実行ことができます。 スクリプト, ブラウザーで任意のデバイスからそれを制御できるようにする Web.

私を従うことができますあなたのようなかどうか Twitter, Facebook, Google +, LinkedIn, この文書の下のボタンと共有したり, ご質問がある場合は提案がコメントすることを躊躇しないでください。.

多くの読者に到達するために役立つ Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google +
Email this to someone
電子メール

16 上の考え"ラズベリー PI と GPIO ピン: Bash と Python の LED を制御します。

  1. 初心者から質問があります。…
    の抵抗 330 オームとそれを使用する場合?

    常に用します。 330 RPI を扱ってください。, または、それが異なる場合があります。?

    ご挨拶と優秀なブログ!!!

  2. こんにちは私は動作, 手順を python の手紙, あなたは python のファイルに対するアクセス許可を与える必要があります。?

    • こんにちはピーター,

      原則的には、それが動作するはず, エラーは、web アプリケーションで実行するいくつかの人々 に権限を与えているのみ, ユーザーとして既定で www のデータは、もはやこれらのアクセス許可を持っていません。.

      ケースしようと実行しているだけで “sudo chmod + x script.py” それを実行可能にするには, だからそれはターミナルからちょうど動作するはずがないです。; 私を教えることができる場合、スクリプトを実行するターミナルでエラーを返しますか??

      あなたのコメントありがとうございます.

  3. 良い, Python でスクリプトを入力と, 何ができるか、アロバがパーズが私に告げる? 感謝とご挨拶.

    • 私を見つけるそれは非常に奇妙な, スクリプトがあるのでの @ の, エラーの詳細を与えることができます。?

      じゃあね, コメントのおかげで.

  4. こんにちは,
    私は次のガイド サンプル python によって LED をオンにしようとしているが、コードを実行するとき、それは私次のエラーを与えること:

    GPIO として RPi.GPIO をインポートします。

    エラー:
    -bash: インポート: 順序が見つかりませんでした。

    このエラーは、なぜ知っていますか?

    ありがとうとおめでとうございますブログは私に提供して多く!

    • こんにちはナノ, コメントありがとうございます.

      Python では、Bash でコードが解釈されることです。.

      スクリプトを実行しています。, または直接ターミナル内のコード行?

        • 私は解決してうれしい!!!

          コメントありがとうございます, ご質問がある場合そうことを躊躇しないで; 読者の間、私はあなたの手を欠場.

  5. それもいい,
    コードの最初の行は、何を理解していません。: #!usr/bin/環境/パイソン
    それはなんですか?
    私はなしだけでも、それが動作を参照してください。

    • こんにちはナノ, 再度を歓迎します。.

      あなたが言及ラインは通常、インタプリタを注文すべきところを端末に指示するスクリプトの先頭に含まれてステートメントを渡す, この場合、Python; bash は次のようになります。:

      #!/bin/bash

      この場合、うまく宣言とそれなしファイル拡張子は .py を持っているので, しかし、常にそれを追加することをお勧め.

      あなたの疑問をクリアするいると思います, ここに戻ってしたいし、コメント 🙂 ありがとうございました

  6. ありがとう, チュートリアルは素晴らしい, 疑問を持っているが、:

    彼らは次のエラーで私を残してください。:

    ライン 12 インポート:見つかりません
    ライン 14 構文エラー: 意外な言葉 (期待してください。 “)”)

    私のコードは:

    #GPIO setup.py
    ### 開始の初期化情報
    # 提供します: GPIO setup.ch
    # 必要な開始: $remote_fs $syslog
    # 必要な停止: $remote_fs $syslog
    # 既定の開始: 2 3 4 5
    # 既定の位置: 0 1 6
    # 短い説明: セットアップ モード gpio
    # 説明: Gpio を設定します。 22/27/17/4 出力モード
    ### エンドの初期化情報

    GPIO として RPi.GPIO をインポートします。
    #我々 は、BCM のモードを定義します。
    GPIO.setmode(GPIO。BCM)
    #我々 は今 GPIO の出力ピンを定義します。
    GPIO.setup(4, GPIO。アウト)
    GPIO.setup(17, GPIO。アウト)
    GPIO.setup(27, GPIO。アウト)
    GPIO.setup(22, GPIO。アウト)

    任意のアイデア???

    • こんにちは Leoctam, コメントありがとうございます.

      最初の数行を与えるシステム デーモンを作成しようとしていることを理解するには, 考慮はとらないので、コメントに.

      反対に, カーネルとの対話に使用するコードは Python, システム デーモンから呼び出されるスクリプト .py に滞在する必要がありますので, Bash を使用して、このチュートリアルの最初の例のようにそうや.

メッセージを残してください