저는 RC 컨트롤러를 최소 6채널 이상 되는 녀석으로 바꿀 예정입니다. 지금 사용중인 건(gun)형태의 컨트롤러는 딱 테스트용이라서 테스트 이후 놓아줄 예정입니다... 따라서 위 그림과 같은 전형적인 패드(pad)형 RC 컨트롤러를 예로 생각해 봤습니다. 정리를 해보자 조종 신호 수신 머리로는 대~충 이해가 가지만 막상 코드로 표현하려고 하니 순서가 뒤죽박죽 되더라구요. 먼저 제가 가공할 신호부터 정리 해봤습니다. 기본적으로 Rudder와 Throttle, 이렇게 두 가지 조작이 이루어집니다. 각각의 조작 스틱은 1개의 채널에 할당되어 무선으로 리시버에 전달되며 그 전달된 값의 최대, 최소, 중간값은 이전의 포스팅에서 이미 관찰했었죠. 2021/02/13 - [로봇] - [아두이노] Differentia..
이전까지의 포스팅에서 모터의 회전 방향, 그리고 데드존까지 테스트 해봤습니다. 바로 차동 구동 알고리즘으로 들어갈까 하여 구상을 해보니 하나 걸리는게 있어서 작업을 해놓고 넘어가려고 합니다. 굳이? 지금 구상한 것들을 간단하게(귀찮으니까) 그려봤습니다. 평균 함수는 솔직히 마무리 단계에서 사용을 하게 될지 잘 모르겠습니다. 일단 평균 함수를 사용하면 연산이 느려지는데, 모터의 가동 범위가 줄었을 뿐더러 "과연 필터링을 하지 않은 값이 그렇게 영향을 미칠까?" 라는 생각도 들기 때문입니다. 믹서의 알고리즘 양단에 있는 스케일링 함수는 어쩌면 최대한 중복을 피해서 사용하게 될 것 같습니다. 느려지기도 하고 굳이 여러번 할 필요가 없으니까요. 그런데 어찌됐던 반드시 빠지지 않을 부분이 있습니다. 바로 알고리즘..
데드존(Deadzone) 모터에서 데드존, 특히 기어 모터에서 데드존(deadzone)은 사전에 테스트를 통해 알아두어야 합니다. 주변에서 쉽게 찾아볼 수 있는 예로 요새 어디서든 쉽게 찾아볼 수 있는 전동 킥보드가 있습니다. 저도 전동 킥보드를 거의 4년째 타고 다니고 있는데요, 저는 앞/뒤 휠이 모두 굴러가는 듀얼 BLDC 모터로 각각 1,000W의 힘을 갖고 있습니다. 모터의 와트가 높고, 듀얼 모터이기 때문에 힘이 매우 좋습니다. 약 150만원에 주고 구매했습니다. 하지만 30~40만원 대 저가형 모델의 경우 대부분 모터가 1개만 장착되고, 그나마도 매우 힘이 약한 350~500W 정도의 모터를 사용합니다. 이러한 제품의 경우 탑승자의 몸무게가 많이 나갈 경우, 경사로를 주행해야 하는 경우 등 환..
DC 모터에 대해.. 개념 DC 모터에 대해 간단하게 짚고 넘어가기 위해 구글링을 하다가 괜찮은 링크가 있어서 띄웁니다. www.devicemart.co.kr/goods_process/get_html_to_string? DC MOTOR DC Motor [디바어스마트 바로가기] 작성자: 유은재 (CJ) 작성일: 2018.9.27 1. DC 모터 개요 DC(Direct Current, 직류)모터는 브러시의 유/무에 따라서 일반적으로 Brushed DC모터와 Brushless DC (BLDC)모터로 구분할 www.devicemart.co.kr 위는 DC 모터에 대한 '기본' 개념이고, 기어(감속) 모터, BLDC 모터, 스텝 모터, 서보 모터, 액추에이터 등등 다양한 종류의 DC 모터가 있습니다. 그리고 각 ..
스케일 (scale) '스케일'이라는 단어를 처음 접하는 사람들에게는 조금 생소할 수 있습니다. 예를 들어 60분을 기준으로 하였을 때, 46분은 0~60분에 대하여 몇 %일까요? (46 / 60) * 100 = 약 77% 입니다. 이렇게 1차 함수로 이해하시면 편합니다. 이를 좀 더 프로그램을 짠다는 입장에서 생각해보면 아래와 같습니다. 함수를 제작할 때 정의해야 할 매개 변수(parameter)로 5개의 매개 변수가 나올 수 있습니다. in_min : 입력 값의 최소값 in_max : 입력 값의 최대값 out_min : 출력 값의 최소값 out_max : 출력 값의 최대값 in_val : 스케일링 할 입력값 이제 위의 매개 변수를 가지고 함수를 만들면 되는데, 놀랍게도 아두이노에는 이미 간단한 스케일..
평균 (average) 이전의 포스팅에서 RC 송신기에서 신호를 만들어내는 방식에 대해 잠깐 언급했었습니다. 2021/02/11 - [로봇] - [아두이노] Differential Wheeled RC카 만들기 #1-1 "RC 수신기 신호 읽어들이기" [아두이노] Differential Wheeled RC카 만들기 #1-1 "RC 수신기 신호 읽어들이기" 구상 및 계획 RC카 하드웨어를 만들었으니 이제 제어 프로그램을 준비할겁니다. 프로그램을 처음 만들어보는 사람은 아마 가장 처음에 무엇을 어떻게 시작해야 할지 헷갈릴수도 있습니다. 솔직 conceptbug.tistory.com 가변 저항과 스위치의 위치를 읽어들여 신호를 발생시킵니다. RC 수신기도 송신기로부터 들어오는 신호를 수신측 센서에서 감지합니다...
구상 및 계획 RC카 하드웨어를 만들었으니 이제 제어 프로그램을 준비할겁니다. 프로그램을 처음 만들어보는 사람은 아마 가장 처음에 무엇을 어떻게 시작해야 할지 헷갈릴수도 있습니다. 솔직히 케바케라고 생각하는데 저는신호(signal)를 가장 먼저 생각 해봤습니다. 먼저 저의 목표는"내가 조종값을 넣으면 그 값대로 RC카가 움직였으면 좋겠다."정도 일겁니다 . 이를 좀더 자세하게 풀어보자면 아래와 같겠네요. 제가 조종한 RC 송신기는 바인딩 되어있는 RC 수신기에게 명령값을 전달합니다. RC 수신기는 받은 명령 신호를 내보내는 출력핀이 있고, 그 핀을 통해 아두이노로 신호를 읽어 들일겁니다. 아두이노로 들어온 신호(PWM)를 적절하게 가공합니다. 입력(input) 신호는 2가지 입니다: Steering과 T..
1. 아두이노(Arduino) ko.wikipedia.org/wiki/아두이노 아두이노 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아두이노(이탈리아어: Arduino 아르두이노[*])는 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드(상품)와 관련 개발 도구 및 환경을 말한다. ko.wikipedia.org (이건 덤) en.wikipedia.org/wiki/Differential_wheeled_robot Differential wheeled robot - Wikipedia A three-wheeled differentially steered robot A differential wheeled robot is a mobile robot whose movemen..