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

조이스틱 제어 마우스

구성품 및 소모품

Arduino UNO
× 1
이중 축 조이스틱
× 1

앱 및 온라인 서비스

Arduino IDE
IDLE(파이썬 GUI)

이 프로젝트 정보

마우스나 트랙패드를 사용하여 컴퓨터의 커서를 추적하는 대신 조이스틱을 사용하여 동일한 응용 프로그램을 만들었습니다. 조이스틱은 커서를 임의의 방향(x 및 Y축)으로 이동할 수 있으며 내장된 조이스틱의 스위치로 클릭 기능도 수행합니다.

기본 사항-

조이스틱은 일반적으로 x 및 y 방향으로 정렬된 2개의 전위차계로 구성됩니다. arduino는 0에서 1023 사이의 범위에서 조이스틱에서 아날로그 값을 읽습니다. 따라서 조이스틱이 기본(중앙) 위치에 있을 때 아날로그 값도 500(0에서 1023 사이)에 가까워집니다.

arduino 스케치는 조이스틱이 중앙에서 멀어질 때 위치에 따라 -sensitivity에서 +sensitivity 값(기본 값은 10) 범위의 값을 인쇄하도록 프로그래밍되어 있습니다. 따라서 조이스틱을 한 극단 위치로 이동하면 arduino가 값 10을 인쇄하고 조이스틱을 다른 극단 위치로 이동하면 -10을 인쇄합니다.

x 및 y 방향에 대한 개별 값을 인쇄하려면 x 및 y 방향 값 사이에 ":"를 사용합니다. 예:

시리얼 모니터에 x, y 값 뒤에 조이스틱 버튼(SW)의 상태가 출력됩니다(1/0).

랩톱/컴퓨터가 값을 인식하려면 python의 pyautogui 모듈이 필요합니다.

파이썬 프로그래밍

(2020년 12월 11일 수정 - 라이브러리를 'pyautogui'에서 '마우스'로 변경)

사용자는 랩톱/컴퓨터에 python 3이 설치되어 있어야 합니다. 여기에서 다운로드할 수 있습니다.

설치 후 python 파일 위치의 경로를 복사합니다.

다음 단계는 명령 프롬프트에서 수행해야 합니다. 명령 프롬프트를 열고 다음을 입력하십시오-

1. cd

2. py –m pip 설치 –-upgrade pip

3. py –m pip 설치 마우스

4. py -m pip 설치 pyserial

마우스 모듈은 마우스 동작 및 pyserial을 수행하는 데 사용됩니다. 모듈은 arduino에서 데이터를 주고받는 데 사용됩니다. 필요한 모듈을 이미 설치했기 때문에 이것을 얻었습니다.

파이썬 프로그램은 아두이노에서 출력된 데이터를 읽고 x를 인식하도록 만들어졌습니다. 및 y 방향 값 및 스위치(SW)의 상태.

커서의 현재 좌표는 마우스 함수 mouse.get_position()에서 가져옵니다. 커서의 X 및 Y 좌표를 픽셀 형태로 제공합니다.

조이스틱을 움직이면 arduino에서 제공하는 아날로그 값과 현재 커서의 위치가 더해져 커서가 원하는 방향으로 이동합니다.

커서를 주어진 방향으로 이동하려면 mouse.move(X+x,Y+y) 함수 이 목적을 충족합니다.

여기서 X와 Y는 현재 커서의 위치이고 x와 y는 arduino에서 제공하는 증가/감소 위치입니다.

예:mouse.moveTo(100,150) 커서를 x축의 100픽셀, y축의 150픽셀로 이동합니다.

SW 상태에 따라 클릭 동작을 수행하려면 mouse.click(button="left") 사용됩니다.

최종 실행

arduino 스케치(아래 참조)를 arduino UNO에 업로드하고 회로도에 표시된 대로 조이스틱을 arduino 핀에 연결합니다.

마우스와 pyserial이 컴퓨터/노트북에 설치되어 있는지 확인한 후 다음 단계를 수행하십시오.

1. python 스케치를 메모장 파일에 복사합니다. arduino의 올바른 COM 포트를 지정하십시오. 장치 관리자에서 arduino 보드가 연결된 COM 포트를 얻을 수 있습니다. 변경 후 파일을 ".py"로 저장하십시오.

2. python의 IDLE(python GUI)를 열고 메모장 파일을 엽니다.

3. 모듈을 실행합니다.

그러면 그림 4의 화면으로 돌아갑니다.

오류가 표시되면 IDLE을 다시 시작하고 arduino의 올바른 COM 포트를 언급했는지 확인하세요.

오류가 없으면 조이스틱을 움직이면 커서의 움직임을 볼 수 있습니다.

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

코드

<울>
  • Arduino 코드
  • 파이썬 코드
  • Arduino 코드Arduino
    <사전>////////////////////////////////// 조이스틱으로 제어되는 마우스////// Shubham Santosh/ ///////////////////////////////////// 무효 설정() { Serial.begin(9600); 핀모드(9,입력); // SW 핀 digitalWrite(9,HIGH);}int prev_state=0; // switchvoid loop()의 이전 상태 { int z=0,xpos=0,ypos=0; int x=analogRead(A0); 정수 y=아날로그 읽기(A1); 정수 감도=10; // 편안함에 따라 감도를 조정할 수 있습니다. if(x>=550) // 위로 이동할 때 xpos=map(x,550,1023,0,sensitivity); if(x<=450) // 아래로 이동할 때 xpos=map(x,450,0,0,-sensitivity); if(y>=550) // 오른쪽으로 이동할 때 ypos=map(y,550,1023,0,sensitivity); if(y<=450) // 왼쪽으로 이동할 때 ypos=map(y,450,0,0,-sensitivity); int curr_state=디지털읽기(9); if(curr_state==1 &&prev_state==0) // SW를 눌렀을 때 z=1; 그렇지 않으면 z=0; if(xpos!=0 or ypos!=0 or z==1) // 조이스틱이 움직일 때만 출력 { Serial.print(xpos); // 데이터를 출력하고 ":"로 구분합니다. Serial.print(":"); Serial.print(ypos); Serial.print(":"); Serial.println(z); } prev_state=curr_state; 지연(10); // 정상 작동을 위해}
    파이썬 코드파이썬
    # 조이스틱 제어 마우스# 작성자:Shubham Santosh# 마지막 편집 2020-01-12 마우스 가져오기, 시스템 가져오기 시간 가져오기 serialmouse.FAILSAFE=FalseArduinoSerial=serial.Serial('com3',9600) #올바른 COM porttime.sleep(1 ) #1초 동안 1초 지연:data=str(ArduinoSerial.readline().decode('ascii')) #데이터 읽기 (x,y,z)=data.split(":") # x에 할당, y and z (X,Y)=mouse.get_position() #커서의 현재 위치 읽기 (x,y)=(int(x),int(y)) #int로 변환 mouse.move(X+x,Yy ) # z에 '1'이 있으면 커서를 원하는 위치로 이동:# SW 상태 읽기 mouse.click(button="left") # 왼쪽 버튼 클릭 

    회로도


    제조공정

    1. 컴퓨터 마우스
    2. 온도 제어 팬
    3. 라즈베리 파이 제어 아쿠아포닉스
    4. 동작 제어 AWS IoT 버튼
    5. Bluetooth를 통해 제어되는 Raspberry Pi Robot
    6. 라즈베리 파이를 사용하는 Wi-Fi 제어 로봇
    7. MajorTom:Alexa 음성 제어 ARDrone 2.0
    8. 조이스틱 제어 RC 자동차
    9. 조이스틱 게임
    10. Alloy 42 제어 팽창 합금