Python基本テンプレファイル
今回の準備。
今回は、カンタンにちびモニター(SSD1306)と LEDチカチカを実行できるPythonのテンプレファイルの話をするにゃよ!
ちびモニターといえば、X68000Z DAC(PCM5102)とちびモニター(SSD1306)を用意する の回でライブラリをインストールしたね。
してない方はしときましょー!
あと、LEDで表示するのにいいかんじのフォントもダウンロードしましょにゃ。 SourceHanSansJP-Medium.otf をいただきましょ。
ラズパイでDLか、ファイルをラズパイに移動するにゃ。
管理権限のファイルマネージャーをスタートメニューに登録 で使った管理者としてファイルマネージャを開くにゃ。または、ターミナルから
「SUDO PCMANFM」 にゃよ。管理者でファイルを移動!
おっけー、
/usr/share/fonts/opentype の中にいれまーす!
GPIOピン配置の確認。
LEDとスイッチとモニターが装着されていること前提にゃよ。
GPIO23番にLED、GPIO26番にスイッチ、LCDモニター (SSD1306) が
装着されている状態を前提としたおはなしになります!
X68000Z X68uartRasModuleの製作 組立編 で組んだ方
X68000Z DAC(PCM5102)とちびモニター(SSD1306)を用意する + GPIO23にLED + GPIO26にスイッチ
GPIOのピン配置確認
ファイルをダウンロード。中身をみていこー。
では中身の解説にゃ! ていうかファイルに注釈入れてるから見てにゃ!
import RPi.GPIO as GPIO #GPIO制御
import time #時間制御
import serial #シリアルポート使用
import os #OS依存のいろんな機能を使う
import pdb #デバッグ用
import Adafruit_SSD1306 #ちびモニターを使用
from PIL import Image #ちびモニター描画で使用
from PIL import ImageDraw #ちびモニター描画で使用
from PIL import ImageFont #ちびモニター描画で使用
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
led=23 #使用GPIOのNo
switch=26 #使用GPIOのNo
GPIO.setwarnings(False) #注意メッセージを表示しない
GPIO.setmode(GPIO.BCM) #GPIOをピン番号での指定BCMと設定 (BCM:名称ピン番号指定/BOARD:左上からの連番指定)
GPIO.setup(led, GPIO.OUT) #指定ピンを入力/出力どちらを使うかの設定
GPIO.setup(switch, GPIO.IN, pull_up_down=GPIO.PUD_UP) #スイッチで使うGPIOのプルアップ設定
GPIO.output(led,False)
sw_status = GPIO.input(switch) #スイッチの状態を取得
font = ImageFont.truetype('SourceHanSansJP-Medium.otf', 15)#OLEDのフォント指定
ser = serial.Serial('/dev/ttyAMA0',19200,timeout=None) #Z:19200 XM6:38400
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
def main_code(): #プログラム
print("Program_Start") #ラズパイのターミナルに表示
#led_chika(3) #LED(回数)
#printset("Print Test","") #OLED (""でクリア)
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
def led_chika(a):#GPIO Lチカ
for num in range(0,a):
GPIO.output(led,True)
time.sleep(0.2)
GPIO.output(led,False)
time.sleep(0.2)
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#ちびモニター出力は Qiita @tkarubeさんの投稿されたコードを基本にしています。
#Raspberry Pi に 128x64 OLED ディスプレイ (SSD1306) を繋いで文字を表示する
#https://qiita.com/tkarube/items/6808538012cba499d5e2
def initialize_display():
RST = None
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()
return(disp)
def initialize_image(disp):#olde
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
return(image, draw)
def write_image(disp, draw, image, txt1, txt2):#olde
draw.text((0, 0), txt1, font=font, fill=255)
draw.text((0,25), txt2, font=font, fill=255)
disp.image(image)
disp.display()
def printset(txt1, txt2):
image, draw = initialize_image(disp)
write_image(disp, draw, image, txt1, txt2)
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
if sw_status == 0:
print("スイッチはON")
if sw_status == 1:
print("スイッチはOFF")
disp = initialize_display()
printset("ちびモニター出力","SwichON.py") #ここ以外はSwichOFF.pyと同じです
main_code() #メインルーチンへ移動
#GPIO.cleanup()#GPIO初期化
main_code(): に好きなプログラム書いていけばいいのね!
なんかカンタン!!
sw_status にスイッチ状態が取得されるにゃよ。
シェルスクリプトで分岐させてたらあんま意味ないけど、一応にゃ。
main_code(): に#が入っている2つ。#を抜いて使ってにゃ。
led_chika(3) ※カッコ内は光らせる回数
printset(“Print Test”,””) ※前の” “は上段 / 後の” ” は下段。
変数使っていろんなとこで代入しちゃえば、文字でもLEDでも状況を
ユーザーに伝えることができるから便利にゃよ!
X68000Zとの通信でうまく使えば X68000Zからの指示でモニター表示させたり、LED光らせたりできそうだから楽しそうだねー!
ちびモニターの表示はもっともっと自由に表示できるとおもいますので、「SSD1306」で検索して表示方法パワーアップしたら楽しいかも!
・
・
・
- X68000Z UARTでなにができるの?
- X68000Zを動かしてみよう! X-Basic準備
- どのラズパイを選べばいいかな?
- ラズパイUART設定とケーブル接続
- ラズパイとのUART接続確認テスト
- MIDI再生専用FDを作成(mt32pi)
- MIDI再生専用FDを作成(ttymidi)
- mt32-piでラズパイをMIDI音源にする
- MIDIハード音源を試す
- DACとちびモニターを用意する
- X68uartRasModuleの製作 準備編
- X68uartRasModuleの製作 組立編
- アップデートとHDDの設定
- SX-Window HDDにインスト
- SX-Window MIDI演奏設定
- SX-Window MIDIハード音源設定
- プログラミング編 X-Basicになれてみる
- プログラミング編 Pythonに少し慣れてみる
- プログラミング編 UARTでX68kZからラズパイを操作!
- シェルスクリプトSW分岐とLチカ
- ちびモニタとLEDを制御する!
- ttymidiのUSBの関連付け自動
- Python実行形式にするPyInstaller
- Winkipedia/2chSC閲覧 X68k RasNet
- X68000Zの基本操作などのまとめ
- 番外編はTOPから!