もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

ラズパイ(ZRX-543)で遊んでみようと試みたがだめだった。

はじめに

こんにちは。

この記事は Kojirock1一人 Advent Calendar 2019の6日目の記事です。

adventar.org

今回は参考本ではなく、事前に買った初心者キットに入っていたものを使いながら色々遊んでみます。

初心者キットの中に、 Keypad ZRX-543 という電卓みたいなパーツが入っていたので、早速使ってみました。

f:id:kojirooooocks:20191122023535j:plain

f:id:kojirooooocks:20191122023909j:plain

ぐぐってもあんまり有効な記事が見当たらず、唯一良さげな動画があったので、こちらのとおりに進んでみました。

www.youtube.com

やってみた

早速つなげてみました。

f:id:kojirooooocks:20191122042315j:plain

コードも動画のとおりに書いてみます。

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

MATRIX = [
    [1, 2, 3, 'A'],
    [4, 5, 6, 'B'],
    [7, 8, 9, 'C'],
    ['*', 0, '#', 'D'],
]

ROW = [7, 11, 13, 15]
COL = [12, 16, 18, 22]

for j in range(4):
    GPIO.setup(COL[j], GPIO.OUT)
    GPIO.output(COL[j], 1)

for i in range(4):
    GPIO.setup(ROW[i], GPIO.IN, pull_up_down = GPIO.PUD_UP)

try:
    while(True):
        for j in range(4):
            GPIO.output(COL[j], 0)
            for i in range(4):
                if GPIO.input(ROW[i]) == 0:
                    print MATRIX[i][j]
                    while (GPIO.input(ROW[i]) == 0):
                        pass
            GPIO.output(COL[j], 1)

except KeyboardInterrupt:
    GPIO.cleanup()

実際に動かすと、妙な動き...

f:id:kojirooooocks:20191122043944g:plain

入力していないのに入力されたり、ボタンを連続で押されたりと、なかなか難しい。

多分配線がおかしいんだと思いますが、どこがどうおかしいのかわからず、このあと一時間くらい頑張りましたが、動かず断念しました。

終わりに

初心者キッドには各ツールの説明書がないので、わからなかったら謎のままで終わっちゃうのが残念なところです。。。

自分に基礎知識があれば、「ああ。これはここ繋げばいけるっしょ」みたいに変換できると思うのですが、いかんせんそこまで想像力が働かないので、今回はここまで。

リベンジはしたいと思います!