728x90
반응형
안녕하세요.
모빌리티키즈 입니다.
로봇을 조이스틱이나 모바일 애플리케이션으로 조종하는 것은 흔한 방법입니다. 하지만 저는 학생들에게 로봇 팔 동작을 제어하는 대안적인 방법을 탐구하도록 도전시키는 것을 좋아합니다. 예를 들어, 간단한 손 제스처를 사용하는 방법입니다. 제공된 동영상에서는 손을 왼쪽으로 흔들면 로봇 팔이 반시계 방향으로 회전하고, 오른쪽으로 흔들면 시계 방향으로 회전하는 것을 볼 수 있습니다.
로봇 팔을 간단한 손 제스처로 제어하기 위해서는 몇 가지 단계를 따라야 합니다.
센서 설치: 먼저, 손의 동작을 감지할 수 있는 적절한 센서를 로봇 팔에 설치해야 합니다. 이 센서는 손의 움직임을 감지하고 이를 로봇 팔의 제어 신호로 변환하는 역할을 합니다. 일반적으로 카메라 또는 근접 센서를 사용하여 손의 위치와 동작을 추적할 수 있습니다.
제스처 인식: 설치된 센서를 통해 손의 동작을 인식하는 알고리즘을 개발해야 합니다. 이 알고리즘은 손의 움직임을 분석하고, 특정 제스처에 해당하는 제어 신호를 생성합니다. 예를 들어, 손을 왼쪽으로 흔들면 반시계 방향 회전을 의미하는 신호를 생성하고, 오른쪽으로 흔들면 시계 방향 회전을 의미하는 신호를 생성할 수 있습니다.
로봇 팔 제어: 생성된 제어 신호를 로봇 팔에 전달하여 원하는 동작을 수행하도록 해야 합니다. 이를 위해서는 로봇 팔을 제어하는 소프트웨어 또는 하드웨어 시스템을 개발해야 합니다. 제어 신호를 이해하고 해당 동작을 수행할 수 있는 로봇 팔 컨트롤러를 구현해야 합니다.
이와 같은 방법으로 로봇 팔을 간단한 손 제스처로 제어하는 방법을 탐구하고 실험해볼 수 있습니다. 학생들에게 이러한 도전적인 프로젝트를 제안하여 창의적인 문제 해결과 로봇 제어에 대한 흥미를 유발할 수 있습니다.
조이스틱이나 모바일 애플리케이션으로 로봇을 제어하는 것은 일반적인 관행입니다. 그러나 저는 간단한 손 제스처를 사용하는 것과 같이 로봇 팔의 움직임을 제어하는 다른 방법을 탐구하여 학생들에게 도전하는 것을 좋아합니다. 제공된 영상에서 손을 좌우로 흔들면 로봇 팔이 각각 반시계 방향 또는 시계 방향으로 회전하는 것을 알 수 있다.
공급
- MeArm V1.0 키트(아크릴 부품)
- 서보 모터 MG90S x4
- 10cm 서보 남성-여성 연장 와이어
- micro:bit 2
- IO:bit V2.1 확장 보드 또는 5개의 서보에 4V 전원을 공급하는 SVG 커넥터를 제공하는 유사한 보드
- AA 1.5Vx2 배터리 팩 또는 마이크로 USB 케이블이 있는 보조 배터리
1단계: 디자인 아이디어
실제 로봇을 조종하는 것은 복잡한 작업일 수 있지만, 저는 학생들에게 micro:bit 를 이용해서 MeArm 로봇 팔을 프로그래밍하고 조종해 보도록 권하고 싶습니다. micro:bit 핀에 4개의 서보 모터를 연결하면, "서보 쓰기" 블록 명령을 사용하여 서보를 원하는 각도로 움직일 수 있습니다.
먼저 서보 모터를 제어하는 데 사용할 핀을 결정합니다.
- 베이스 아래의 서보 - P13에 연결
- 왼쪽의 서보 - P14에 연결
- 오른쪽의 서보 - P8에 연결
- 그립의 서보 - P12에 연결
로봇 팔의 이동성을 향상시키기 위해, 두 개의 micro:bit 사이의 무선 통신을 활용할 계획입니다. 이렇게 하면 로봇 팔을 무선으로 제어할 수 있습니다. 통신이 제대로 작동하려면, 두 micro:bit 를 같은 무선 통신 그룹으로 설정해야 합니다. 라디오 그룹에는 0에서 255 사이의 값을 할당할 수 있습니다. 이 프로젝트에서 라디오 그룹은 1로 설정됩니다.
로봇 팔을 더 재미있게 제어하기 위해 간단한 제스처를 사용하는 아이디어를 생각해 냈습니다. 예를 들어
- micro:bit 를 왼쪽으로 기울이면 로봇 팔이 시계 반대 방향으로 회전합니다.
- micro:bit 를 오른쪽으로 기울이면 로봇 팔이 시계 방향으로 회전합니다.
- micro:bit 를 앞쪽으로 기울이면 로봇 팔이 앞으로 움직입니다.
- micro:bit 를 뒤로 기울이면 로봇 팔이 뒤로 움직입니다.
- 버튼 B를 누르는 동안
- micro:bit 를 뒤쪽으로 기울이면 손잡이가 위로 올라갑니다.
- micro:bit 를 앞쪽으로 기울이면 손잡이가 아래로 움직입니다.
- 그립을 열거나 닫으려면 버튼 A를 누르기만 하면 됩니다.
micro:bit 는 내장된 가속도계 센서를 이용해서 방향의 변화, 특히 롤과 피치 각도의 변화를 감지합니다. 이 기능을 이용하면, micro:bit 보드가 기울어진 방향을 감지하는 프로그램을 만들 수 있습니다. 그런 다음, 다른 micro:bit 에 명령을 보내고, 사용자의 동작에 따라 서보 모터의 움직임을 제어할 수 있습니다.
이러한 명령의 형식은 간단합니다. 예를 들어, "베이스"와 서보가 회전하는 각도를 보내면 베이스에 위치한 서보 모터가 현재 각도에서 회전하고 더하기 및 빼기 숫자에 따라 회전 방향이 결정됩니다.
다음은 로봇 팔을 제어하기 위한 5가지 기본 명령입니다.
- 암의 베이스를 회전하려면 "Base +/- nnn" 명령을 사용합니다. 여기서 "nnn"은 서보를 이동하려는 각도를 나타냅니다. 양수 값은 시계 방향으로 회전하고 음수 값은 시계 반대 방향으로 회전합니다.
- 팔을 앞이나 뒤로 움직이려면 "Stretch +/- nnn" 명령을 사용합니다. 이렇게 하면 팔의 오른쪽에 있는 서보가 회전합니다.
- 그립을 위 또는 아래로 이동하려면 "레벨 +/- nnn" 명령을 사용합니다. 이렇게 하면 팔의 왼쪽에 있는 서보가 회전합니다.
- 마지막으로, 그립의 상태를 열기와 닫힘 사이에서 전환하려면 "그립 0" 명령을 사용하면 됩니다.
2단계: MeArm 로봇 팔 조립
이 튜토리얼에서는 MeArm 로봇 팔 키트를 예로 사용하겠습니다. MeArm 키트는 교육 목적 및 취미 프로젝트를 위해 설계된 작고 저렴한 로봇 팔입니다. 로봇 공학에 관심이 있는 학생, 교육자 및 제작자 사이에서 매우 인기가 있습니다. MeArm 키트의 조립 및 프로그래밍은 로봇 장치 제작 및 제어에 대한 실무 경험을 제공합니다. 키트 조립에 대한 단계별 지침을 제공하는 자습서를 웹에서 쉽게 찾을 수 있습니다.
3단계: IO:비트 확장 보드 준비
IO:bit V2.1 확장 보드는 모든 핀에 SVG 커넥터를 제공하여 서보 모터 케이블과 쉽게 연결할 수 있습니다. 그러나 서보 모터에는 5V 전원 공급 장치가 필요하기 때문에 일부 구성이 필요합니다. 단일 점퍼를 사용하여 모든 V-핀을 3.3V 또는 5V로 구성할 수 있습니다. 제대로 작동하려면 점퍼를 5V 쪽에 삽입해야 합니다.
4단계: 전선 연결
장치를 설정하려면 다음 단계를 따르세요.
- 그립에 위치한 서보는 가장 먼 위치에 있으므로 와이어 길이를 늘리기 위해 10cm Servo Male-Female Extension Wire가 필요합니다.
- 4개의 서보를 다음 핀에 연결합니다.
- 베이스 아래에 있는 서보는 P13에 연결해야 합니다.
- 왼쪽에 있는 서보는 P14에 연결해야 합니다.
- 오른쪽에 있는 서보는 P8에 연결해야 합니다.
- 그립에 있는 서보는 P12에 연결해야 합니다.
- IO:Bit를 베이스 끝에 부착합니다.
5 단계 : Micro:bit 프로그래밍
대부분의 학생들이 코딩을 더 쉽게 할 수 있도록 하려면 MakeCode를 사용하는 것이 좋습니다. 그러나 이 특별한 경우에는 MakeCode Multi(https://makecode.microbit.org/---multi#)라는 향상된 기능을 사용하는 것이 좋습니다. MakeCode Multi를 사용하면 두 개의 별도 창 덕분에 로봇과 원격 제어 측면에서 동시에 프로그램을 작성할 수 있습니다.
리모컨 측의 프로그램은 간단합니다. 가속도계 센서에서 롤 각도와 피치 각도를 모두 읽습니다. 방향이 30도 이상 또는 -30도 미만으로 변경되면 로봇 팔에 설계에 따라 움직이라는 명령을 보내도록 프로그램이 트리거됩니다.
로봇 팔 프로그램의 초기화 상태에서 초기 각도를 설정하고(변수에 저장) 4개의 서보 모터 모두에 시작 각도로 이동하도록 지시해야 합니다. 리모컨에서 명령을 받으면 명령이 어떤 서보 모터에 대한 것인지 해석합니다.
프로그램 가독성을 높이기 위해 서보의 새 각도를 계산하고 해당 각도로 서보를 이동하는 4개의 함수를 만들었습니다. 각 함수에서 "constrain" 블록을 사용하여 두 값 사이의 각도를 제한했습니다.
메모
통신하려면 두 프로그램 모두 라디오 그룹을 동일한 번호(0-255)로 설정해야 합니다.
7단계: 학생들을 놀라게 하는 트릭
2 이미지 더
학생들을 놀라게 하기 위해, 저는 수업에 특별한 트릭을 추가하기로 결정했습니다.
아시다시피, micro:bit 에는 자기장의 세기를 감지할 수 있는 자력계 센서가 있습니다. 이 센서는 micro:bit 보드의 뒷면에 있습니다 (그림과 같이). 새끼 손가락에 네오디뮴 자석을 달았기 때문에 손을 감았을 때 센서가 강한 자기력을 감지했습니다.
몇 가지 실험 끝에 센서가 네오디뮴 자석에 접근했을 때 300uT(마이크로 테슬라) 이상의 값을 보고한다는 것을 발견했습니다. 버튼 B를 눌렀는지 확인하는 대신 높은 자기력을 감지하도록 프로그램을 수정했습니다. 이렇게 하면 손을 감았을 때 그립을 위아래로 움직일 수 있었습니다. 그리고 손을 열었을 때 로봇 팔을 제어하여 앞뒤로 움직일 수 있었습니다.
손목 밴드를 사용하여 micro:bit 를 손바닥에 단단히 부착하고, 고무 밴드를 사용하여 배터리 팩을 손목에 고정합니다. 네오디뮴을 감추기 위해 나는 새끼손가락에 붕대를 감았다. 그게 내 비결이야!
8단계: 학생을 위한 숙제
micro:bit 를 손바닥에 부착하여 A 버튼을 눌러 로봇의 손잡이를 열거나 닫는 것이 어렵습니다. 그러나 학생들이 시도해 보았으면 하는 몇 가지 대안이 있습니다.
- 첫 번째 방법은 외부 버튼을 P5 및 GND에 연결하는 것입니다. 즉, 외부 버튼은 다른 버튼 A로 작동하며 프로그램을 수정할 필요가 없습니다.
- 또 다른 방법은 두 개의 전선을 P1 및 GND에 연결하고 물리적 스위치를 사용하는 대신 터치 감지 스위치를 만드는 것입니다. 물론 이 접근 방식에는 프로그램에서 몇 가지 수정이 필요합니다.
728x90
반응형
'로봇프로젝트' 카테고리의 다른 글
3D 프린터로 제작된 로봇 - Brainy Botic - a 3D Printed Robot Controlled by an Arduino Nano (0) | 2023.11.29 |
---|---|
파란 로봇 개미 - Blue Robot Ant (1) | 2023.11.27 |
강력한 토크를 가진 태양열 자동차 만드는 간단한 방법 - How to Make Solar Powered Car With Powerful Torque in a Very Easy Way (0) | 2023.11.24 |
LoCost 로봇을 위한 휴대용 로봇 경기장 (2) | 2023.11.22 |
Arduino로 나만의 데스크탑 애완 동물 로봇 만들기- Build Your Own Desktop Pet Robot With Arduino (1) | 2023.11.22 |