著者:米田
シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)のプログラミングが楽しめる拡張ボード「ラズパイ入門ボード」を制作しました。本連載では、ラズパイ入門ボードを使った電子回路制御を取り上げていきます。第2 回は、Grove System の光センサーを扱います。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import time import Adafruit_GPIO.SPI as SPI import Adafruit_SSD1306 from PIL import Image from PIL import ImageDraw from PIL import ImageFont class OLED(): OLED_WIDTH = 128 OLED_HEIGHT = 64 RST = 24 DC = 23 SPI_PORT = 0 SPI_DEVICE = 0 DEFAULT_FONT = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf' FONT_SIZE = 14 _LINE_HEIGHT = 16 def __init__(self, port=SPI_PORT, dev=SPI_DEVICE, _rst=RST, _dc=DC): self._spi = SPI.SpiDev(port, dev, max_speed_hz=8000000) self._disp = Adafruit_SSD1306.SSD1306_128_64(rst=_rst, dc=_dc, spi=self._spi) self._disp.begin() self._disp.clear() self._disp.display() self._image = Image.new('1', (self.OLED_WIDTH, self.OLED_HEIGHT) ,0) self._draw = ImageDraw.Draw(self._image) self._font = ImageFont.truetype(self.DEFAULT_FONT, self.FONT_SIZE, encoding='unic') def put_string(self, str, line=0): self._draw.rectangle((0, line*self._LINE_HEIGHT, self.OLED_WIDTH,line*self._LINE_HEIGHT+self._LINE_HEIGHT), fill=(0)) self._draw.text((0, line*self._LINE_HEIGHT), str, font=self._font, fill=1) self._disp.image(self._image) self._disp.display() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/python3 # -*- coding: utf-8 -*- from tsl2561 import TSL2561 from OLED import OLED import time oled = OLED() # アドレスを指定する tsl = TSL2561(address=0x29) oled.put_string('Current LUX') while True: # lux()メソッドで現在の照度を得ることが出来る oled.put_string(str(tsl.lux()), 1) time.sleep(1) |