Xian DIY one-key grove connector(メカニカルキースイッチ・テストボード) マニュアル

スポンサーリンク

はじめに

以前one keyのメカニカルキーボードスイッチを発売したのですが、M5StackやM5Stickで遊ぶときにgroveコネクタで繋げられたら便利だなと思って、groveコネクタバージョンを作ってみました。ピン配置は後述していますが、LEDも搭載しているので、自由に点灯タイミングを制御できます。スイッチの状態によって連動させても良いですし、チカチカさせとくのも良しです。少しわかりにくいですが、ジャンパポイントがJP1~JP5まであります。回路図を参考にジャンパする場所を変更すると、プルアップ、プルダウンを変更できたりします。デフォルトではプルアップ方式になっています。

One key(メカニカルキースイッチ・テストボード)www.switch-science.com

仕様

  • Grove コネクタ

  • カニカルキー(Cherry互換、赤軸)

  • M2ネジ穴(ネジ穴間隔 18 mm)

  • LED付き

使用例

M5SticC PLUS2を使って遊んでみました。

oid setup() {
  pinMode(G32, OUTPUT);
}

void loop() {
  digitalWrite(G32,LOW);
  delay(1000);
  digitalWrite(G32,HIGH);
  delay(1000);
}

void setup() {
  // put your setup code here, to run once:
  pinMode(G32, OUTPUT);
  pinMode(G33, INPUT);

}

void loop() {
  int value = digitalRead(G33);
  if(value == 0) {
    digitalWrite(G32,HIGH);
  }else {
    digitalWrite(G32,LOW);
  }
  delay(100);
}

#include "M5StickCPlus2.h"

void setup() {
  pinMode(G32, OUTPUT);
  pinMode(G33, INPUT);
  auto cfg = M5.config();
    StickCP2.begin(cfg);
    int textsize = StickCP2.Display.height() / 60;
    if (textsize == 0) {
        textsize = 1;
    }
    StickCP2.Display.setTextSize(textsize);
}

void loop() {
  int value = digitalRead(G33);
  StickCP2.Display.setCursor(0, 30);
  if(value == 0) {
    digitalWrite(G32,HIGH);
    StickCP2.Display.print("Hello");
  }else {
    digitalWrite(G32,LOW);
     StickCP2.Display.clear();
  }
  delay(100);
}

#include "M5StickCPlus2.h"

void setup() {
  pinMode(G32, OUTPUT);
  pinMode(G33, INPUT);
  
  auto cfg = M5.config();
  StickCP2.begin(cfg);
  StickCP2.Display.setRotation(1);
  StickCP2.Display.setTextColor(GREEN);
  StickCP2.Display.setTextDatum(middle_center);
  StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);
  StickCP2.Display.setTextSize(1);
  StickCP2.Display.drawString("Buzzer Test", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);

}

void loop() {
  int value = digitalRead(G33);
  StickCP2.Display.setCursor(0, 30);
  if(value == 0) {
    digitalWrite(G32,HIGH);
    //StickCP2.Display.print("Hello");
    StickCP2.Speaker.tone(4000, 20);
    StickCP2.Display.drawString("Buzzer Test", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);
                                
    
  }else {
    digitalWrite(G32,LOW);
     StickCP2.Display.clear();
  }
  delay(100);
}

ピン配置

回路図

出荷状態ではR3抵抗はついていません(プルアップのため)。またJP1(2-3),JP2,JP3,JP5(1-2)でジャンパしています。

サイズ