이전에 작성했던 아두이노 레오나르도 + 파이썬 이용한 HW 절대 좌표 이동 구현..
오픈소스로 대부분 공개하는 제 블로그에서 판매중인 몇 안되는 프로그램(소스코드) 이기도 합니다.
당연히 구매하시는 분들 입장으로 생각해야 하기 때문에.. 잘 작동하지 않으면 안되겠죠.
구매를 원하시는 분이 있어서 소스코드를 대대적으로 좀 손봤습니다.
아두이노 레오나르도에서 마우스 제어용으로 제공하는 함수(==API) 인 Mouse.move(x, y) 의 경우 단순히 현재 마우스 위치에서 +x, +y 축 위치로 마우스를 옮기는 함수입니다. 게다가 Mouse.move() 가 인자로 받는 x, y의 경우 signed char 입니다.
signed char는 C언어에서 사용하던 char 과 같은 자료형(Data-Type) 입니다.
char의 범위는 대부분 아시겠지만 1바이트 크기라서 -128 ~ 127 입니다 -.-
결론적으로 아두이노 레오나르도의 Mouse.move() 를 이용해서 마우스를 제어하는 경우 최대 마우스 이동 범위가 양수는 127, 음수는 -128에 제한된다는 뜻입니다.
HW 절대 좌표를 구현하기 위해 가장 첫 장벽이기도 합니다. 왜냐면 화면 크기는 많이들 사용하시는 FHD를 기준으로 (1920, 1080) 인데 꼴랑 127 스탭씩 이동해봐야 뭐 어쩌겠나요..?
일단은 제 방식대로 구현한 절대 좌표의 경우 Mouse.move() 의 127 스탭 제한을 해제하는게 먼저 였습니다. 사실 이 제한은 뚫기가 그렇게 어렵지 않습니다. 예를 들어서 1920, 1080 으로 이동해야 하는 경우 그냥 for문을 돌려서 127 스탭씩 여러번 이동하고 남은 부분만 추가적으로 이동해주면 됩니다.
그래서 쉽게 쉽게 생각해서 그냥 127로 1920, 1080를 나눠서, 몫과 나머지를 구한다음에 그 스탭씩(몫만큼) x,y를 For문 반복을 통해 127만큼 여러번 이동시키고, 나머지 만큼 다시 마우스를 이동시키면 127칸씩 밖에 x,y를 이동시킬 수 없었던 제한을 넘어갈 수 있는거죠.
사실 제한을 넘긴다기 보다는 API를 여러번 호출해서 해결한다 정도가 적합한 거 같습니다.. 레오나르도 쪽에서 127 이상 움직일 수 있는 API를 제공하지 않는것도 아마 이유가 있을듯 합니다. 윈도우 API 이용시 마우스 HW 쪽에서 좌표를 임의로 옮길 수 있는게 127 스탭이 최대라던가..? 그런게 아닐까 싶네요. 아님 말고
어쨌던 저 mouseMove() 가 127 이상 x,y를 이동시키는 명령을 줘도 127 씩 여러번 호출해서 화면 크기를 제약 없이 움직일 수 있는 함수.. 인데 일단 어떤분이 잘 짜주셔서 커뮤니티에서 긁어와서 사용했습니다.
겉보기엔 잘 작동하는데 (0,0) 으로 이동시키고 (1919, 1079) 로 화면 끝 이동 명령을 주었더니 버그가 발생해서 잘 이동하지 않더라구요.
아마 x, y 를 한꺼번에 이동하고 나머지를 이동하는데 나머지 쪽에서 이동량이 부족한 듯 싶었습니다.
머리도 아프고.. 생각도 잘 안되고 해서 역시 우리의 코딩 친구 ChatGpt를 활용해봅시다.
솔직히 인간대 인간으로 설명을 잘해도 고쳐주기 어려운 코드들을, 얘는 개떡같이 설명해도 찰떡같이 알아듣고 코드를 잘 작동하게끔 고쳐줍니다.
코드 문제가 x, y를 한꺼번에 이동하는게 아니라 분리해서 이동하는게 문제라네요.
위 코드에선 x, y 한꺼번에 이동시키고 있는데..? 뭐 횡설 수설하는건 관심없고 코드만 잘 작동하면 됩니다.
일단 바뀐건 거의 없어보이고 마지막에 if문만 제거했네요.
뭔진 모르겠지만 AI 형님이 하란대로 코딩하고 다시 시리얼 통신 보내보니..?
진짜 잘된다 ㄷㄷ
왜 고쳐진진 사실 잘 모르겠습니다.
뭐 저같은 우민이 AI 형님의 두뇌를 따라갈리가 없죠 ㅠㅠ
어쨌던 ChatGpt 는 쓸때마다 경이로운 도구입니다.
진짜 못하는게 없네요. 수준만 높아지면 웬만한 코더들은 다 말라죽을 거 같습니다.
대부분의 프로그래머는 쓸모가 없어지고...
아.. AI 대학원을 들어가야하나?
저도 몇십년째 컴퓨터만 만지고 있는 사람이지만
20대인데도 세상의 변화에 적응하기가 점점 어려워지네요
나중에 밥그릇이 박살나지 않게 진로를 잘 정해봐야 할 거 같습니다..
'데이터 과학 > ChatGPT' 카테고리의 다른 글
[ChatGPT] AI는 과연 난독화를 풀 수 있을까? (0) | 2023.05.03 |
---|---|
[ChatGPT] 피들러 HTTP 요청 프로그래밍 코드로 변환해보기 (Python) (0) | 2023.04.30 |
[ChatGPT] 사용시 개꿀팁 4가지, 8가지 영상 (0) | 2023.03.11 |
[게임해도 100% 안도는 CPU를 100%로 갈궈보자!] Python 이용하여 다량의 mp4 파일 gif, webp 로 한꺼번에 변환하기 feat. ChatGPT (0) | 2023.03.03 |