산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

ThimbleKrox - 손가락으로 마우스 제어

구성품 및 소모품

Arduino Micro
× 1
SparkFun 3축 가속도계 및 자이로 브레이크아웃 - MPU-6050
× 1

필요한 도구 및 기계

3D 프린터(일반)
선택 사항

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

안녕하세요 여러분, 여기 제 첫 번째 프로젝트인 ThimbleKrox가 있습니다. 이것은 인덱스(또는 아무 손가락)의 움직임을 통해 마우스 포인터를 제어할 수 있는 골무입니다.

1단계:필요한 재료 및 도구

필요한 재료:

<울>
  • 아두이노 마이크로
  • MPU-6050
  • Arduino와 PC를 연결하는 케이블(micro USB to USB)
  • 점퍼(Arduino와 MPU-6050 연결용)
  • 탄성체(Arduino를 손에 부착하려는 경우)
  • 필요한 도구:

    <울>
  • Arduino IDE가 설치된 컴퓨터(Arduino에서 코드 부팅용)
  • 납땜 인두(Arduino에 핀 커넥터가 사전 조립되지 않은 경우에만)
  • 3D 프린터(심블을 멋지게 보이게 하려면)
  • 2단계:연결

    arduino의 핀을 MPU-6050의 핀에 연결합니다.

    <울>
  • 아두이노의 VCC를 VCC에 고정
  • GND를 GND에 고정
  • SDA에 핀 2
  • SCL에 3번 핀을 연결합니다.
  • 3단계:3D 프린팅(선택 사항)

    당신의 골무가 멋지게 보이고 싶다면, 3D 프린터가 있다면 물리적인 골무를 출력할 수 있습니다.

    저는 두 가지 버전으로 만들었습니다. 하나는 인쇄할 지지대가 필요하지 않고 너무 부피가 크지 않고, 두 번째 버전은 너무 부피가 크지 않으면서 스팀펑크 스타일로 하려고 한 것입니다. one ), 그러나 이것은 지지대가 인쇄되어야 하고 착색된 경우에만 가장 잘 반환되어야 합니다(PLA의 경우 온도와 잘 어울렸습니다). 둘 다 바닥에 2개의 내부 돌출부가 있는 부품으로 인쇄해야 합니다.

    4단계:조립

    3D 인쇄된 골무 사용

    인쇄된 골무로 모든 것을 장착하려면 연결 후 MPU-6050을 골무의 상단 캐비티에 삽입하고 하단 캐비티의 케이블을 수용해야 합니다.

    3D 인쇄된 골무 없이

    이 경우 조립은 좀 더 아마추어적인 방식으로 이루어집니다. 즉, MPU-6050을 관심 있는 손가락의 마지막 지골에 위치시키고 접착 테이프나 고무줄로 막는 것입니다.

    5단계:코드 및 보정

    코드를 실행하기 위해 가장 먼저 할 일은 필요한 라이브러리인 Wire.h, I2Cdev.h, MPU6050.h 및 Mouse.h를 설치하는 것입니다.

    이 작업을 수행한 후 ThimbleKrox 보정 코드를 로드하고 골무를 착용하고 직렬 모니터를 여는 것이 좋습니다(Ctrl + Shift + M).

    이제 다음과 같이 표시되어야 합니다.

    맞아요 | gx =3165 gy =469 gz =-1055 | 도끼 =15232 y =2064 az =-4496 

    올바르게 보정된 경우 포인터를 이동한 다음 보정에 필요한 일부 값을 원하는 방향이 어디에 표시됩니다.

    이제 코드를 다시 열고 "// calibration line"으로 표시된 줄로 이동하여 올바른 방향을 얻을 때까지 숫자 값을 변경해야 합니다. (코드에서 값을 변경할 때마다 Arduino에 다시 업로드해야 함)

    예.

    직렬 모니터:

    <사전><코드>왼쪽 | gx =3165 gy =469 gz =-1055 | 도끼 =5232 y =2064 az =-4496

    교정 코드:

    if (ax> =15000) { // 보정 라인
    right ();
    }

    직렬 모니터는 "왼쪽"을 표시하지만 이 라인을 "오른쪽"으로 표시하기를 원하므로 "15000" 값을 "5000"으로 변경해야 합니다. 이 경우 감지된 "ax"가 코드의 값보다 큰지 확인해야 하기 때문입니다. 코드에 주요 기호가 있고 코드에 "ax"가 있기 때문에 직렬 모니터의 "ax"를 봐야 하기 때문에 더 커야 함을 이해합니다. (코드의 숫자 값만 변경하면 됨)

    Arduino에서 코드를 다시 로드하면 다음이 표시됩니다.

    직렬 모니터:

    맞아요 | gx =3165 gy =469 gz =-1055 | 도끼 =5232 y =2064 az =-4496 

    교정 코드:

    if (ax> =5000) { // 보정 라인
    right ();
    }

    교정 코드의 모든 교정 라인이 조정되어 교정 버전 심블이 작동하는 경우 기본 코드의 값은 교정 코드와 일치하도록 조정되어야 합니다.

    예.

    교정 코드:

    if (ax> =5000) { // 보정 라인
    right ();
    }

    메인 코드:

    if (ax> =15000) { // 보정 라인
    right ();
    }

    기본 코드는 다음과 같이 변경해야 합니다.

    if (ax> =5000) { // 보정 라인
    right ();
    }

    이제 메인 코드를 업로드할 시간입니다.

    6단계:프로젝트 완료

    이제 골무를 착용하고 가지고 놀 시간입니다!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • ThimbleKrox 코드
  • ThimbleKrox 보정 코드
  • ThimbleKrox 코드Arduino
    ThimbleKrok
    의 기본 코드//손가락의 움직임을 통해 마우스 포인터를 제어하는 ​​코드//장치를 보정하려면 "ThimbleKrox 보정 코드"를 실행하고 https://www.hackster.io/projects에 있는 자습서를 따르십시오. /dd8881///교정을 위해 변경해야 하는 라인에는 "//교정 라인"이 있습니다. //Magform으로 코드 작성#include #include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int 감도=10; //이 값을 변경하여 장치의 감도를 변경합니다. void setup() { Serial.begin(9600); Wire.begin(); mpu.initialize(); if (!mpu.testConnection()) { //MPU-6050과의 연결을 확인합니다. 연결 중지가 없으면 작동을 중지합니다. while (1); }}void up(){ Mouse.move(0, -sensibility); }void down(){ Mouse.move(0, 감성); }void left(){ Mouse.move(-sensibility, 0); }void right(){ Mouse.move(sensibility, 0); } 무효 루프() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if(ax>=15000){ //교정 라인 right(); } if(ax<=-9000){ //보정 라인 왼쪽(); } if(ay<=-8000){ //교정 라인 up(); } if(ay>=10000){ //교정 라인 down(); }//오른쪽 클릭을 스프린트 업으로, 왼쪽 클릭을 스프린트 다운으로 설정하려면 다음 줄의 주석 처리를 제거합니다. (Work in progress part)/* if(gy>=20000){ //calibration line Mouse.click(MOUSE_RIGHT); 지연(100); } if(gy<=-20000){ //교정 라인 Mouse.click(MOUSE_LEFT); 지연(100); }*/delay(10);}
    ThimbleKrox 보정 코드Arduino
    ThimbleKrox 보정을 위한 코드
    //TimbleKrox를 보정하는 코드//장치를 보정하려면 이 코드를 실행하고 https://www.hackster.io/projects/dd8881///필요한 라인에 있는 자습서를 따르십시오. 보정을 위해 (다른 코드로) 변경될 "//calibration line" //Magform에 의해 작성되는 코드#include #include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int Nwrong=1;void setup() { Nwrong=1; Serial.begin(9600); Wire.begin(); mpu.initialize(); while(Nwrong!=0){ if (!mpu.testConnection()) { Serial.print("잘못된 연결 번호:"); Serial.print(Nwrong); 엉++; 지연(1000); }else{ Nwrong=0; } }}위(){ Serial.print(" 위로 "); }void down(){ Serial.print(" 아래로 "); } 무효 왼쪽(){ Serial.print(" 왼쪽 "); } 무효 right(){ Serial.print(" 오른쪽 "); } 무효 rightclick(){ Serial.print(" RightClick ");; }void leftclick(){ Serial.print(" LeftClick ");; } 무효 루프() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if(ax>=15000){ //교정 라인 right(); } if(ax<=-9000){ //보정 라인 왼쪽(); } if(ay<=-8000){ //교정 라인 up(); } if(ay>=10000){ //교정 라인 down(); }//오른쪽 클릭을 스프린트 업으로, 왼쪽 클릭을 스프린트 다운으로 설정하려면 다음 줄의 주석 처리를 제거합니다. (Work in progress part)/* if(gy>=20000){ //calibration line rightclick(); 지연(100); } if(gy<=-20000){ //교정 라인 leftclick(); 지연(100); }*/ Serial.print(" | gx="); Serial.print(gx); Serial.print(" gy="); Serial.print(gy); Serial.print(" gz="); Serial.print(gz); Serial.print(" | ax="); Serial.print(ax); Serial.print(" y="); Serial.print(ay); Serial.print(" az="); Serial.print(az); Serial.print("\n"); 지연(5000); }
    심블크록스
    https://github.com/Magform/TimbleKrox

    맞춤형 부품 및 인클로저

    ThimbleKrox 3D 인쇄 가능 모델
    thingiverse.com 의 ThingiverseCAD 파일에서 모델을 가져오려는 경우 지원 필요지원 필요 없음

    회로도


    제조공정

    1. Arduino 및 Raspberry Pi로 인터넷 제어 비디오 스트리밍 로봇 구축
    2. 천장 선풍기에 Alexa 제어 기능을 사용하도록 설정
    3. Arduino로 코인 억셉터 제어
    4. Arduino 제어 센터
    5. Bluetooth가 탑재된 Arduino로 LED 제어!
    6. Arduino 가습기 제어
    7. Arduino Nano:조이스틱으로 2개의 스테퍼 모터 제어
    8. Cortana로 LED 제어
    9. Alexa 및 Arduino IoT Cloud를 사용하여 TV 전체 제어
    10. Arduino Uno를 사용한 25kHz 4핀 PWM 팬 제어