トランジスタ技術 2016年11月号

キーフレーズ

-3 -2 -4 -1 Linux GPIO USB LED 出力 ラズベリー MHz 2016 FFW マイコン ASB BSB http:// PWM 制御 モジュール 入力 電圧 コマンド ファイル Web 表示 UUW 12V BBW 技術 000 ポード Python PIC 電流 設定 WebIOPi webiopi BSU 接続 信号 ASU データ I/O プログラム IchigoJam 回路 センサ 200 100 基板 キット 機能 HTML 電源 500 アプリケーション コネクタ Raspbian 動作 セット Windows B-2 タイプ 対応 可能 スクリプト state 24V co.jp AAW 使用 最大 周波数 MPLAB 800 ディレクトリ www ASP ビッチ 変換 ASF 指定 アンプ BSF 品番 LAN 関数 場合 LCD 温度 ディジタル SK2

目次ページ

リスト 3 python 言語で複数の要素で構成されたデータを定義するその① List を使った書き方 ー coding:utf—8 ー☆ー # リストテータのサンプル ListA = ['Sun', ・ Mon ' ′ 'Tue', 'Wed', 'Thu' ′ 'Fri'] print ListA ListA. append ('Sat') print ListA ListA. remove ('Wed') print ListA print ListA. POP(2) print ListA ListA.insert(), 'Wed') print ListA print ListA.index ( ・ Wed ・ ) print ListA. count ( ・ Fri' ) ・意味 (a) スクリプト ・メソッド 1 Data. count(data) : 戻り値で data が >List 内のデータの個数や位置を調べる して値を返す . 月がないときは最後のデータを削除 ・メソッド 2 Data. pop(n) : 〃番目のデータを削除 を削除する . 最初に見つかったものだけ削除 ・メソッド 1 Data. remove (data) : 指定した data >List からデータを削除する 最初に追加する 目に追加する . れは 0 から始まり , 月が 0 のときは ・メソッド 2 Data. insert (), data) : List 中の刀番 加する ・メソッド 1 Data. append (data) : List の最後に追 >List に値を追加する のメソッドを利用できます . List として定義されたデータ Data があるとき , 次 ・扱い方 ( メソッド ) 値を取り出せます . Data [ 1 ] というふうにインデックスで指定すると 0 番目のデータ Data = [ datal , data2, data3, ・・ ] #datal は まとめて初期化定義したデータ群を List と呼びます . 扱うことができます . 次のように [ ] ( 大かっこ ) で 複数の要素で構成されたデータ列を 1 つの値として ・メソッド 2 Data. index (data) : data が最初に見 出現する回数を返す ファイ ) 明編タブ (T) ヘルプ ( H ) [email protected] : ~ / 0 「 k $ python 5 Ple2 ・ py [ ' Sun' [ ' Sun' [ ' Sun' [ ' Sun' 2 1 Mon' Mon' Mon' Mon Mon' ' Tue' Tue Tue ' Thu Wed' Wed' Wed' , ' Thu' F 「 1 ' Thu' ' Thu' ' Thu' Fri' Sat 'Fri'] 'Fri' ' Sat 勹 ' Sat'] sat' ] っかった位置を返す @Dict ( ディクショナリ ) ・意味 Dict は , key : data という構成のデータ列を 72 は中 (b) 実行結果 リスト 4 に Dict を使ったスクリプトの例を示します . 'Sat': 16 Dict1 = ド Mo 心 5 , 'Tue':6,'Wedl:7,'Thu':8, Fri':9. 次のように記述します . Dict lkeyl : datal, key2:deta2, key3:data3, ・ヨ に定義します . かっこ ) でくくるデータ塊の定義関数です . 次のよう Dict1 [keyl] datal 〃 keyl : datal という値 次のように指定します . 値を追加する Dict1. get('Sun, 'N0tFound') 次のように書きます . 値を返す . key がないときは default 値を返す Dict1. get ( く key 〉 , く default 〉 ) 〃 key に対応する 次のように指定します . 値を取り出す りできます . key の項目を利用して , 値を取り出したり変更した ・扱い方 ( メソッド ) print Dict1. keys() 次のように指定します . >key の項目だけを取り出す del Dict1 [tWed'] 〃 fi'wedt : 7 」を削除する 次のように指定します . 値を削除する を追加する Dict1 C'Sun'] = 11 〃 Dict1 に 'sunv: 11 という値 次のように記述します . を Dict1 に追加する トランシスタ技術 2016 年 11 月号 for i in Dict1 ・ が順番に出力されます . の "i" に key の値が順番に適用されて , すべての key for 文の中で次のように記述すると , インデックス >for 文のインデックスとして key を使う

リスト 4 python 言語で複数の要素で構成されたデータを定義するその② Dict を使った書き方 ー coding:utf—8 ー☆ー # ディクショナリの生成 ファイ月編集 ( 印タブ (T) ヘルプ ( H ) { 'MO n' : 5 ′ 'Tue' : 6 ′・ We d' : 7 ′ 'Thu' : 8 ′ Dict1 { ' wed' : 7 , 'Fri' : 9 , 'Tue' : 6 , Mon' : 5 , 'Thu' : 8 , 'Fri':9, ・ Sa ビ : 10 } # ディクショナリの一括出力 print Dict1 # ディクショナリからの値の取り出し print Dict1 [ ・ MO が ] print Dict1. get ( ・ Tue') print Dict1. get ('Sun') print Dict1. get ('Sun' ′ 'NotFound') # ディクショナリへの値の追加と削除 Dict1 ['Sun ・ ] = 11 de1 Dict1['Wed'] print Dict1 # キー項目の取得 print Dict1. keys ( ) # ディクショナリのインデックス処理 for 土 in Dict1 : prxnt 土 print Dict1[i] 特集最新 P 旧 x 付録で Linux I/O! プロローグ 1 2 3 4 5 6 7 8 9 ' Sat ' None Not Found [ ' S 凵 1 ' ' F ri' Sun F 「 1 Tue' : 6 , Mon' : 5 , 'Thu' : 8 , Mon' 'Thu', 'sat'] Sat ' Tue' keys() による取得 Mon hu Sat fo 「文による出力 (b) 実行結果 if 条件式 : 実行文 elif 条件式 : 実行文 else: 実行文 elif 以降は , 必要がないときはなくても OK です . 条件式や else の最後には " : ( コロン ) " が必要で , 内 部の実行文には字下げが必要です . 条件式に使える比較用演算子には次のようなものが あります . 複数の条件式の論理積は "and" で , 論理和は "or" で結合できます . ・ fO 「文 f 。 r 文の書き方を次に示します . for く value 〉 in く list) range (count) : ファイル ( つ編集 ( タブ (T) ヘルプ ( ゆ [email protected] : Ywork $ python sampIe4. py Mar' Apr' [ ' Jan' , ' Feb' May N01 is February. if 文による出力 N03 is not February. J an Feb Mar Ap 「 May Jan Feb Mar Ap 「 May (a) スクリプト 制御文の使い方 0 if 文 , while 文 , for 文の書き方 Python にも if や wh ⅱ e などの制御文が用意されてい ます . リスト 5 に使用例を示します . ・ if 文 if 文の書き方を次に示します . リスト 5 Python 言語で制御文 ( if 文 , while 文 , for 文 ) を書く ー coding:utf—8 ー☆ー # リストの生成 ListB = [ ・ Ja が′・ Feb' ′ 'Mar', 'Apr', 'May', 'Jun'] print ListB # 土 f 文の使用例 ifListB[1] 'Feb' : print " N01 is February. ifListB[3] 'Feb' : print ” N03 is February. else: print ” N03 is not February. print # f 。 r 文の使用例 for 土 in ListB: print i # while 文の使用例 print ・ whi1eListB[i] ! = ' こ u が : print ListB[i] 土 = 土十 1 ' Jun' ] fo 「文による出力 wh ⅱ e 文による出力 (b) 実行結果 (a) スクリプト 73 ン 9 技術 2016 年 11 月号

ファイル ( 月編集タブ (T) ヘルプ ( H ) [email protected] $ cd work [email protected] : Ywork $ pyt hon samp1e5. py Mar' Apr' [ ' Jan' ' Feb' May Month : Jan, Apr Jun , 7 , print ListC # リストの生成 ー coding:utf—8 ー☆ー Month : 8 , 10 ListC = ['Jan','Feb' ′ 'Mar','Apr',May' ′ ,Jun,′7′8 ′ 9 ′ 1 の 11 ′ 12 ] (b) 実行結果 (a) スクリプト print "Month : %d, %d" % (ListC[7] ′ ListC[9]) print "Month : 0/os, %s" % (ListC[0], ListC[3]) ションを使うと , count で回数を制限できます . 要素が , value 変数に毎ループ入ります . range オプ ・・ in" の後ろに記述するループ対象オプジェクトの 1 る実行文は字下げします . 行末に " : ( コロン ) " が必要です . f 。 r 文の内部にあ 8 , 9 , 1 0 , くリスト 6 python 言語でターミナルに文字 を出力する p ⅱ nt 文を書く 1 2 ] range 以降はなくてもかまいません . ・ while 文 while 文の書き方を次に示します . while 条件式 : 実行文 条件式の後には " : ( コロン ) " が必要です . の内部にある実行文は字下げします . 0 p 「 int 文の書き方 while 文 Pyth 。 n の print 文は機能が豊富です . 使用例をリス ト 6 に示します . 書き方を次に示します . print ”文字列 : フォーマット” % フォーマット部には次の変数を代入します . %s : 文字列 = %d : 数値 出力先はターミナルです . Python の標準ライプラリ RPi. GPIO で ・パイの入出力を制御する ラズベリー python スクリプトで , ラズベリー・パイの入出力 ピン ( GPIO ) を制御する方法を説明します . python が標準で備えている RPi. GPIO というライプ ラリを使うと , ラズベリー・パイの入出力端子を制御 できます . RPi. GPIO は , 管理者権限で import すると 使えます . RPi. GPIO を使った Python プログラムは , sudo コマンドで実行します . 0 入出力ピンの制御 ・ステップ 1 RPi. G 曰 0 ライブラリをインポートする 次のように記述すれば , RPi. GPIO をインポートで 74 きます . インポートした後は , ℃ PIO" というインス タンスが使えます . import RPi. GPIO as GPIO ・ステップ 2 使う G 曰 0 ピンを指定する 図 2 に GPIO のピン番号と GPIO 番号の関係を示し ます . 2 つの指定方法があり , 次のいずれかの記述を 最初に追加します . ・指定方法 1 : GPIO. setmode (GPIO. BCM) #GPIO の番号で指定する ・指定方法 2 : GPIO. setmode (GPIO. BOARD) # コネクタのピン番号で指定する ・ステップ 3 レ 0 端子を出力または入力に設定する 出力に設定する 次のように記述します . GPIO. set 叩 ( ピン番号 , GPIO. OUT, initial = GPIO. HIGH) initial 記述はオプションで , 初期状態を H レベルに するか L レベルにするかを指定できます . 出力ピンのレ H を制御するときは次のように記述 します . GPIO. output ( ピン番号 , GPIO. HIGH) # ディジタ ル出力を H レベルにする GPIO. output ( ピン番号 , GPIO. LOW) # ディジタ ル出力を L レベルにする 入力に設定する 次のように記述します . GPIO. setup ( ピン番号 , GPIO. IN, pull—up—down = GPIO. PUD-UP) す . トランシスタ技術 2016 年 11 月号 ラズベリ ー・パイの入出力ピンを制御する pyth 。 n 理に実行権を渡しています . ⅱ me. sleep で 10ms の待ちを挿入し , この間は他の処 while は , 他の処理の実行をプロックします . そこで , time. sleep ( 0.01 ) while GPIO. input ( ピン番号 ) = = GPIO. HIGH: 次のように記述します . ポーリングでピンの入力レベルの変化を待っときは value = GPIO. input ( ピン番号 ) 信号を取り込むときは次のように記述します . (PUD_UP), プルダウン (PUD_DOWN) を指定できま pull—up-down 以降はオプションです . プルアップ