LEGO Mindstorms Education EV3 - 디자이너 리뷰. 레고의 세계인 EduCube의 최신 뉴스를 읽어보세요. 레고 마인드스톰 EV3. 토이 스카이넷. 홈 추가 LEGO ev3 모듈을 추가하는 방법

새로운 디자이너에 대해 알고 싶은 질문이 있는 경우(특정 기능이 어떻게 작동하는지, 센서 또는 모터를 사용하여 실험 수행) 저희에게 편지를 보내주시면 귀하의 제안을 시험해 보겠습니다. 이를 통해 EV3가 판매되기 전에도 EV3에 대해 더 많은 정보를 얻을 수 있습니다.

이제 모든 것은 리뷰로 시작됩니다 소프트웨어 EV3 블록(EV3 펌웨어).

새 유닛의 특징 중 하나는 켜고 끄는 데 시간이 오래 걸린다는 점이다. 시간적 측면에서 프로세스는 포함과 유사합니다. 휴대폰또는 홈 라우터, 즉 20~30초. 전원을 켜면 다음 메뉴가 나타납니다.


보시다시피 NXT 블록에 비해 많은 것이 변경되었습니다. 글꼴 품질이 향상되고 더 많이 그려졌습니다. 그래픽 요소, 창 인터페이스. 우선, 이는 이제 화면 크기가 늘어났기 때문입니다. NXT 블록처럼 100 x 64 픽셀이 아닌 178 x 128 픽셀이 되었습니다. 통합 버튼과 스크롤 막대가 있는 창 인터페이스의 존재를 기반으로 외부 장치와 같은 장치가 있다고 가정할 수 있습니다. 터치패드이제는 더 이해가 될 것입니다.


첫 번째 창에서는 블록에 로드된 프로그램은 물론 블록에 직접 생성된 프로그램도 호출할 수 있습니다. 저것들. 이제 프로그램을 시작하려면 NXT 블록보다 더 적은 수의 클릭을 수행해야 합니다.

로드된 프로그램을 통한 탐색과 두 번째 및 후속 화면(메뉴 항목)은 현재 4개의 제어 버튼을 사용하여 수행됩니다.


두 번째 화면 - 블록의 파일 시스템 개체를 탐색할 수 있습니다. 파일 시스템이제 전통적인 계층 구조(파일 및 디렉터리)를 지원합니다.


세 번째 화면에는 블록으로 다양한 작업을 수행할 수 있는 애플리케이션인 하위 메뉴가 포함되어 있습니다.


안에 현재 버전이러한 응용 프로그램에는 네 가지 소프트웨어 블록이 있습니다.

  • 센서 보기
  • 모터 제어
  • 리모콘
  • 블록 프로그래밍
네번째 화면은 환경설정입니다. 게다가 기본 설정: 사운드 레벨, 비활성 타이머, BlueTooth 및 WiFi 켜기 등을 통해 장치 소프트웨어에 대한 정보를 찾을 수 있습니다.



특정 메뉴 항목/응용 프로그램을 선택하려면 키보드의 가운데 버튼을 누르세요. 메뉴 항목이나 응용 프로그램을 종료하려면 이제 메인 버튼과 별도로 화면 왼쪽에 있는 "종료" 버튼을 눌러야 합니다.

이제 세 번째 화면으로 돌아가서 애플리케이션에 대해 알아가기 시작해야 합니다. 따라서 응용 프로그램은 "뷰 센서"(포트 뷰)입니다.

NXT 블록의 유사한 모드와 달리 이제 블록에 연결된 8개 장치에 대한 정보를 한 번에 모두 볼 수 있습니다. 게다가 선언된 기능 자동 감지센서를 사용하면 어떤 센서가 어디에 연결되어 있는지 수동으로 표시하지 않아도 됩니다.

상단에는 모터 엔코더의 정보가 표시되고 하단에는 센서의 정보가 표시됩니다. 화면 중앙 - 정보 특정 장치(V 특정 포트), 키보드의 제어 버튼을 눌러 선택할 수 있습니다. 정보에는 센서의 그래픽 표현, 이름 및 현재 판독값이 포함됩니다.

터치 센서:


자이로 센서:


반사광 모드의 컬러 센서:


초음파 거리 센서:

그런데 여기서는 센서가 이제 밀리미터 단위의 정확도로 거리를 측정할 수 있다고 주장하며 최소 측정 거리는 이제 3cm임을 알 수 있습니다.

왼쪽 모터 인코더의 정보입니다.


다음 응용 분야는 모터 제어입니다. 기본적으로 버튼을 사용하여 모터를 회전시킬 수 있습니다. 중앙 버튼을 사용하여 회전할 모터를 선택해야 합니다. 그런 다음 위아래 또는 왼쪽 및 오른쪽 버튼 쌍을 사용하여 특정 모터를 회전시킵니다.


EV3 키트 교육용 버전의 표준 제공에는 적외선 거리 센서와 적외선 비콘이 포함되어 있지 않기 때문에 세 번째 애플리케이션을 시도하는 것은 불가능했습니다. 하지만 분명히 이 화면에서는 적외선 비콘으로 제어할 모터를 구성할 수 있습니다.


물론 가장 흥미로운 응용블록 프로그래밍 중입니다. 크게 재설계되었습니다. 이제 프로그램에는 최대 16개의 프로그램 요소(블록)가 포함될 수 있으며 생성된 프로그램을 저장할 수 있고 수정을 위해 다시 열 수도 있습니다.


프로그램 작성 응용 프로그램이 열리면 빈 실행 루프가 표시되고(한 번의 반복만 실행됨) 첫 번째 블록을 삽입하라는 제안이 표시됩니다. "위로" 버튼을 사용하여 블록을 삽입할 수 있습니다.


나타나는 블록 선택 창에는 현재 블록을 삭제하는 동작을 포함하여 17개의 블록(6개 동작 블록, 11개 대기 블록)을 사용할 수 있습니다.



선택 순서와 블록 순서는 프로그래머가 결정합니다. 이전에 NXT 블록의 경우처럼 각 작업 블록 뒤에 대기 블록이 있어야 한다는 의미는 아닙니다.

프로그램에서 선택한 블록은 다음과 같습니다.


블록의 동작은 가운데 버튼을 눌러 지정할 수 있습니다. 예를 들어 이 블록의 경우 로봇 회전 각도와 방향을 변경하거나 모터를 완전히 중지할 수 있습니다(예: 이전 대기 블록 이후).


"커서"를 왼쪽이나 오른쪽으로 이동하면 다른 블록을 삽입할 수 있습니다.


예를 들어 거리 센서의 이벤트 대기 블록은 다음과 같습니다.


그리고 동작을 변경합니다(거리가 60cm 이상이면 이벤트가 발생합니다).


블록은 기존 블록 사이에 삽입하거나 프로그램 시작 부분에도 삽입할 수 있습니다.


다음은 대기 블록의 추가 예입니다.

시간 대기 블록(정확히 대기 시간을 설정할 수 있음):


또는 자이로스코프 센서의 이벤트를 기다리는 블록입니다(센서의 회전 각도를 설정할 수 있음).


센서 자동 감지 기능은 장치의 프로그래밍 프로세스를 단순화한다는 점에 다시 한 번 주목해야 합니다. 더 이상 특정 센서를 특정 포트에 연결해야 한다는 규칙을 따를 필요가 없습니다.

프로그램을 여러 번 실행해야 하는 경우 제어 루프의 반복 횟수를 변경할 수 있습니다.


프로그램은 첫 번째 블록을 선택하여 시작됩니다.


프로그램을 시작하면 화면에 다음과 같은 내용이 표시됩니다.


프로그램을 저장할 수 있으며 나중에 검색할 수 있도록 파일 이름을 지정할 수 있습니다.



키보드를 사용하여 문자를 선택합니다(안녕하세요, 터치패드!)

저장되지 않은 프로그램을 닫으려고 하면 다음과 같은 명확하지 않은 메시지가 표시되고 불쾌한 소리가 들립니다.


나중에 생성된 프로그램을 열고 변경할 수 있습니다.


당연히 해당 블록에 생성된 프로그램만 열립니다.

결론적으로 블록을 끄는 모습은 다음과 같습니다.


USB 연결

레고 마인드스톰 EV3는 USB 연결을 통해 PC나 다른 EV3에 연결할 수 있습니다. 연결 속도 및 안정성 이 경우블루투스를 포함한 다른 어떤 방법보다 낫습니다.

LEGO Mindstorms EV3에는 두 개의 USB 포트가 있습니다.

데이지 체인 모드에서 LEGO EV3와 다른 LEGO EV3 블록 간의 통신.

데이지 체인 모드는 두 개 이상의 LEGO EV3 블록을 연결하는 데 사용됩니다.

이 모드:

  • 둘 이상의 LEGO Mindstorms EV3를 연결하도록 설계되었습니다.
  • 연결을 위한 역할을 한다 센서, 모터 및 기타 장치;
  • 여러 LEGO Mindstorms EV3(최대 4개) 간의 통신을 허용하며 최대 16개의 외부 포트와 동일한 수의 내부 포트를 제공합니다.
  • 주요 LEGO Mindstorms EV3에서 전체 체인을 제어할 수 있습니다.
  • 활성 상태에서는 작동할 수 없습니다. Wi-Fi 연결아니면 블루투스.

데이지 체인 연결 모드를 활성화하려면 프로젝트 설정 창으로 이동하여 확인란을 선택하세요.

이 모드를 선택하면 모든 모터에 대해 사용할 EV3 블록과 필요한 센서를 선택할 수 있습니다.

표에는 EV3 블록 사용 옵션이 나와 있습니다.

행동

미디엄 모터

큰 모터

조종

독립경영

자이로스코프

적외선

초음파

모터 회전

온도

에너지 미터

소리

블루투스를 통한 연결

Bluetooth를 사용하면 LEGO Mindstorms EV3를 PC, 기타 LEGO Mindstorms EV3, 스마트폰 및 기타 Bluetooth 장치에 연결할 수 있습니다. Bluetooth를 통한 통신 범위는 최대 25m입니다.

하나의 LEGO Mindstorms EV3에 최대 7개의 블록을 연결할 수 있습니다. EV3 마스터 브릭을 사용하면 각 EV3 슬레이브에 메시지를 보내고 받을 수 있습니다. EV3 슬레이브는 EV3 마스터 브릭에만 메시지를 보낼 수 있으며 서로에게는 보낼 수 없습니다.

Bluetooth를 통한 EV3 연결 순서

Bluetooth를 통해 두 개 이상의 EV3 블록을 서로 연결하려면 다음 단계를 수행해야 합니다.

1. 탭을 엽니다 설정.

2. 선택 블루투스그리고 가운데 버튼을 누르세요.

3. 우리는 체크박스 시계블루투스.

4. 블루투스 표시("<") виден на верхней левой стороне.

5. 필요한 수의 EV3 브릭에 대해 위 절차를 수행합니다.

6. 연결 탭으로 이동합니다.

7. 검색 버튼을 클릭합니다:

8. 연결하려는(또는 연결하려는) EV3를 선택하고 가운데 버튼을 누릅니다.

9. 첫 번째와 두 번째 블록을 액세스 키로 연결합니다.

모든 작업을 올바르게 수행하면 아이콘이 왼쪽 상단에 나타납니다.<>", 두 개 이상의 다른 EV3 블록이 있는 경우 동일한 방법으로 연결합니다.

LEGO EV3를 끄면 연결이 끊어지고 모든 단계를 반복해야 합니다.

중요: 각 블록에는 자체 프로그램이 작성되어야 합니다.

예제 프로그램:

첫 번째 블록: 터치 센서를 누르면 첫 번째 EV3 블록이 3초 지연 후 두 번째 블록(메인 블록)에 텍스트를 전송합니다.

블록 2의 예제 프로그램:

두 번째 블록은 첫 번째 블록에서 텍스트를 받기를 기다리고, 일단 텍스트를 받으면 10초 동안 단어(이 예에서는 "Hello"라는 단어)를 표시합니다(슬레이브 블록).

Wi-Fi를 통해 연결

Wi-Fi 동글을 EV3의 USB 포트에 연결하면 더 먼 거리의 통신이 가능합니다.

Wi-Fi를 사용하려면 USB 커넥터(Wi-Fi 어댑터(Netgear N150 무선 어댑터(WNA1100))를 사용하여 EV3 블록에 특수 모듈을 설치하거나 Wi-Fi 동글을 연결할 수 있습니다.

우리처럼 표준 EV3 센서의 기능이 부족하거나 로봇의 센서용 포트 4개가 충분하지 않거나 로봇에 이국적인 주변 장치를 연결하려는 경우 이 기사가 적합합니다. 저를 믿으십시오. EV3용 홈메이드 센서는 보기보다 쉽습니다. 오래된 라디오의 "볼륨 손잡이"나 토양 수분 센서로 화분 땅에 박힌 못 두 개가 실험에 적합합니다.

놀랍게도 각 EV3 센서 포트에는 주로 NXT 및 타사 센서와의 호환성을 위해 다양한 프로토콜이 숨겨져 있습니다. EV3 케이블의 작동 방식을 살펴보겠습니다.


이상한데 빨간색 선은 접지(GND)이고 녹색 선은 4.3V 전원 공급 장치의 플러스입니다. 파란색 선은 I2C 버스용 SDA와 UART 프로토콜용 TX입니다. 또한 파란색 선은 EV3용 아날로그-디지털 변환기의 입력입니다. 노란색 선은 I2C 버스용 SCL과 UART 프로토콜용 RX입니다. 흰색 선은 NXT 센서용 아날로그-디지털 변환기의 입력입니다. 검정색 - 디지털 입력, NXT와 호환되는 센서용 - GND를 복제합니다. 쉽지 않죠? 순서대로 가자.

EV3 아날로그 입력

각 센서 포트에는 아날로그-디지털 변환기 채널이 있습니다. 터치 센서(버튼), 반사광 및 주변광 모드의 NXT 광 센서 및 컬러 센서, NXT 사운드 센서 및 NXT 온도계와 같은 센서에 사용됩니다.

다이어그램에 따라 연결된 910옴의 저항은 컨트롤러에 이 포트를 아날로그 입력 모드로 전환해야 함을 알려줍니다. 이 모드에서는 Arduino 등의 모든 아날로그 센서를 EV3에 연결할 수 있습니다. 이러한 센서의 교환 속도는 초당 수천 개의 폴에 도달할 수 있으며 이는 가장 빠른 유형의 센서입니다.

광 센서

온도계

토양 수분 센서

마이크, 버튼, IR 거리 측정기 및 기타 다양한 일반 센서를 연결할 수도 있습니다. 4.3V 전원이 센서에 충분하지 않은 경우 EV3 컨트롤러 측면에 있는 USB 포트에서 5V로 전원을 공급할 수 있습니다.

위에서 언급한 "볼륨 노브"(가변 저항기 또는 전위차계라고도 함)는 아날로그 센서의 훌륭한 예입니다. 다음과 같이 연결할 수 있습니다.

표준 LEGO 프로그래밍 환경에서 이러한 센서의 값을 읽으려면 파란색 RAW 블록을 사용해야 합니다.

I2C 프로토콜

이는 디지털 프로토콜로, 예를 들어 NXT 초음파 센서와 IR Seeker 또는 Color Sensor V2와 같은 많은 Hitechnic 센서가 작동합니다. Arduino와 같은 다른 플랫폼의 경우 i2c 센서가 많이 있으므로 연결할 수도 있습니다. 계획은 다음과 같습니다.

LEGO 그룹에서는 82옴의 저항을 권장하지만 다양한 출처에서는 43옴 이하를 언급합니다. 사실, 우리는 이러한 저항을 완전히 버리려고 노력했으며 적어도 "테이블 위에서" 모든 것이 작동했습니다. 다양한 종류의 간섭 조건에서 작동하는 실제 로봇에서 SCL 및 SDA 라인은 위 다이어그램에 표시된 것처럼 저항을 통해 전원 공급 장치에 연결되어야 합니다. EV3의 i2c 작동 속도는 약 10,000kbps로 매우 낮습니다. 이것이 바로 모두가 좋아하는 Hitechnic Color Sensor V2가 너무 느린 이유입니다 :)

불행하게도 LEGO의 표준 EV3-G에는 i2c 센서와의 양방향 통신을 위한 완전한 블록이 없지만 RobotC, LeJOS 또는 EV3 Basic과 같은 타사 프로그래밍 환경을 사용하면 거의 모든 i2c 센서와 상호 작용할 수 있습니다. .

i2c 프로토콜을 사용하여 작동하는 EV3의 기능은 여러 센서를 하나의 포트에 연결할 수 있는 흥미로운 가능성을 열어줍니다. I2C 프로토콜을 사용하면 하나의 버스에 최대 127개의 슬레이브 장치를 연결할 수 있습니다. 상상할 수 있니? 각 EV3 포트당 127개의 센서 :) 또한 여러 개의 i2c 센서가 하나의 장치에 결합되는 경우가 많습니다. 예를 들어 아래 사진에는 10 in 1 센서가 있습니다(나침반, 자이로스코프, 가속도계, 기압계 등 포함).

UART

터치 센서를 제외한 거의 모든 표준 비 EV3 센서는 UART 프로토콜을 사용하여 작동하므로 NXT 컨트롤러와 호환되지 않습니다. NXT 컨트롤러는 동일한 커넥터가 있지만 센서에 UART가 구현되어 있지 않습니다. 포트. 다이어그램을 살펴보세요. 이전 사례보다 조금 더 간단합니다.

UART 센서는 작동 속도를 EV3와 자동으로 일치시킵니다. 처음에는 2400kbit/s의 속도로 연결하고 작동 모드와 환율에 동의한 다음 속도를 높입니다. 다양한 센서의 일반적인 환율은 38400 및 115200kbit/s입니다.
LEGO는 UART 센서에 다소 복잡한 프로토콜을 구현했기 때문에 원래 이 플랫폼용으로 의도되지 않았지만 호환되는 타사 센서가 없습니다. 그럼에도 불구하고 이 프로토콜은 "수제" 연결에 매우 편리합니다.
마이크로컨트롤러를 기반으로 한 센서.
유명한 LeJOS 개발자 Lawrie Griffiths가 작성한 EV3UARTEmulation이라는 Arduino용 멋진 라이브러리가 있습니다. 이 라이브러리를 사용하면 이 보드를 UART-LEGO 호환 센서로 사용할 수 있습니다. 그의 LeJOS News 블로그에는 이 라이브러리를 사용하여 가스 센서, IMU 센서 및 디지털 나침반을 연결한 예가 많이 있습니다.

아래 비디오는 수제 센서를 사용하는 예입니다. 원래 LEGO 거리 센서가 충분하지 않으므로 로봇에 직접 만든 센서를 사용합니다.


로봇의 임무는 녹색 셀에서 시작하여 미로(빨간색 셀)를 빠져나가는 길을 찾아 막다른 골목에 가지 않고 최단 경로로 시작점으로 돌아가는 것입니다.

이 기사에서는 RCML(로봇 제어 메타 언어)을 사용하여 후속 소프트웨어와 수동 제어가 포함된 로봇의 프로토타입을 만들기 위해 LEGO Mindstorms EV3 생성자를 사용한 경험을 설명합니다.

  • 레고 마인드스톰 EV3를 기반으로 로봇 프로토타입 조립
  • Windows용 RCML의 빠른 설치 및 구성
  • EV3 컨트롤러를 기반으로 한 로봇의 소프트웨어 제어
  • 키보드와 게임패드를 사용하여 로봇 주변 장치를 수동으로 제어
조금 더 살펴보면, 키보드를 사용하여 레고 로봇의 제어를 구현하려면 단 3줄의 프로그램 코드만 포함하는 프로그램을 만들어야 한다고 덧붙일 것입니다. 자세한 방법은 컷 아래에 설명되어 있습니다.

1. 우선 프로그래밍과 수동 조종에 사용될 레고 마인드스톰 EV3 생성자로부터 로봇 프로토타입을 제작했습니다.

로봇 프로토타입에 대한 설명

로봇은 자동차 섀시와 유사한 디자인을 가지고 있습니다. 프레임에 장착된 두 개의 모터에는 하나의 공통 회전축이 있으며, 이는 기어박스를 통해 뒷바퀴에 연결됩니다. 기어박스는 리어 액슬의 각속도를 증가시켜 토크를 변환합니다. 스티어링은 베벨 기어를 기반으로 조립됩니다.



2. 다음 단계는 Lego Mindstorms EV3 생성자와 함께 작동하기 위해 RCML을 준비하는 것입니다.

실행 파일과 라이브러리 파일이 포함된 아카이브를 다운로드해야 합니다.

다운로드한 아카이브는 임의의 이름을 가진 디렉터리에 추출되어야 합니다. 피하다제목에 러시아 문자가 있습니다.

아카이브의 압축을 푼 후 디렉토리의 내용



다음으로 동일한 디렉터리에 위치해야 하는 구성 파일 config.ini를 생성해야 합니다. 키보드와 게임패드를 사용하여 EV3 컨트롤러를 제어하는 ​​기능을 구현하려면 LEGO_ev3, 키보드 및 게임패드 모듈을 연결해야 합니다.

RCML용 config.ini 구성 파일 목록

모듈 = LEGO_ev3 모듈 = 키보드 모듈 = 게임패드


다음으로 EV3 컨트롤러와 어댑터를 페어링해야 합니다.

EV3 컨트롤러와 Bluetooth 어댑터 페어링 지침

지침에는 Lego Ev3 컨트롤러와 Windows 7 운영 체제를 실행하는 PC를 페어링하는 예가 포함되어 있습니다.

1. Ev3 컨트롤러의 설정 섹션으로 이동한 다음 "Bluetooth" 메뉴 항목으로 이동해야 합니다.

2. 구성 매개변수가 올바르게 설정되었는지 확인하십시오. "가시성", "블루투스" 항목 옆의 확인란을 선택해야 합니다.

3. "제어판", "장치 및 프린터", "블루투스 장치"로 이동해야 합니다.

4. '장치 추가' 버튼을 클릭해야 합니다. 사용 가능한 Bluetooth 장치를 선택할 수 있는 창이 열립니다.

5. “EV3” 장치를 선택하고 “다음” 버튼을 클릭하세요.

6. EV3 컨트롤러에 “연결하시겠습니까?” 대화 상자가 표시됩니다. 확인란 옵션을 선택하고 가운데 키를 눌러 선택을 확인해야 합니다.

7. 다음으로 “PASSKEY” 대화 상자가 표시되고 입력 라인에 숫자 “1234”가 표시되어야 합니다. 그런 다음 확인 표시가 있는 위치의 가운데 키를 눌러 장치 페어링에 대한 핵심 문구를 확인해야 합니다.

8. 장치 페어링 마법사에 장치 페어링을 위한 키를 입력하는 양식이 나타납니다. 코드 "1234"를 입력하고 "다음" 버튼을 눌러야 합니다.

10. PC에서 "제어판", "장치 및 프린터", "블루투스 장치"로 돌아가야 합니다. 사용 가능한 장치 목록에는 페어링된 장치가 표시됩니다.

11. 두 번 클릭하여 "EV3" 연결 속성으로 이동합니다.

14. 속성에 지정된 COM 포트 인덱스는 LEGO_ev3 모듈의 config.ini 구성 파일에서 사용되어야 합니다. 이 예에서는 표준 COM14 직렬 포트를 사용하는 Lego EV3 컨트롤러의 Bluetooth 연결 속성을 보여줍니다.


모듈의 추가 구성은 레고 로봇과의 통신이 수행되는 COM 포트의 주소를 LEGO_ev3 모듈의 구성 파일에 작성해야 한다는 사실로 귀결됩니다.

LEGO_ev3 모듈의 config.ini 구성 파일 목록

연결 = COM14 Dynamic_connection = 0


이제 키보드 모듈을 구성해야 합니다. 모듈은 control_modules 디렉터리에 있고 그 다음에는 키보드에 있습니다. Keyboard_module.dll 파일 옆에 구성 파일 config.ini를 생성해야 합니다. 구성 파일을 생성하기 전에 키를 누를 때 어떤 작업을 수행해야 하는지 결정해야 합니다.

키보드 모듈을 사용하면 특정 숫자 코드가 있는 키를 사용할 수 있습니다. 가상 키 코드 표를 볼 수 있습니다.

예를 들어 다음 키 입력을 사용하겠습니다.

  • 위쪽/아래쪽 화살표는 뒷바퀴 모터를 앞으로/뒤로 회전시키는 데 사용됩니다.
  • 왼쪽/오른쪽 화살표는 바퀴를 왼쪽/오른쪽으로 돌립니다.
키보드 모듈 구성 파일은 프로그래머가 수동 제어 모드에서 로봇과 상호 작용하는 데 사용할 수 있는 축을 설명합니다. 따라서 이 예에는 두 개의 제어 그룹이 있습니다. 이는 키보드 축입니다. 새 축을 추가하려면 다음 축 설명 규칙을 따라야 합니다.

키보드 모듈의 축 설명 규칙

1. 새로운 축을 추가할 때 해당 섹션에서 필요합니다. 이름이 축 이름인 속성을 추가하고 여기에 키보드 버튼의 값을 할당합니다. 마녀형식이며 각 버튼에 대해 유사한 레코드가 생성됩니다. 축 이름은 여러 번 사용될 수 있습니다. 일반적으로 섹션에 쓰기 다음과 같이 보일 것입니다 :

Axis_name = 키보드_버튼_값_in_HEX_format
2. 이 축을 따라 플롯할 수 있는 최대값과 최소값을 설정해야 합니다. 이렇게 하려면 구성 파일의 새 줄에 섹션을 추가해야 합니다. config.ini, 축 이름과 동일하고 속성을 설정합니다. 상한값그리고 하한_값, 이는 각각 축의 최대값과 최소값에 해당합니다. 일반적으로 이 섹션은 다음과 같습니다.

[축_이름] upper_value = 최대_축_값 lower_value = 최소_축_값
3. 다음으로, 이전에 연결된 키보드의 버튼을 누를 경우 축의 값이 무엇인지 결정해야 합니다. 값은 축 이름과 키보드 버튼 값으로 구성된 섹션을 생성하여 결정됩니다. 마녀밑줄로 구분된 형식입니다. 기본값(누르지 않은 상태)과 누른 상태를 설정하려면 속성을 사용하십시오. 눌리지 않은_값그리고 눌려진_값각각 값이 전송됩니다. 이 경우 섹션의 일반적인 모습은 다음과 같습니다.

[축 이름_키보드-키-값]pressed_value = axis_value when_key_pressed unpressed_value = axis_value_when_key_pressed
스포일러 텍스트는 쉽게 볼 수 있도록 RCML 문서에서 복사되었습니다.


로봇 프로토타입의 제어를 구현하기 위해 이동 및 회전 축을 포함하는 키보드 모듈에 대한 구성 파일이 생성되었습니다. 이동 축은 로봇의 이동 방향을 설정하는 데 사용됩니다. "위쪽 화살표" 키를 누르면 축은 100의 값을 수신하고, "아래쪽 화살표" 키를 누르면 축은 -50의 값을 수신합니다. 회전축은 앞바퀴의 조향 각도를 설정하는 데 사용됩니다. 왼쪽 화살표 키를 누르면 축 값이 -5가 되고, 오른쪽 화살표 키를 누르면 축 값은 5가 됩니다.

키보드 모듈의 config.ini 구성 파일 목록

;필수 섹션 ;axis_name = key_code (HEX 형식) ;go 축은 up_arrow에서 값을 받습니다. go = 0x26 ;go 축은 go_down_arrow = 0x28에서 값을 받습니다. ;rotate 축은 left_arrow에서 값을 받습니다. right_arrow에서 값을 받습니다. 회전 = 0x27 ;이동 축에 대한 설명, 항상 두 키가 모두 있어야 함 ;이동 축 값의 상한값 upper_value = -100 ;이동 축 값의 하한값 lower_value = 100 ;에 대한 설명 축 회전, 항상 두 키가 모두 있어야 함; 회전 축 값의 상한값 upper_value = - 100 ; 축 값의 하한값 회전 lower_value = 100 ; *up_arrow* 키에 대한 이동 축 동작에 대한 설명(0x26) ) ; *up_arrow* 키를 누르면 축 값을 50으로 설정pressed_value = 100 ; *up_arrow* 키를 놓으면 축 값을 0으로 설정 unpressed_value = 0 ;*down_arrow에 대한 이동 축 동작에 대한 설명 * key (0x28) ; *down_arrow* 키를 누르면 축 값이 -50으로 설정됩니다.pressed_value = -50 ;*down_arrow* 키를 놓으면 축 값이 0으로 설정됩니다. unpressed_value = 0 ;회전 축에 대한 설명 동작 *왼쪽_화살표* 키(0x25) ;*왼쪽_화살표* 키를 누르면 축 값이 -5로 설정됩니다.pressed_value = -5 ;*왼쪽_화살표* 키를 놓으면 축 값이 0으로 설정됩니다. unpressed_value = 0 ;에 대한 설명 *right_arrow* 키에 대한 회전 축 동작 (0x27) ;*right_arrow* 키를 누르면 축 값이 5로 설정됩니다.pressed_value = 5 ;*right_arrow* 키를 놓으면 축 값이 0으로 설정됩니다. unpressed_value = 0


다음으로 게임패드를 사용하여 제어를 구현하려면 게임패드 모듈을 구성해야 합니다. 모듈을 구성하려면 control_modules 디렉터리에 있는 gamepad_module.dll 옆에 구성 파일 config.ini를 생성한 다음 게임패드를 생성해야 합니다.

게임패드와 상호작용하기 위한 범용 모듈 구성 파일

;사용된 축을 설명하는 필수 섹션 ;수동 제어 모드를 종료하는 축 종료 = 9 ; 게임패드 버튼에 해당하는 11개의 이진 축 B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12 ; 4개 스틱 축, 오른쪽 스틱 위/아래 이동 RTUD = 13, 오른쪽 스틱 왼쪽/오른쪽 이동 RTLR = 16, 왼쪽 스틱 위/아래 이동 LTUD = 15, 왼쪽 스틱 왼쪽/오른쪽 이동 LTLR = 14, 십자형 2축;십자형 위/아래 화살표 이동UD = 17 ;십자형 왼쪽/오른쪽 화살표 이동LR = 18 ;B1 축 동작 설명;B1 버튼을 누를 때 축 값을 1 upper_value로 설정 = 1;B1 버튼을 놓으면 축 값을 0으로 설정 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 ;오른쪽 스틱 축이 위/아래로 이동하는 동작에 대한 설명 ;최대로 이동할 때의 축 값 가능한 위쪽 위치 upper_value = 0 ;최대 가능한 아래쪽 위치로 이동할 때 축 값 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 ;D 패드 축 위쪽 동작에 대한 설명 /아래쪽 이동 ;위쪽 화살표를 누를 때의 축 값 upper_value = 1 ;아래쪽 화살표를 누를 때의 축 값 lower_value = -1 upper_value = 1 lower_value = -1


게임패드 모듈 설정에 대한 자세한 내용은 RCML 참조 매뉴얼에 표시되어 있습니다.

3. 다음 단계는 RCML로 프로그램을 작성하는 것입니다.

생성된 디렉터리의 루트에 프로그램 파일을 생성해야 합니다. 프로그램 파일의 이름과 확장자는 무엇이든 가능하지만 이름에 러시아어 문자는 피해야 합니다. 예제에 사용된 파일 이름은 hello.rcml입니다.

LEGO_ev3 모듈의 경우 로봇 예약 코드의 형식은 다음과 같습니다.

@tr = robots_lego_ev3;

LEGO_ev3 모듈 연결 페이지에서는 컨트롤러가 지원하는 대부분의 기능을 설명합니다. 테스트 예시로 로봇이 자동으로 스키드에 진입하는 프로그램을 작성했습니다.

프로그램 알고리즘은 다음과 같습니다.

첫 번째 무료 로봇을 예약한 후 두 모터가 하나인 것처럼 후속 작업을 위해 두 모터 사이에 연결이 설정됩니다. 그런 다음 로봇은 드리프트를 수행하기 시작합니다. 로봇 동작에 대한 소프트웨어 설명을 통해 앞바퀴의 회전 각도와 뒷바퀴의 회전 속도를 정확하게 설정할 수 있습니다. 이 기술을 사용하면 키보드나 게임 패드를 사용한 수동 조종 중에 복제하기 어려운 결과를 얻을 수 있습니다.

RCML 언어로 된 레고 로봇 프로그램 목록

function main() ( @tr = robots_lego_ev3; //로봇 예약 @tr->setTrackVehicle("B","C",0,0); //모터 동기화 설정 @tr->motorMoveTo("D",100 , 0,0); system.sleep(500); @tr->trackVehicleForward(-100); system.sleep(1000); @tr->motorMoveTo("D",50,-50,0); 시스템. 수면(4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff(); system.sleep(1000); )


프로그램을 컴파일하려면 창 명령줄을 사용해야 합니다. 먼저 rml_compiler.exe, rml_intepreter.exe 실행 파일이 생성된 디렉터리로 이동해야 합니다. 다음으로 다음 명령을 입력해야 합니다.

hello.rcml 파일을 컴파일하는 명령:

Rcml_compiler.exe hello.rcml hello.rcml.pc
컴파일 결과 생성된 디렉터리에 새로운 파일 hello.rcml.pc가 나타납니다.

성공적인 컴파일 후 명령줄 스크린샷



이제 EV3 컨트롤러가 켜져 있고 Bluetooth 어댑터와 페어링되어 있는지 확인해야 합니다. 게임패드가 PC에 연결되어 있어야 합니다. 그런 다음 프로그램 파일을 실행하려면 다음 명령을 실행해야 합니다.

Rcml_intepreter.exe hello.rcml

프로그램 실행 중 명령줄 모양



로봇의 움직임 프로그램을 보여주는 비디오는 기사 하단에 있습니다.

4. 다음 단계는 키보드를 사용하여 로봇을 수동으로 제어하는 ​​것입니다.

키보드를 사용하면 모든 로봇 모터를 제어할 수 있습니다. 이 예에서는 다음 메커니즘의 제어를 구현합니다.

  • 앞바퀴 조향 각도
  • 뒷바퀴의 회전 방향

EV3 컨트롤러를 기반으로 키보드와 레고 로봇 간의 상호 작용을 위한 프로그램 목록

function main() ( @tr = robots_lego_ev3; //로봇 예약 @tr->setTrackVehicle("B","C",0,0); //모터 동기화 설정 system.hand_control(@tr,"keyboard", " 직선", "이동", "speedMotorD", "회전"); )


다음으로, 프로그램을 컴파일하고 실행해야 합니다. 키보드를 사용하여 레고 로봇을 수동으로 제어한 결과는 페이지 하단의 비디오에 나와 있습니다.

5. 키보드 외에 게임패드를 이용하여 로봇을 조작할 수 있는 게임패드 모듈도 제공됩니다. 게임패드를 사용하여 로봇 제어를 구현하려면 로봇의 어느 축이 게임패드 축의 값을 취할 것인지 프로그램 수준에서 설명해야 합니다.

게임패드와 레고 로봇 간의 상호작용을 위한 프로그램 목록

function main() ( @tr = robots_lego_ev3; //로봇 예약 @tr->setTrackVehicle("B","C",0,0); //엔진 동기화 설정 system.hand_control(@tr,"gamepad", " 직선", "RTUD", "speedMotorD", "RTLR"); )


다음으로, 프로그램을 컴파일하고 실행하는 과정을 반복해야 합니다. 다음은 게임패드를 사용하여 레고 로봇을 수동으로 제어한 결과와 이전에 연결된 모든 방법을 보여줍니다.

이 기사에서는 RCML의 기능 중 일부만 간략하게 설명합니다. 가장 자세한 설명은 참조 매뉴얼에서 확인할 수 있습니다.

개별 슬라이드별 프레젠테이션 설명:

슬라이드 1개

슬라이드 설명:

2 슬라이드

슬라이드 설명:

EV3 브릭 인터페이스 EV3 브릭은 로봇에 전원을 공급하는 제어 센터입니다. 화면, 브릭 제어 버튼, 4개의 기본 창으로 구성된 EV3 브릭 인터페이스를 통해 놀랍도록 다양하고 고유한 EV3 브릭 기능에 액세스할 수 있습니다. 이는 프로그램 시작 및 중지와 같은 간단한 기능일 수도 있고 프로그램 자체 작성과 같은 복잡한 기능일 수도 있습니다.

3 슬라이드

슬라이드 설명:

인터페이스: EV3 메뉴에는 4개 부분으로 구성된 메뉴가 있습니다. 최근 프로그램 파일 탐색 브릭 애플리케이션 브릭 설정

4 슬라이드

슬라이드 설명:

최근 프로그램 최근 데스크탑 PC에서 다운로드한 프로그램을 실행합니다. 이 창은 프로그램 다운로드 및 실행을 시작할 때까지 공백으로 유지됩니다. 이 창에는 최근에 시작한 프로그램이 표시됩니다. 기본적으로 선택되어 있는 목록 상단의 프로그램이 마지막에 실행된 프로그램입니다.

5 슬라이드

슬라이드 설명:

파일 관리자 마이크로컴퓨터 메모리와 메모리 카드에 저장된 모든 파일에 액세스하고 관리합니다. 이 창에서는 SD 카드에 저장된 파일을 포함하여 EV3 브릭의 모든 파일에 액세스하고 관리할 수 있습니다. 파일은 실제 프로그램 파일 외에도 각 프로젝트에 사용된 사운드와 이미지를 포함하는 프로젝트 폴더로 구성됩니다. 파일 탐색기를 사용하여 파일을 이동하거나 삭제할 수 있습니다. 모듈 프로그래밍 환경과 모듈 데이터 로깅 애플리케이션을 사용하여 생성된 프로그램은 BrkProg_SAVE 및 BrkDL_SAVE 폴더에 별도로 저장됩니다.

6 슬라이드

슬라이드 설명:

EV3 컨트롤 박스 애플리케이션에는 4개의 사전 설치된 애플리케이션이 있습니다: A. 포트 보기. B. 모터 제어. B. IR 제어. D. 모듈 프로그래밍 환경.

7 슬라이드

슬라이드 설명:

A. 포트 보기 포트 보기 애플리케이션의 첫 번째 창에서는 어떤 포트에 센서나 모터가 연결되어 있는지 빠르게 확인할 수 있습니다. EV3 브릭 제어 버튼을 사용해 사용 중인 포트 중 하나로 이동하면 센서나 모터의 현재 판독값을 볼 수 있습니다. 여러 센서와 모터를 설치하고 다양한 설정으로 실험해 보세요. 설치된 모터 및 센서의 현재 설정을 보거나 변경하려면 가운데 버튼을 누르세요. 모듈의 기본 응용 프로그램 창으로 돌아가려면 "뒤로" 버튼을 클릭하세요.

8 슬라이드

슬라이드 설명:

B. 모터 제어 4개의 출력 포트 중 하나에 연결된 모터의 정방향 또는 역방향 이동을 제어합니다. 두 가지 모드가 있습니다. 한 모드에서는 포트 A(위 및 아래 버튼 사용)와 포트 D(왼쪽 및 오른쪽 버튼 사용)에 연결된 모터를 제어할 수 있습니다. 다른 모드에서는 포트 B(위 및 아래 버튼 사용)와 포트 C(왼쪽 및 오른쪽 버튼 사용)에 연결된 모터를 제어합니다. 이 두 모드 사이의 전환은 중앙 버튼을 사용하여 수행됩니다. 모듈의 기본 응용 프로그램 창으로 돌아가려면 "뒤로" 버튼을 클릭하세요.

슬라이드 9

슬라이드 설명:

IR 제어 원격 적외선 비콘을 리모콘으로 사용하고 적외선 센서를 수신기로 사용하여 4개의 출력 포트 중 하나에 연결된 모터의 전진 또는 역방향 모션을 제어합니다(적외선 센서는 EV3 브릭의 포트 4에 연결되어야 함). . 두 가지 모드가 있습니다. 한 모드에서는 원격 적외선 비콘의 채널 1과 2를 사용합니다. 채널 1에서는 포트 B(원격 IR 비콘의 버튼 1 및 2 사용)와 포트 C(원격 IR 비콘의 버튼 3 및 4 사용)에 연결된 모터를 제어할 수 있습니다. 채널 2에서는 포트 A(버튼 1 및 2 사용)와 포트 D(버튼 3 및 4 사용)에 연결된 모터를 제어할 수 있습니다. 다른 모드에서는 대신 원격 적외선 비콘의 채널 3과 4를 사용하여 동일한 방식으로 모터를 제어할 수 있습니다. 이 두 모드 사이의 전환은 중앙 버튼을 사용하여 수행됩니다. 모듈의 기본 응용 프로그램 창으로 돌아가려면 "뒤로" 버튼을 클릭하세요.

10 슬라이드

슬라이드 설명:

브릭 프로그래밍 환경 EV3 브릭에는 소프트웨어가 설치되어 제공됩니다. 이 응용 프로그램은 컴퓨터에 설치된 소프트웨어와 유사합니다. 이 지침에는 시작하는 데 필요한 기본 정보가 포함되어 있습니다.

11 슬라이드

슬라이드 설명:

EV3 브릭 설정 이 창에서는 EV3 브릭의 다양한 일반 설정을 보고 조정할 수 있습니다.

12 슬라이드

슬라이드 설명:

볼륨 조절 EV3의 설정 탭에서 볼륨을 높이거나 낮출 수 있습니다.

슬라이드 13