Edited at

Raspberry Pi 3でpythonを使いスイッチ制御でLEDを光らせる!

More than 3 years have passed since last update.


はじめに

「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!

現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!

優しいIT活動の一環として「教育用ようにプログラミング可能なPCを安価に提供する」理念の「Raspberry Pi 3(通称ラズパイ)」の紹介をします!

今回は、スイッチ制御でLEDを光らせます!

ラズパイマガジン-2016年8月号 特集1 電子工作12の基本パターン ①永久ループと条件分岐を参考にしています。


手順


  1. 配線

  2. プログラム switch_led.py

  3. プログラムを動かす


1. 配線

ラズパイマガジン-2016年8月号 特集1 電子工作12の基本パターン ①永久ループと条件分岐そのままです。

回路の写真を参考までに、こんな感じというイメージになれば

動画にもしました

テキスト版

ラズパイ側から


  • ラズパイ 1番ピン(3.3V) - スライドスイッチ 左側

  • ラズパイ 11番ピン(GPIO17) - スライドスイッチ 中央

  • ラズパイ 16番ピン(GPIO23) - LED1つ目のプラス側

  • ラズパイ 18番ピン(GPIO24) - LED2つ目のプラス側

  • ラズパイ 6番ピン(GND) - スライドスイッチ 右側

  • ラズパイ 6番ピン(GND) - 抵抗(100Ω) - LED1つ目のマイナス側

  • ラズパイ 6番ピン(GND) - 抵抗(100Ω) - LED2つ目のマイナス側


2. プログラム switch_led.py

ラズパイマガジン-2016年8月号 特集1 電子工作12の基本パターン ①永久ループと条件分岐を参考にしています。

GitHubにソースをアップしているので、お好きにお使いください。


gitでcloneする

$ git clone https://github.com/RyosukeKamei/raspberrypi3.git



switch_led.py

# GPIOを制御するライブラリ

import wiringpi
# タイマーのライブラリ
import time
# 引数取得
import sys

# GPIO定義
led1_pin = 23
led2_pin = 24
switch_pin = 17

# 光らせる間隔を引数から取得
param = sys.argv
set_interval = int(param[1])

# GPIO初期化
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode( led1_pin, 1 )
wiringpi.pinMode( led2_pin, 1 )
wiringpi.pinMode( switch_pin, 0 )

# どっちのLEDがついているか
led = 0

# この回路は永続的なので、止めるまで繰り返す
while True:
# LEDを消灯
wiringpi.digitalWrite( led1_pin, 0 )
wiringpi.digitalWrite( led2_pin, 0 )

# スライドスイッチを検出
while ( wiringpi.digitalRead(switch_pin) == 1 ):
# スイッチオン
print("スイッチオン")

if ( led == 0 ):
# LED1を光らせる
wiringpi.digitalWrite( led1_pin, 1 )
wiringpi.digitalWrite( led2_pin, 0 )
led = 1
print("LED1")
else:
# LED2を光らせる
wiringpi.digitalWrite( led1_pin, 0 )
wiringpi.digitalWrite( led2_pin, 1 )
led = 0
print("LED2")
# 引数で指定した秒数待機
print(set_interval, "秒待機")
time.sleep(set_interval)



3. プログラムを動かす

動かしている様子を動画に収めました。


3秒ごとにLED切り替え

$ sudo python3 switch_led.py 3



サイトマップ


Raspberry Pi 3 (ラズパイ)セットアップ

Raspberry Pi 3インストール→無線LAN→日本語入出力→Macから操作


Raspberry Pi 3 にDockerを乗せてPython+MySQL環境を構築!

RaspberryPi3(ラズパイ)にDockerをインストール

RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【簡単構築編】

RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【試行錯誤編】


Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!

Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!


Raspberry Pi 3 (ラズパイ)とpythonで遊ぼう

Raspberry Pi 3でプログラミングをする Node-REDと普通にプログラミング

Raspberry Pi 3でpythonを使いLEDを光らせる(Hello World)

Raspberry Pi 3でスイッチの状態を検出する

Raspberry Pi 3でpythonを使いサーボモータを動かす

Raspberry Pi 3でpythonを使いモータードライバーを使いモータを制御する!

Raspberry Pi 3でpythonを使いスライドスイッチを検出する!

Raspberry Pi 3でpythonを使い磁石スイッチを検出する!

Raspberry Pi 3でpythonを使い温度を検出する!

Raspberry Pi 3でpythonを使いブザーを鳴らす!

Raspberry Pi 3でpythonを使いA/Dコンバーターでアナログ信号を検出する!

Raspberry Pi 3でpythonを使い「明るさ」を検出する!

Raspberry Pi 3でpythonを使い「温度(A/Dコンバーターを利用)」を検出する!

Raspberry Pi 3でpythonを使い「7セグメントLED」に出力する!

Raspberry Pi 3でpythonを使いスイッチ制御でLEDを光らせる!


テスト駆動開発を重点においた規則

コーディング規則「優しいコードを書こう」(FuelPHP)

命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」


Docker+PythonでWebアプリケーション開発

Docker上のCentOSにPython3と、関連ライブラリpip, virtualenvとフレームワークDjango, bottle, Flaskのインストール!これらをまとめたDockerfile付き!


開発しやすい環境構築(Docker+PHP)

Dockerを利用しApacheにPHP環境 + Eclipseを連携

Dockerを利用したFuelPHP開発環境構築

Docker利用したFuelPHP開発環境の初期設定とscaffoldを利用してCRUDスケルトン作成

FuelPHPのデータベースマイグレーション