one key マニュアル

スポンサーリンク

はじめに

カニカルキーを簡単にArduinoなどで扱えるように
ピンソケットをつけてみました。
Arduinoなどを使ったキーボード作成の試作などに便利かもしれません。
ストラップにもできるよう紐も一緒に入れました。
正方形に近くなるように設計したので、結構かわいい感じがしますがどうですか?

製品仕様

・ピンソケット(2P)
・メカニカルキー
・M2ネジ穴

回路図

Lチカに使ってみた

MicroPythoで制御してみました。Raspberry pi picoでも同じことが出来ます。ちなみに貼り付けたツイッターの動画に登場するボードは私が作ったRaspberr Pi Picoの互換ボードです。スイッチサイエンスでも販売しているので興味があればぜひ。

このスイッチは回路的にはチャタリング対策をしていないので、ソフトで対策する必要があります。   MicroPythonではピンの宣言時にPin.PULL_DOWNでOKです。

from machine import Pin
import time

button = Pin(14,Pin.IN,Pin.PULL_DOWN)
LED = Pin(13,Pin.OUT)

while True:
    
    if button.value():
        print("ON")
        LED.value(1)
    else:
        print("OFF")
        LED.value(0)
        
    time.sleep(0.1)

Arduinoを使う場合はこうなります。

int pin = 10;
int led = 11;
void setup() {
  pinMode(pin,INPUT_PULLUP);
  pinMode(led, OUTPUT);
  Serial.begin(9600);

}

void loop() {
  int val = digitalRead(pin);
  Serial.println(val);
  if(val == 0) {
     digitalWrite(led,LOW);
  }else {
      digitalWrite(led,HIGH);
  }
  
  delay(100);

}

制作過程の動画


www.youtube.com

動画でスタックチャンの表情をキースイッチで操作していますが、サンプルコードを下に載せときます。

#include <M5Unified.h>
#include <Avatar.h>
#include <faces/DogFace.h>

using namespace m5avatar;

Avatar avatar;

const Expression expressions[] = {
  Expression::Angry,
  Expression::Sleepy,
  Expression::Happy,
  Expression::Sad,
  Expression::Doubt,
  Expression::Neutral
};

int val=0;

void setup()
{
  M5.begin();
  M5.Lcd.setBrightness(30);
  M5.Lcd.clear();
  avatar.init();
  pinMode(26,INPUT_PULLDOWN);

}

void loop(){
    val = digitalRead(26);
    if (val == 1) {
        avatar.setExpression(expressions[2]);
        delay(1000);
    } else {
        avatar.setExpression(expressions[0]);
        delay(1000);
    }


}