はじめに
「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!
優しいIT活動の一環として「教育用ようにプログラミング可能なPCを安価に提供する」理念の「Raspberry Pi 3(通称ラズパイ)」の紹介をします!
今回は、7セグメントLEDに数字(1桁)を出力します!
アナログの温度センサーとA/Dコンバーターを利用した温度センサーです!
ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 15 数字を表示できるを参考にしています。
手順
- 配線
- プログラム 7segment.py
- プログラムを動かす
1. 配線
配線図は、ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 15 数字を表示できるそのままです。
テキスト版
ラズパイ側から
- ラズパイ 12番ピン - 7セグメントドライバー 7 D0
- ラズパイ 23番ピン - 7セグメントドライバー 1 D1
- ラズパイ 24番ピン - 7セグメントドライバー 2 D2
- ラズパイ 25番ピン - 7セグメントドライバー 3 D3
- ラズパイ 6番ピン(GND) - 7セグメントドライバー 5 LE
- ラズパイ 6番ピン(GND) - 7セグメントドライバー 8 GND
- ラズパイ 6番ピン(GND) - 7セグメントLED 3 GND
- ラズパイ 6番ピン(GND) - 電池マイナス側
7セグメントドライバー側
- 7セグメントドライバー 3 LT - 電池(3V)プラス側
- 7セグメントドライバー 4 BL - 電池(3V)プラス側
- 7セグメントドライバー 16 Vcc - 電池(3V)プラス側
- 7セグメントドライバー 13 a - 抵抗(150Ω) - 7セグメントLED 7 A
- 7セグメントドライバー 12 b - 抵抗(150Ω) - 7セグメントLED 6 B
- 7セグメントドライバー 11 c - 抵抗(150Ω) - 7セグメントLED 4 C
- 7セグメントドライバー 10 d - 抵抗(150Ω) - 7セグメントLED 2 D
- 7セグメントドライバー 9 e - 抵抗(150Ω) - 7セグメントLED 1 E
- 7セグメントドライバー 15 f - 抵抗(150Ω) - 7セグメントLED 9 F
- 7セグメントドライバー 14 g - 抵抗(150Ω) - 7セグメントLED 10 G
2. プログラム 7segment.py
プログラムもラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 15 数字を表示できるを参考にしています。
GitHubにソースをアップしているので、お好きにお使いください。
$ git clone https://github.com/RyosukeKamei/raspberrypi3.git
# GPIOを制御するライブラリ
import wiringpi
# タイマーのライブラリ
import time
# 引数取得
import sys
# 74HC5411(7セグメントドライバー)に接続しているGPIO端子番号を指定
d0_pin = 18
d1_pin = 23
d2_pin = 24
d3_pin = 25
# 各端子を出力モードにする
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode( d0_pin, 1 )
wiringpi.pinMode( d1_pin, 1 )
wiringpi.pinMode( d2_pin, 1 )
wiringpi.pinMode( d3_pin, 1 )
# 初期化 すべて0にする
wiringpi.digitalWrite( d0_pin, 0 )
wiringpi.digitalWrite( d1_pin, 0 )
wiringpi.digitalWrite( d2_pin, 0 )
wiringpi.digitalWrite( d3_pin, 0 )
# 引数取得
param = sys.argv
set_number = int(param[1])
if( set_number >= 0 and set_number < 10):
# 1ビット目のANDをとる
wiringpi.digitalWrite( d0_pin, set_number & 0x01 )
# 2ビット目のANDをとる
wiringpi.digitalWrite( d1_pin, set_number & 0x02 )
# 3ビット目のANDをとる
wiringpi.digitalWrite( d2_pin, set_number & 0x04 )
# 4ビット目のANDをとる
wiringpi.digitalWrite( d3_pin, set_number & 0x08 )
else:
print("エラー : 引数は0から9までです。")
3. プログラムを動かす
$ sudo python3 temperature_sensor.py
サイトマップ
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」に出力する!
テスト駆動開発を重点においた規則
コーディング規則「優しいコードを書こう」(FuelPHP)
命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」
Docker+PythonでWebアプリケーション開発
開発しやすい環境構築(Docker+PHP)
Dockerを利用しApacheにPHP環境 + Eclipseを連携
Dockerを利用したFuelPHP開発環境構築
Docker利用したFuelPHP開発環境の初期設定とscaffoldを利用してCRUDスケルトン作成
FuelPHPのデータベースマイグレーション