---
# System prepended metadata

title: 置き菓子
tags: [ものものテック]

---

###### 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点とは言い難い。
プルアップ／プルダウン処理・ピン・チャタリング・電気など、ハード側の知識に不安を覚える。



