###### tags:`ものものテック` # 置き菓子 ## 概要 センサーを利用し、扉の開け閉め等を検知するガジェットの作成。 成果物↓↓↓ {%youtube ttEtxku4cRw %} ## 仕様 - フルスクリーンで表示 - Qキーで終了 - ドアを閉めたときCloseを表示 - ドアを開けたときOpenを表示 - ドアを閉めたとき「ありがとうございました」 - ドアを開けたとき「いらっしゃいませ」 ## コード ``` pyhon import pygame import RPi.GPIO as GPIO import time try: pygame.init() #### Set GPIO #### GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP) #### Set Display Size #### w = pygame.display.Info().current_w h = pygame.display.Info().current_h #### Set Backgroud #### screen = pygame.display.set_mode((w, h), pygame.FULLSCREEN) backGroud = pygame.image.load("macalon.jpg"); backGroud = pygame.transform.scale(backGroud, (w, h)) #### Set Sound #### soundA = pygame.mixer.Sound("arigatougozaimashita.wav") soundB = pygame.mixer.Sound("irasshaimase.wav") status = GPIO.input(18) isExecution = True pygame.mouse.set_visible(False) while isExecution: value = GPIO.input(18) ~~~ #### Set font #### font = pygame.font.Font(None, 220) text = font.render(text_string, True, (255, 255, 255)) text_w, text_h = font.size(text_string) test_x = int(w / 2 - text_w / 2) test_y = int(h / 2 - text_h / 2) screen.blit(backGroud, (0, 0)) screen.blit(text, (test_x, test_y)) pygame.display.update() time.sleep(0.03) except Exception as e: print(e) ``` 一部省略しています。 ## 最終課題の感想 最終課題は、センサーを冷蔵庫につけた。 初めのうちは、センサーを冷蔵庫の上にのせるだけだったが、そのままだと落ちてしまうのでセロハンテープでくっつけた。 実際に使用する場合は、センサーの取り付けにも工夫が必要だ。 センサーを取り付けることを考えると多くのことに応用できる。 例えば、小さな子供が勝手に部屋を出るときにこのセンサーを取り付けておけば、音声が教えてくれる。 また、動画だとラズパイ本体が見えないがスピーカーの後ろに配置してある。 これは、スピカーの音量が小さいので少しでも音が広がりやすくする工夫だ。 ディスプレイを置けるスペースがなかったので、今回はVNCを利用した。 ## 全体的なの感想 pythonを触るのが初めてだったので、入りは少しとまどった。 プログラミングよりも、電気関係の知識が薄く序盤のチャプターを理解するのが少し時間がかかった。 自分なりにプルアップ/プルダウン処理は、理解したつもりだが100点とは言い難い。 プルアップ/プルダウン処理・ピン・チャタリング・電気など、ハード側の知識に不安を覚える。