Розмір відео: 1280 X 720853 X 480640 X 360
Показувати елементи керування програвачем
Автоматичне відтворення
Автоповтор
サムネイル見てゲーミング用の左手デバイスかと思いましたが、イラスト用でしたか!1から設計、制作されるのはすごいですね〜
プログラムを張っておきます。長いですがArduino用なのでコピペしてエディタに張り付ければ使えます。#include #include //エンコーダ設定const int Encoder_phase_A=2;const int Encoder_phase_B=3;volatile int Encoder_pos = 0;volatile uint8_t AB_prev = 0;static int count_now=0; //スクロールの一度の操作量を制限//Joystick設定const int Joystick_switch = 9;const int Joystick_x_Axis = A1;const int Joystick_y_Axis = A0;int range = 25; //XY軸動作範囲int center = range / 2; //Joystick中心位置int threshold = range / 4; //Joystickデッドゾーン//Arduino入力ピン割り当てconst int Key1_input = 4;const int Key2_input = 5;const int Key3_input = 6;const int Key4_input = 7;const int Key5_input = 10;const int Key6_input = 16;const int Key7_input = 14;const int Key8_input = 15;//入力ピン-入力文字割り当てconst char Key1='w';const char Key2='a';const char Key3='s';const char Key4='d';const char Key5='1';const char Key6='2';const char Key7='3';const char Key8='4';//#define Key1_Joystick_switch KEY_LEFT_CTRL //ショートカット用:2つ入力const char Key2_Joystick_switch = 'z';//プロトタイプ宣言void Encoder();void readAxis();void setup() { //エンコーダ信号入力:A/B pinMode(Encoder_phase_A,INPUT_PULLUP); //プルアップ抵抗を有効化 pinMode(Encoder_phase_B,INPUT_PULLUP); //プルアップ抵抗を有効化 //Joystick信号入力:X/Y,switch pinMode(Joystick_switch, INPUT_PULLUP); pinMode(Joystick_x_Axis, INPUT); pinMode(Joystick_y_Axis, INPUT); //キー入力 pinMode(Key1_input,INPUT_PULLUP); //Wキー pinMode(Key2_input,INPUT_PULLUP); //Aキー pinMode(Key3_input,INPUT_PULLUP); //Sキー pinMode(Key4_input,INPUT_PULLUP); //Dキー pinMode(Key5_input,INPUT_PULLUP); //1キー pinMode(Key6_input,INPUT_PULLUP); //2キー pinMode(Key7_input,INPUT_PULLUP); //3キー pinMode(Key8_input,INPUT_PULLUP); //4キー //ロータリーエンコーダ入力 attachInterrupt(0,Encoder,CHANGE); attachInterrupt(1,Encoder,CHANGE); //その他 Mouse.begin(); Keyboard.begin(); Serial.begin(9600);}void loop() { //Serial.println(Encoder_pos); //*******エンコーダ設定******* if(Encoder_pos == 1){ Mouse.move(0,0,1); }else if(Encoder_pos == -1) { Mouse.move(0,0,-1); } Encoder_pos=0; //*******Joystick設定******* if(digitalRead(Joystick_switch) == LOW){ Keyboard.press(Key1_Joystick_switch); Keyboard.press(Key2_Joystick_switch); }else if(digitalRead(Joystick_switch) == HIGH){ Keyboard.release(Key1_Joystick_switch); Keyboard.release(Key2_Joystick_switch); } Mouse.move(readAxis(Joystick_x_Axis), (-1*readAxis(Joystick_y_Axis)),0); //*******キー設定******* if (digitalRead(Key1_input) == LOW){ Keyboard.press(Key1); }else{ Keyboard.release(Key1); } if (digitalRead(Key2_input) == LOW){ Keyboard.press(Key2); }else{ Keyboard.release(Key2); } if (digitalRead(Key3_input) == LOW){ Keyboard.press(Key3); }else{ Keyboard.release(Key3); } if (digitalRead(Key4_input) == LOW){ Keyboard.press(Key4); }else{ Keyboard.release(Key4); } if (digitalRead(Key5_input) == LOW){ Keyboard.press(Key5); }else{ Keyboard.release(Key5); } if (digitalRead(Key6_input) == LOW){ Keyboard.press(Key6); }else{ Keyboard.release(Key6); } if (digitalRead(Key7_input) == LOW){ Keyboard.press(Key7); }else{ Keyboard.release(Key7); } if (digitalRead(Key8_input) == LOW){ Keyboard.press(Key8); }else{ Keyboard.release(Key8); }}void Encoder(){ uint8_t A=digitalRead(2); //A相の信号を読み取る:読み取り値 0 or 1 uint8_t B=digitalRead(3); //B相の信号を読み取る:読み取り値 0 or 1 uint8_t AB = (A
なかなか良さそう😸次回作に期待してます。
完璧ぃ!!とはw
感動した
丁度アナログスティック+キーボードのものを探していました!もし可能であれば,3Dパーツのデータをアップロードしていただくことは可能でしょうか.
サムネイル見てゲーミング用の左手デバイスかと思いましたが、イラスト用でしたか!
1から設計、制作されるのはすごいですね〜
プログラムを張っておきます。
長いですがArduino用なのでコピペしてエディタに張り付ければ使えます。
#include
#include
//エンコーダ設定
const int Encoder_phase_A=2;
const int Encoder_phase_B=3;
volatile int Encoder_pos = 0;
volatile uint8_t AB_prev = 0;
static int count_now=0; //スクロールの一度の操作量を制限
//Joystick設定
const int Joystick_switch = 9;
const int Joystick_x_Axis = A1;
const int Joystick_y_Axis = A0;
int range = 25; //XY軸動作範囲
int center = range / 2; //Joystick中心位置
int threshold = range / 4; //Joystickデッドゾーン
//Arduino入力ピン割り当て
const int Key1_input = 4;
const int Key2_input = 5;
const int Key3_input = 6;
const int Key4_input = 7;
const int Key5_input = 10;
const int Key6_input = 16;
const int Key7_input = 14;
const int Key8_input = 15;
//入力ピン-入力文字割り当て
const char Key1='w';
const char Key2='a';
const char Key3='s';
const char Key4='d';
const char Key5='1';
const char Key6='2';
const char Key7='3';
const char Key8='4';
//
#define Key1_Joystick_switch KEY_LEFT_CTRL //ショートカット用:2つ入力
const char Key2_Joystick_switch = 'z';
//プロトタイプ宣言
void Encoder();
void readAxis();
void setup() {
//エンコーダ信号入力:A/B
pinMode(Encoder_phase_A,INPUT_PULLUP); //プルアップ抵抗を有効化
pinMode(Encoder_phase_B,INPUT_PULLUP); //プルアップ抵抗を有効化
//Joystick信号入力:X/Y,switch
pinMode(Joystick_switch, INPUT_PULLUP);
pinMode(Joystick_x_Axis, INPUT);
pinMode(Joystick_y_Axis, INPUT);
//キー入力
pinMode(Key1_input,INPUT_PULLUP); //Wキー
pinMode(Key2_input,INPUT_PULLUP); //Aキー
pinMode(Key3_input,INPUT_PULLUP); //Sキー
pinMode(Key4_input,INPUT_PULLUP); //Dキー
pinMode(Key5_input,INPUT_PULLUP); //1キー
pinMode(Key6_input,INPUT_PULLUP); //2キー
pinMode(Key7_input,INPUT_PULLUP); //3キー
pinMode(Key8_input,INPUT_PULLUP); //4キー
//ロータリーエンコーダ入力
attachInterrupt(0,Encoder,CHANGE);
attachInterrupt(1,Encoder,CHANGE);
//その他
Mouse.begin();
Keyboard.begin();
Serial.begin(9600);
}
void loop() {
//Serial.println(Encoder_pos);
//*******エンコーダ設定*******
if(Encoder_pos == 1){
Mouse.move(0,0,1);
}else if(Encoder_pos == -1)
{
Mouse.move(0,0,-1);
}
Encoder_pos=0;
//*******Joystick設定*******
if(digitalRead(Joystick_switch) == LOW){
Keyboard.press(Key1_Joystick_switch);
Keyboard.press(Key2_Joystick_switch);
}else if(digitalRead(Joystick_switch) == HIGH){
Keyboard.release(Key1_Joystick_switch);
Keyboard.release(Key2_Joystick_switch);
}
Mouse.move(readAxis(Joystick_x_Axis), (-1*readAxis(Joystick_y_Axis)),0);
//*******キー設定*******
if (digitalRead(Key1_input) == LOW){
Keyboard.press(Key1);
}else{
Keyboard.release(Key1);
}
if (digitalRead(Key2_input) == LOW){
Keyboard.press(Key2);
}else{
Keyboard.release(Key2);
}
if (digitalRead(Key3_input) == LOW){
Keyboard.press(Key3);
}else{
Keyboard.release(Key3);
}
if (digitalRead(Key4_input) == LOW){
Keyboard.press(Key4);
}else{
Keyboard.release(Key4);
}
if (digitalRead(Key5_input) == LOW){
Keyboard.press(Key5);
}else{
Keyboard.release(Key5);
}
if (digitalRead(Key6_input) == LOW){
Keyboard.press(Key6);
}else{
Keyboard.release(Key6);
}
if (digitalRead(Key7_input) == LOW){
Keyboard.press(Key7);
}else{
Keyboard.release(Key7);
}
if (digitalRead(Key8_input) == LOW){
Keyboard.press(Key8);
}else{
Keyboard.release(Key8);
}
}
void Encoder(){
uint8_t A=digitalRead(2); //A相の信号を読み取る:読み取り値 0 or 1
uint8_t B=digitalRead(3); //B相の信号を読み取る:読み取り値 0 or 1
uint8_t AB = (A
なかなか良さそう😸
次回作に期待してます。
完璧ぃ!!とはw
感動した
丁度アナログスティック+キーボードのものを探していました!
もし可能であれば,3Dパーツのデータをアップロードしていただくことは可能でしょうか.