전체 글29 아두이노 IDE에서 여러 소스 파일 사용 보통 아두이노 코딩을 할 때 하나의 소스파일에 몽땅 코딩을 하게 되는데 이때 코드량이 길어지면서 보기에 불편하며 관리하기도 어렵다. 그리고 모터, 센서 등 특정 모듈만을 위한 코드들을 분리하여 깔끔하게 관리하고 싶을 때가 있다. 또 외부에서 c나 c++로 작성되어 이미 사용하고 있는 소스파일을 가져와서 사용해야 할 때도 있다. 이럴 때는 비슷한 기능을 하는 함수들 혹은 특정 모듈을 하나의 소스 파일로 분리하면 여러모로 편리해진다. 어떻게 보면 다른 개발 툴에서 Project 개념에 해당하는 기능이 Arduino IDE에서는 Sketchbook이다. 아두이노 sketch들을 모아서 관리하기 때문에 이렇게 네이밍을 한 것으로 보인다. 이번 글에서는 아두이노 IDE에서 Sketchbook을 통해 여러 소스 파.. 2021. 3. 4. 메카넘 휠 차량 제작 - 하드웨어 이번 글에서는 메카넘 휠 차량의 몸체(섀시)와 전자 부품들로 구성된 하드웨어 부분을 제작해보려 한다. 바디 제작 차량의 바디는 thingiverse에 올라와 있는 이 차량 모델링을 선택하였는데 파츠 수도 적고 다용도로 활용할 수 있는 디자인이라 선택하였다. 그리고 심플하기도 하다. 또한 유튜브에 제작과정 영상도 올라와 있어 참고할 수 있다. 이 모델링에서 카메라 부분은 필요 없어 제외시켜도 된다. TT 모터 장착 시 출력물의 구멍에 맞지 않아 모터 축 부분과 아래쪽 나사 구멍을 넓히기 위해 일부분을 잘라내었다. TT 모터의 축과 구매한 메카넘 휠의 축을 연결하는 부품이 없어 직접 Fusion 360으로 연결 브릿지를 모델링하고 3D 프린터로 출력하여 사용하였다. 필요한 부품들 대부분의 부품들은 디바이스 .. 2021. 2. 25. 메카넘 휠 차량의 동작 원리 - 2 조향 장치가 따로 없는 메카넘 휠 차량의 자세와 속도는 4개 휠의 회전 각속도를 통해 제어된다. 그리고 우리는 차량을 어떠한 자세와 속도로 움직이길 원한다. 차량의 움직임과 각 휠의 회전 각속도를 연결하는 것이 이번 글의 목적이다. 이를 위해서는 차량의 이동 속도를 입력으로 받아서 최종적으로 각 휠의 회전 각속도를 계산해내야 한다. 이 과정을 4개의 단계로 나누어 살펴보자. 1. 차량의 움직임 분해 차량 움직임은 섀시 중심에서의 병진 이동 속도(\(\overrightarrow{v_t}\))와 Yaw 회전 각속도(\(\overrightarrow{w}\))로 나누어 생각해 볼 수 있다. 이들의 성분은 아래와 같으며 Fig 1에 벡터로 표현되어 있다. 여기서 아래 첨자로 사용된 t는 병진 운동(Translat.. 2021. 2. 25. 메카넘 휠 차량의 동작 원리 - 1 최근 DJI에서 로보 마스터라는 교육용🙄 장난감을 출시했다. 로보 마스터에는 메카넘 휠이 달려있어 자유자재로 이동을 할 수 있다. 이렇듯 메카넘 휠이 장착된 차량을 보고 있으면 신기하기도 하고 어떻게 동작하는지도 궁금하기도 하다. 메카넘 휠 차량의 동작 원리를 간단히 살펴보자. 메카넘 휠 차량의 구성 메카넘 휠 차량은 몸체에 해당하는 섀시(chassis) 부분이 있고 이 섀시의 중심을 기준으로 상하좌우 대칭으로 4개의 메카넘 휠이 장착되어있다. 각 휠들의 중심은 차량의 중심에서 반지름이 r인 원 위에 위치한다. 즉, 차량 중심에서 각 휠들의 직선거리는 모두 동일하다. 또한 각 메카넘 휠에는 여러 개의 롤러들이 45° 각도로 기울어진 방향으로 휠 테두리를 돌아가며 장착되어있다. 아래 그림 1은 메카넘 휠 .. 2021. 2. 25. 스칼렛 오디오 인터페이스(Scarlett 6i6) 노브 교체 오랜만에 오디오 인터페이스를 사용해보려고 Scarlett 6i6의 볼륨 노브를 만지는데, 헉! 노브가 찐득찐득하다. 너무 오래 사용을 안 해서 노브의 플라스틱이 산화되어 녹아내린 모양이다. 지문 자국까지 남을 정도로 도저히 사용할 수 없는 상태다. 그래서 노브를 새로 구매하기로 하고 알리에 검색해보니 고급스러운 노브를 찾을 수가 없었다. 그러던 중 품질이 좋은 노브를 판매하는 국내 전자제품 쇼핑몰 Elecloud를 발견하고 여기에서 반달형(D-Type) 노브인 Re'an Control Knob F311을 오렌지 색으로 구매하였다. 주문한 노브가 도착하여 살펴보니 D-Type에 맞게 하려면 Flexi-Fit이라는 삽입물을 내부에 끼우고 사용해야 한다. 오디오 인터페이스에서 기존 노브를 제거하고 Flexi-.. 2021. 2. 25. Android - Navigation Component 소개 Android Navigation은 Fragment들 사이를 요리조리 쉽게 왔다 갔다 할 수 있도록 도와준다. 기존에는 Fragment들 사이에 argument를 전달하려면 번거로운 작업이었는데 이것도 쉽게 처리해준다. 또한 GUI 툴까지 제공하니 보다 손쉽게 이 모든 것을 다룰 수 있다. Navigation Component가 Google I/O '18에서 소개되었으니 벌써 3년이나 된 기술이다. 이 포스팅에서는 Android Navigation을 프로젝트에 어떻게 적용하는지 알아본다. Android Navigation에 대한 자세한 정보는 안드로이드 가이드를 참조하면 된다. 이번 포스팅에서는 가이드에서 Getting started 섹션을 많이 참고하였다. Navigation Component Navi.. 2021. 2. 24. 이전 1 2 3 4 5 다음