不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

CrowPiレッスン18:ボタンマトリックスの使用と制御

2020-11-11 15:09:44 | CrowPi

Using and controlling the Button Matrix.

レッスン18"ボタンマトリックスの使用と制御。"をやっていく。

概要を引用
マトリックスボタンは、CrowPiボードの周りに16個の独立したボタンがあるモジュールで、シークレットコードキーパッド、メモリゲーム、または必要なものを制御するなど、幅広いプロジェクトに使用できます。
ボタンの可能性が広いので、どこからでも何でも作れます!

何を学習するか

このレッスンを終了すると、次のことができるようになります。
  • ボタンマトリックスがどのように機能し、GPIOピンを介してそれを制御する方法を理解する

何が必要か

  • 初期設定後のCrowPiボード

Requires switching modules using the switch

  • はい、左側のスイッチ-すべてのピンを上にしてオンにします(センサーの切り替え方法を忘れた場合は、5ページを参照してください)

CrowPi上のボタンマトリックスの位置



ボタンマトリックスの操作

解説の引用
ボタンマトリックスは、それぞれ4つの列と行に組み込まれています。マトリックスの行と列をGPIOピンで構成し、ButtonMatrix()というオブジェクトをボタン変数に初期化します。
その後、ボタンの各ボタンに移動して、クリックされたかどうかを検出できるようになります。
この例では、ボタンが押された場合、activateButton()をアクティブにして、押されたボタン番号を出力します。 このモジュールを変更して、ボタンが押されたかどうかに関係なく、想像できるすべてのことを実行できるようにすることができます。

このレッスンで使用するPythonスクリプトは以下の通り。

Examples/button_matrix.py
import RPi.GPIO as GPIO
import time

class ButtonMatrix():

 def __init__(self):

  GPIO.setmode(GPIO.BCM)

  # matrix button ids
  self.buttonIDs = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
  # gpio inputs for rows
  self.rowPins = [27,22,5,6]
  # gpio outputs for columns
  self.columnPins = [13,19,26,25]

  # define four inputs with pull up resistor
  for i in range(len(self.rowPins)):
   GPIO.setup(self.rowPins[i], GPIO.IN, pull_up_down = GPIO.PUD_UP)

  # define four outputs and set to high
  for j in range(len(self.columnPins)):
   GPIO.setup(self.columnPins[j], GPIO.OUT)
   GPIO.output(self.columnPins[j], 1)
(以下、省略)

例のごとく、GPIO.setmodeとpin番号を修正。

修正後
  GPIO.setmode(GPIO.BOARD)

  # matrix button ids
  self.buttonIDs = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
  # gpio inputs for rows
  self.rowPins = [13,15,29,31]
  # gpio outputs for columns
  self.columnPins = [33,35,37,22]

このスクリプトを実行して、マトリックスボタンを押すと、対応する数値がターミナル上に表示される。

↑ちなみに、上記のスクリプトの場合、ボタンの番号が、右上から左方向に1、2、・・・と割り振られていて、CrowPiボード上に書かれている番号と異なるので、ちょっと変な感じがする。
ボードに書かれた番号に対応させるには、スクリプトの該当部分を以下のように修正する。
  • self.columnPins = [13,19,26,25]



最新の画像もっと見る