빛에 반응하는 마이크로 컨트롤러의 모바일 로봇. 로봇을 만들기 위해 마이크로컨트롤러를 선택합니다. 야심 찬 로봇공학자를 위한 리소스

확실히 로봇에 관한 영화를 충분히 본 후 전투에서 자신만의 동료를 만들고 싶었지만 어디서부터 시작해야 할지 몰랐을 때가 많습니다. 물론, 두 발로 걷는 터미네이터를 만들 수는 없지만 우리가 달성하려는 것은 그것이 아닙니다. 납땜 인두를 손에 올바르게 잡는 방법을 아는 사람은 누구나 간단한 로봇을 조립할 수 있으며, 이는 아프지는 않지만 깊은 지식이 필요하지 않습니다. 아마추어 로봇 공학은 회로 설계와 크게 다르지 않으며 기계 및 프로그래밍과 같은 영역도 포함한다는 점에서 훨씬 더 흥미로울 뿐입니다. 모든 구성 요소는 쉽게 구할 수 있고 가격도 그리 비싸지 않습니다. 따라서 진보는 멈추지 않으며 우리는 이를 유리하게 활용할 것입니다.

소개

그래서. 로봇이란 무엇입니까? 대부분의 경우 이 자동 장치, 환경 활동에 반응합니다. 로봇은 인간에 의해 제어되거나 사전 프로그래밍된 작업을 수행할 수 있습니다. 일반적으로 로봇에는 다양한 센서(거리, 회전 각도, 가속도), 비디오 카메라 및 조작기가 장착됩니다. 로봇의 전자 부품은 프로세서, 클럭 생성기, 다양한 주변 장치, 작동 및 작동 기능을 포함하는 마이크로 회로인 마이크로 컨트롤러(MC)로 구성됩니다. 영구 기억. 전 세계에는 다양한 응용 분야에 사용되는 수많은 마이크로 컨트롤러가 있으며 이를 기반으로 강력한 로봇을 조립할 수 있습니다. 그들은 아마추어 건물에 널리 사용됩니다. AVR 마이크로컨트롤러. 이는 단연 가장 접근하기 쉬운 것이며 인터넷에서 이러한 MK를 기반으로 한 많은 예를 찾을 수 있습니다. 마이크로컨트롤러를 사용하려면 어셈블러나 C로 프로그래밍할 수 있어야 하며 디지털 및 아날로그 전자 장치에 대한 기본 지식이 있어야 합니다. 우리 프로젝트에서는 C를 사용하겠습니다. MK 프로그래밍은 컴퓨터 프로그래밍과 크게 다르지 않으며, 언어 구문은 동일하고, 대부분의 기능은 사실상 다르지 않으며, 새로운 기능은 배우기 쉽고 사용하기 편리합니다.

우리는 무엇이 필요한가

우선, 우리 로봇은 단순히 장애물을 피할 수 있을 것입니다. 즉, 자연에 있는 대부분의 동물의 정상적인 행동을 반복할 수 있을 것입니다. 그러한 로봇을 만드는 데 필요한 모든 것은 라디오 상점에서 찾을 수 있습니다. 로봇이 어떻게 움직일지 결정해 봅시다. 가장 성공적인 것은 탱크에 사용되는 트랙이라고 생각합니다. 트랙은 차량의 바퀴보다 기동성이 뛰어나고 제어하기가 더 편리하기 때문에 이것이 가장 편리한 솔루션입니다. (회전하려면 트랙을 회전하는 것으로 충분합니다.) 다른 방향으로). 따라서 트랙이 서로 독립적으로 회전하는 장난감 탱크가 필요하며 모든 장난감 상점에서 합리적인 가격으로 구입할 수 있습니다. 이 탱크에는 트랙이 있는 플랫폼과 기어박스가 있는 모터만 필요하며 나머지는 안전하게 풀고 버릴 수 있습니다. 우리는 또한 마이크로 컨트롤러가 필요합니다. 제가 선택한 ATmega16은 센서와 주변 장치를 연결하기에 충분한 포트가 있으며 일반적으로 매우 편리합니다. 또한 일부 무선 부품, 납땜 인두, 멀티미터도 구입해야 합니다.

MK로 보드 만들기



로봇 다이어그램

우리의 경우 마이크로컨트롤러는 뇌의 기능을 수행하지만 마이크로컨트롤러부터 시작하는 것이 아니라 로봇의 뇌에 전원을 공급하는 것으로 시작하겠습니다. 적절한 영양 섭취는 건강의 핵심이므로 로봇에게 적절하게 먹이를 주는 방법부터 시작하겠습니다. 왜냐하면 초보 로봇 제작자가 흔히 실수하는 부분이기 때문입니다. 그리고 로봇이 정상적으로 작동하려면 전압 안정기를 사용해야 합니다. 나는 L7805 칩을 선호합니다. 출력하도록 설계되었습니다. 안정적인 전압 5V는 마이크로 컨트롤러에 필요한 것입니다. 그러나 이 마이크로 회로의 전압 강하는 약 2.5V이므로 최소 7.5V를 공급해야 합니다. 이 안정기와 함께 전해 커패시터는 전압 리플을 완화하는 데 사용되며 극성 반전을 방지하기 위해 회로에 다이오드가 반드시 포함됩니다.
이제 마이크로컨트롤러로 넘어갈 수 있습니다. MK의 케이스는 DIP(납땜이 더 편리함)이고 핀이 40개입니다. 보드에는 ADC, PWM, USART 등 지금은 사용하지 않을 훨씬 더 많은 기능이 있습니다. 몇 가지 중요한 노드를 살펴보겠습니다. RESET 핀(MK의 9번째 레그)은 저항 R1에 의해 전원의 "플러스"로 풀업됩니다. 이 작업을 완료해야 합니다! 그렇지 않으면 MK가 의도하지 않게 재설정되거나 더 간단하게 말하면 결함이 발생할 수 있습니다. 필수는 아니지만 또 다른 바람직한 조치는 RESET을 세라믹 커패시터 C1을 통해 접지에 연결하는 것입니다. 다이어그램에서 1000uF 전해질도 볼 수 있는데, 이는 엔진이 작동 중일 때 전압 강하를 방지하고 마이크로컨트롤러 작동에도 유익한 효과를 줍니다. 석영 공진기 X1과 커패시터 C2, C3은 XTAL1 및 XTAL2 핀에 최대한 가깝게 위치해야 합니다.
MK를 플래시하는 방법에 대해서는 인터넷에서 읽을 수 있으므로 이야기하지 않겠습니다. 우리는 C로 프로그램을 작성할 것이며 프로그래밍 환경으로 CodeVisionAVR을 선택했습니다. 이는 상당히 사용자 친화적인 환경이며 코드 생성 마법사가 내장되어 있어 초보자에게 유용합니다.


내 로봇 보드

모터 제어

우리 로봇에서 똑같이 중요한 구성 요소는 모터 드라이버입니다. 이를 통해 로봇을 더 쉽게 제어할 수 있습니다. 어떤 경우에도 모터를 MK에 직접 연결해서는 안 됩니다! 일반적으로 강력한 부하는 마이크로컨트롤러에서 직접 제어할 수 없습니다. 그렇지 않으면 소진됩니다. 주요 트랜지스터를 사용하십시오. 우리의 경우에는 L293D라는 특수 칩이 있습니다. 이러한 간단한 프로젝트에서는 과부하 보호를 위한 다이오드가 내장되어 있으므로 항상 "D" 인덱스가 있는 이 특정 칩을 사용하도록 노력하십시오. 이 초소형 회로는 제어가 매우 쉽고 라디오 상점에서 쉽게 구입할 수 있습니다. DIP와 SOIC의 두 가지 패키지로 제공됩니다. 보드에 실장하기 쉽기 때문에 패키지에는 DIP를 사용하겠습니다. L293D에는 모터와 로직을 위한 별도의 전원 공급 장치가 있습니다. 따라서 우리는 안정기(VSS 입력)에서 마이크로 회로 자체에 전원을 공급하고 배터리(VS 입력)에서 모터에 직접 전원을 공급합니다. L293D는 채널당 600mA의 부하를 견딜 수 있으며 이러한 채널 중 2개가 있습니다. 즉, 하나의 칩에 2개의 모터를 연결할 수 있습니다. 하지만 안전을 위해 채널을 결합한 다음 각 엔진마다 하나의 마이크라가 필요합니다. L293D는 1.2A를 견딜 수 있습니다. 이를 달성하려면 다이어그램에 표시된 것처럼 micra 다리를 결합해야 합니다. 미세 회로는 다음과 같이 작동합니다. IN1 및 IN2에 논리 "0"이 적용되고 IN3 및 IN4에 논리 "0"이 적용되면 모터가 한 방향으로 회전하고 신호가 반전되어 논리 0이 적용되면, 그러면 모터가 다른 방향으로 회전하기 시작합니다. 핀 EN1과 EN2는 각 채널을 켜는 역할을 합니다. 우리는 그것들을 연결하고 안정기의 전원 공급 장치의 "플러스"에 연결합니다. 작동 중에 초소형 회로가 가열되고 이러한 유형의 케이스에 라디에이터를 설치하는 것이 문제가 되므로 GND 다리를 통해 열 제거가 보장됩니다. 넓은 접촉 패드에 납땜하는 것이 좋습니다. 이것이 처음으로 엔진 드라이버에 대해 알아야 할 전부입니다.

장애물 센서

로봇이 탐색할 수 있고 모든 것에 충돌하지 않도록 두 개의 적외선 센서를 설치하겠습니다. 가장 간단한 센서는 적외선 스펙트럼을 방출하는 IR 다이오드와 IR 다이오드로부터 신호를 수신하는 포토트랜지스터로 구성됩니다. 원리는 다음과 같습니다. 센서 앞에 장애물이 없으면 IR 광선이 포토트랜지스터에 닿지 않아 열리지 않습니다. 센서 앞에 장애물이 있으면 광선이 반사되어 트랜지스터에 부딪히며 열리고 전류가 흐르기 시작합니다. 이러한 센서의 단점은 서로 다른 표면에 다르게 반응할 수 있고 간섭으로부터 보호되지 않는다는 것입니다. 즉, 센서가 다른 장치의 외부 신호에 의해 실수로 트리거될 수 있습니다. 신호를 변조하면 간섭으로부터 보호할 수 있지만 지금은 이에 대해 신경쓰지 않겠습니다. 우선, 그것으로 충분합니다.


내 로봇 센서의 첫 번째 버전

로봇 펌웨어

로봇에 생명을 불어넣으려면 해당 펌웨어, 즉 센서에서 판독값을 읽고 모터를 제어하는 ​​프로그램을 작성해야 합니다. 내 프로그램은 가장 간단하고 복잡한 구조를 포함하지 않으며 모든 사람이 이해할 수 있습니다. 다음 두 줄에는 마이크로 컨트롤러용 헤더 파일과 지연 생성 명령이 포함되어 있습니다.

#포함하다
#포함하다

PORTC 값은 모터 드라이버를 마이크로 컨트롤러에 연결하는 방법에 따라 달라지므로 다음 줄은 조건부입니다.

포트C.0 = 1;
포트C.1 = 0;
포트C.2 = 1;
포트C.3 = 0;

0xFF 값은 출력이 로그임을 의미합니다. "1"이고 0x00은 로그입니다. "0".

다음 구성을 통해 로봇 앞에 장애물이 있는지, 어느 쪽에 있는지 확인합니다.

If (!(핀 & (1< {
...
}

IR 다이오드의 빛이 포토트랜지스터에 닿으면 마이크로컨트롤러 다리에 로그가 설치됩니다. “0”이면 로봇은 장애물에서 멀어지기 위해 후진하기 시작하고, 다시 장애물과 충돌하지 않도록 방향을 틀었다가 다시 전진합니다. 두 개의 센서가 있으므로 오른쪽과 왼쪽에 장애물이 있는지 두 번 확인하므로 장애물이 어느 쪽에 있는지 알 수 있습니다. "delay_ms(1000)" 명령은 다음 명령 실행이 시작되기 전에 1초가 경과함을 나타냅니다.

결론

나는 당신의 첫 번째 로봇을 만드는 데 도움이 될 대부분의 측면을 다루었습니다. 하지만 로봇공학은 여기서 끝나지 않습니다. 이 로봇을 조립하면 확장할 수 있는 기회가 많이 생길 것입니다. 장애물이 어느 쪽이 아니라 로봇 바로 앞에 있는 경우 어떻게 해야 하는지 등 로봇의 알고리즘을 개선할 수 있습니다. 또한 공간에서 로봇의 위치를 ​​정확하게 파악하고 위치를 파악하는 데 도움이 되는 간단한 장치인 인코더를 설치하는 것도 나쁘지 않습니다. 명확성을 위해 배터리 충전 수준, 장애물까지의 거리, 다양한 디버깅 정보 등 유용한 정보를 표시할 수 있는 컬러 또는 흑백 디스플레이를 설치할 수 있습니다. 기존의 광트랜지스터 대신 TSOP(특정 주파수의 신호만 인식하는 IR 수신기)를 설치하여 센서를 개선해도 문제가 되지 않습니다. 적외선 센서 외에도 초음파 센서가 있는데, 이 센서는 가격이 더 비싸고 단점도 있지만 최근 로봇 제작자 사이에서 인기를 얻고 있습니다. 로봇이 소리에 반응하기 위해서는 앰프와 함께 마이크를 설치하는 것도 좋을 것 같습니다. 그런데 제가 정말 흥미롭다고 생각하는 것은 카메라를 설치하고 이를 기반으로 머신비전을 프로그래밍하는 것입니다. 얼굴 인식, 색상 비콘에 따른 움직임 및 기타 많은 흥미로운 것들을 프로그래밍할 수 있는 특별한 OpenCV 라이브러리 세트가 있습니다. 그것은 모두 당신의 상상력과 기술에만 달려 있습니다.
구성 요소 목록:
  • DIP-40 패키지의 ATmega16>
  • TO-220 패키지의 L7805
  • DIP-16 하우징의 L293D x2개
  • 정격이 0.25W인 저항기: 10kOhm x 1개, 220Ohm x 4개.
  • 세라믹 커패시터: 0.1μF, 1μF, 22pF
  • 전해 콘덴서: 1000μF x 16V, 220μF x 16V x 2개
  • 다이오드 1N4001 또는 1N4004
  • 16MHz 수정 공진기
  • IR 다이오드: 둘 중 아무거나 사용하면 됩니다.
  • 광트랜지스터도 마찬가지이지만 적외선 파장에만 반응합니다.
펌웨어 코드:
/*****************************************************
로봇용 펌웨어

MK 유형: ATmega16
클록 주파수: 16.000000MHz
석영 주파수가 다른 경우 환경 설정에서 이를 지정해야 합니다.
프로젝트 -> 구성 -> "C 컴파일러" 탭
*****************************************************/

#포함하다
#포함하다

보이드 메인(void)
{
//입력 포트 구성
//이 포트를 통해 센서로부터 신호를 수신합니다.
DDRB=0x00;
//풀업 저항을 켭니다.
포트B=0xFF;

//출력 포트 구성
//이 포트를 통해 모터를 제어합니다.
DDRC=0xFF;

//프로그램의 메인 루프. 여기서는 센서의 값을 읽습니다.
//엔진 제어
동안 (1)
{
//앞으로 가자
포트C.0 = 1;
포트C.1 = 0;
포트C.2 = 1;
포트C.3 = 0;
if (!(핀 & (1< {
//1초 뒤로 이동
포트C.0 = 0;
포트C.1 = 1;
포트C.2 = 0;
포트C.3 = 1;
지연_ms(1000);
//마무리해
포트C.0 = 1;
포트C.1 = 0;
포트C.2 = 0;
포트C.3 = 1;
지연_ms(1000);
}
if (!(핀 & (1< {
//1초 뒤로 이동
포트C.0 = 0;
포트C.1 = 1;
포트C.2 = 0;
포트C.3 = 1;
지연_ms(1000);
//마무리해
포트C.0 = 0;
포트C.1 = 1;
포트C.2 = 1;
포트C.3 = 0;
지연_ms(1000);
}
};
}

내 로봇에 대해

현재 내 로봇은 거의 완성되었습니다.


무선 카메라, 거리 센서(카메라와 이 센서는 모두 회전 타워에 설치됨), 장애물 센서, 인코더, 리모콘의 신호 수신기 및 연결용 RS-232 인터페이스가 장착되어 있습니다. 컴퓨터. 자율 모드와 수동 모드(리모컨에서 제어 신호 수신)의 두 가지 모드로 작동하며, 배터리 전력을 절약하기 위해 원격으로 또는 로봇 자체로 카메라를 켜거나 끌 수도 있습니다. 저는 아파트 보안용 펌웨어(이미지를 컴퓨터로 전송, 움직임 감지, 건물 주변 산책)를 작성하고 있습니다.

귀하의 요청에 따라 다음과 같은 동영상을 게시합니다.

UPD.사진을 다시 업로드하고 텍스트를 약간 수정했습니다.

자신만의 로봇을 만들기 위해 졸업할 필요도 없고 책을 많이 읽을 필요도 없습니다. 로봇공학 전문가가 웹사이트에서 제공하는 단계별 지침을 따르십시오. 인터넷에서는 자율 로봇 시스템 개발에 관한 유용한 정보를 많이 찾을 수 있습니다.

야심찬 로봇 공학자를 위한 10가지 리소스

사이트의 정보를 사용하면 복잡한 동작을 가진 로봇을 독립적으로 만들 수 있습니다. 여기서는 프로그램 예제, 다이어그램, 참고 자료, 기성 예제, 기사 및 사진을 찾을 수 있습니다.

사이트에는 초보자 전용 섹션이 별도로 있습니다. 리소스 작성자는 마이크로 컨트롤러, 로봇 공학용 범용 보드 개발 및 마이크로 회로 납땜에 상당한 중점을 두고 있습니다. 여기서는 프로그램의 소스 코드와 실용적인 조언이 담긴 많은 기사도 찾을 수 있습니다.

웹사이트에는 AVR 마이크로컨트롤러를 기반으로 한 자동화 시스템뿐만 아니라 가장 간단한 BEAM 로봇을 만드는 과정을 자세히 설명하는 특별 과정인 "Step by Step"이 있습니다.

로봇 제작자 지망생에게 필요한 모든 이론 및 실무 정보를 찾을 수 있는 사이트입니다. 여기에는 유용한 주제별 기사도 많이 게시되어 있으며, 뉴스가 업데이트되고 포럼에서 숙련된 로봇공학자에게 질문할 수 있습니다.

이 리소스는 로봇 제작의 세계에 점진적으로 몰입하는 데 전념합니다. 모든 것은 Arduino에 대한 지식으로 시작되며, 그 후 초보 개발자에게 AVR 마이크로 컨트롤러 및 최신 ARM 아날로그에 대한 설명이 제공됩니다. 자세한 설명과 다이어그램은 수행 방법과 작업을 매우 명확하게 설명합니다.

자신의 손으로 BEAM 로봇을 만드는 방법에 대한 사이트입니다. 기본 사항은 물론 논리 다이어그램, 예제 등을 다루는 전체 섹션이 있습니다.

이 리소스는 로봇을 직접 만드는 방법, 시작 위치, 알아야 할 사항, 정보를 찾을 위치 및 필요한 부품을 매우 명확하게 설명합니다. 이 서비스에는 블로그, 포럼 및 뉴스가 포함된 섹션도 포함되어 있습니다.

로봇 제작에 전념하는 대규모 라이브 포럼입니다. 초보자를 위한 주제가 여기에 공개되어 있으며, 흥미로운 프로젝트와 아이디어가 논의되고, 마이크로컨트롤러, 기성 모듈, 전자 장치 및 기계 장치가 설명됩니다. 그리고 가장 중요한 점은 로봇 공학에 관해 무엇이든 질문하고 전문가로부터 자세한 답변을 받을 수 있다는 것입니다.

아마추어 로봇공학자의 자원은 주로 자신의 프로젝트인 "수제 로봇"에 전념합니다. 그러나 여기에서는 유용한 주제별 기사, 흥미로운 사이트 링크, 저자의 업적에 대해 알아보고 다양한 디자인 솔루션에 대해 토론할 수 있습니다.

Arduino 하드웨어 플랫폼은 로봇 시스템 개발에 가장 편리합니다. 사이트의 정보를 사용하면 이 환경을 빠르게 이해하고 프로그래밍 언어를 익히며 여러 가지 간단한 프로젝트를 만들 수 있습니다.

로봇을 만들기 위해 마이크로컨트롤러를 선택합니다. 먼저 마이크로컨트롤러가 무엇이며 어떤 역할을 하는지에 대한 개념을 이해해야 합니다.

마이크로컨트롤러프로그램(즉, 일련의 명령)을 실행할 수 있는 컴퓨팅 장치입니다.

흔히 로봇의 "두뇌" 또는 "제어 센터"라고 합니다. 일반적으로 마이크로 컨트롤러는 모든 계산, 의사 결정 및 통신을 담당합니다.

외부 세계와 통신하기 위해 마이크로 컨트롤러에는 신호를 전기적으로 감지하는 일련의 핀이 있습니다. 따라서 프로그래밍 명령을 사용하여 신호를 최대(1/C) 또는 최소(0/off)로 설정할 수 있습니다. 이 핀은 전기 신호를 읽는 데에도 사용할 수 있습니다. 이는 센서나 기타 장치에서 발생하며 신호가 높은지 낮은지를 결정합니다.

대부분의 최신 마이크로컨트롤러는 아날로그 신호의 전압도 측정할 수 있습니다. 이는 명확하게 정의된 두 가지 레벨 대신 전체 범위의 값을 가질 수 있는 신호입니다. 이는 아날로그 디지털 변환기(ADC)를 사용하여 발생합니다. 결과적으로 마이크로컨트롤러는 아날로그 전압 형태로 신호에 숫자 값을 할당할 수 있는데, 이 전압은 높지도 낮지도 않으며 일반적으로 0~10V 범위에 있습니다.

마이크로컨트롤러는 무엇을 할 수 있나요?

언뜻 보기에는 마이크로컨트롤러가 매우 제한적으로 보일 수 있지만 알고리즘을 프로그래밍하기 위해 높은 신호 핀과 낮은 신호 핀을 사용하여 많은 복잡한 작업을 수행할 수 있습니다. 그러나 제한된 리소스와 속도 제한으로 인해 마이크로 컨트롤러에서는 지능적인 동작이나 매우 큰 프로그램과 같은 매우 복잡한 알고리즘을 만드는 것이 불가능할 수 있습니다.

예를 들어, 조명이 깜박이도록 반복 순서를 프로그래밍할 수 있습니다. 따라서 마이크로컨트롤러는 신호 레벨을 높게 켜고 잠시 기다렸다가 낮게 바꾸고 다시 1초 동안 기다린 후 다시 시작합니다. 표시등은 마이크로컨트롤러의 출력 핀에 연결되어 있으며 순환 프로그램에서 끝없이 깜박입니다.


마찬가지로 마이크로컨트롤러를 사용하여 다른 전기 장치를 제어할 수도 있습니다. 주로 드라이브(모터 컨트롤러에 연결된 경우), 저장 장치(SD ​​카드 등), WiFi 또는 Bluetooth 인터페이스 등이 있습니다. 이러한 놀라운 다양성으로 인해 마이크로 컨트롤러는 일상 생활에서 찾아볼 수 있습니다.

거의 모든 가전제품이나 전자 장치는 적어도 하나의 마이크로컨트롤러를 사용합니다. 여러 마이크로 컨트롤러가 자주 사용되지만. 예를 들어 텔레비전, 세탁기, 제어판, 전화기, 시계, 전자레인지 및 기타 여러 장치에 사용됩니다.

마이크로프로세서(예: 개인용 컴퓨터의 중앙 처리 장치)와 달리 마이크로컨트롤러에는 주변 장치가 필요하지 않습니다. 업무용 외부 RAM이나 외부 저장 장치 등. 이는 마이크로컨트롤러가 PC에 비해 성능이 떨어질 수 있음을 의미합니다. 추가 하드웨어 구성 요소가 거의 필요하지 않기 때문에 마이크로 컨트롤러를 기반으로 회로와 제품을 개발하는 것이 거의 항상 훨씬 쉽고 저렴합니다.

마이크로컨트롤러는 출력 핀을 통해 아주 적은 양의 전기 에너지만 출력할 수 있다는 점에 유의하는 것이 중요합니다. 이는 강력한 전기 모터, 솔레노이드, 대형 조명 또는 기타 대형 부하를 마이크로컨트롤러에 직접 연결할 수 없음을 의미합니다. 이렇게 하면 컨트롤러가 손상될 수 있습니다.

마이크로컨트롤러의 더욱 전문화된 기능은 무엇입니까?

마이크로컨트롤러에 내장된 특수 하드웨어를 통해 이러한 장치는 단순한 디지털 I/O, 기본 계산 및 의사 결정 이상의 기능을 수행할 수 있습니다. 많은 마이크로 컨트롤러는 UART(RS232 또는 기타), SPI 및 I2C와 같은 가장 널리 사용되는 통신 프로토콜을 쉽게 지원합니다. 이 기능은 컴퓨터, 센서 또는 기타 마이크로 컨트롤러와 같은 다른 장치와 통신할 때 매우 유용합니다.

이러한 프로토콜은 수동으로 구현할 수 있지만 세부 사항을 처리하는 전용 온보드 하드웨어를 갖는 것이 항상 더 좋습니다. 이를 통해 마이크로컨트롤러는 다른 작업에 집중하고 프로그램을 깔끔하게 유지할 수 있습니다.


아날로그-디지털 변환기(ADC)는 아날로그 전압 신호를 디지털 신호로 변환하는 데 사용됩니다. 그 양은 전압의 크기에 비례하며 이 숫자는 마이크로컨트롤러 프로그램에서 사용될 수 있습니다. 중간 에너지 출력을 높음과 낮음과 다르게 만들기 위해 일부 마이크로 컨트롤러에는 펄스 폭 변조(PWM)를 사용할 수 있는 기능이 있습니다. 예를 들어 이 방법을 사용하면 LED의 밝기를 원활하게 변경할 수 있습니다.

마지막으로 일부 마이크로 컨트롤러에는 통합 전압 조정기가 있습니다. 이는 마이크로컨트롤러가 넓은 전압 범위에서 작동할 수 있게 해주기 때문에 매우 편리합니다. 따라서 필요한 전압 값을 제공할 필요가 없습니다. 또한 추가적인 외부 조정 전원 공급 장치 없이 다양한 센서 및 기타 장치를 쉽게 연결할 수 있습니다.

아날로그인가, 디지털인가?

어떤 입력 및 출력 신호를 사용해야 하는지는 작업과 조건에 따라 다릅니다. 예를 들어, 단순히 무언가를 켜거나 끄는 작업이라면 마이크로컨트롤러 입력 핀의 신호가 디지털이기만 하면 됩니다. 스위치의 이진 상태는 0 또는 1입니다. 신호의 높은 레벨은 5V이고 낮은 레벨은 0일 수 있습니다. 예를 들어 온도를 측정해야 하는 경우 아날로그 입력 신호가 필요합니다. 다음으로 마이크로 컨트롤러의 ADC는 전압을 해석하여 수치 값으로 변환합니다.


마이크로 컨트롤러를 프로그래밍하는 방법은 무엇입니까?

모든 기능을 갖춘 라이브러리를 갖춘 최신 통합 개발 환경(IDE)을 사용함으로써 마이크로컨트롤러 프로그래밍이 더욱 쉬워졌습니다. 가장 일반적인 작업을 모두 쉽게 다루고 이미 만들어진 코드 예제가 많이 있습니다.

요즘에는 마이크로컨트롤러를 다양한 고급 언어로 프로그래밍할 수 있습니다. C, C++, C#, Java, Python, Basic 등과 같은 언어입니다. 물론 언제든지 어셈블리 언어로 프로그램을 작성할 수 있습니다. 이것은 특별한 요구 사항(마조히즘의 힌트 포함)이 있는 고급 사용자를 위한 것입니다. 이런 의미에서 누구나 자신의 취향과 이전 프로그래밍 경험에 가장 적합한 프로그래밍 언어를 찾을 수 있어야 합니다.

제조업체가 그래픽 프로그래밍 환경을 구축함에 따라 마이크로컨트롤러 프로그래밍이 더욱 쉬워지고 있습니다. 여러 줄의 코드가 포함된 아이콘입니다. 픽토그램은 서로 연결되어 있습니다. 그 결과, 시각적으로는 단순하지만 많은 양의 코드를 포함하는 프로그램이 만들어졌습니다. 예를 들어 하나의 이미지는 엔진 제어를 나타낼 수 있습니다. 사용자는 필요한 곳에 아이콘을 배치하고 회전 방향과 속도를 표시하기만 하면 됩니다.


개발된 마이크로 컨트롤러 보드는 사용이 매우 편리합니다. 그리고 오랫동안 사용하기가 더 쉽습니다. 또한 편리한 USB 전원 및 프로그래밍 인터페이스를 제공합니다. 따라서 모든 최신 컴퓨터에 연결할 수 있습니다.

왜 표준 컴퓨터를 사용하지 않습니까?

분명히 마이크로 컨트롤러는 컴퓨터 프로세서와 매우 유사합니다. 그렇다면 컴퓨터를 사용하여 로봇을 제어하는 ​​것은 어떨까요? 그렇다면 데스크톱 컴퓨터를 선택해야 할까요, 아니면 마이크로컨트롤러를 선택해야 할까요?


기본적으로 고급 로봇, 특히 복잡한 계산 및 알고리즘이 포함된 로봇에서는 마이크로컨트롤러가 표준 컴퓨터로 대체(또는 보완)되는 경우가 많습니다. 데스크탑 컴퓨터에는 마더보드, 프로세서, 장치의 RAM(예: 하드 드라이브) 및 비디오 카드(내장 또는 외장)가 포함되어 있습니다.

또한 모니터, 키보드, 마우스 등과 같은 주변 장치도 있습니다. 이러한 시스템은 일반적으로 더 비싸고 물리적으로 더 크며 더 많은 전력을 소비합니다. 주요 차이점은 아래 표에 강조되어 있습니다. 게다가 필요한 것보다 더 많은 기능을 갖고 있는 경우도 많습니다.

올바른 마이크로컨트롤러를 선택하는 방법은 무엇입니까?

로봇 공학을 공부하는 경우 모든 로봇 공학 프로젝트에 마이크로 컨트롤러가 필요합니다. 초보자에게 적합한 마이크로컨트롤러를 선택하는 것은 어려운 작업처럼 보일 수 있습니다. 특히 범위, 기술적 특성 및 적용 분야를 고려하십시오. 시중에는 다양한 마이크로컨트롤러가 나와 있습니다.

  • 아두이노
  • 베이직아톰
  • 베이직X
  • 레고 EV3
  • 그리고 많은 다른 사람들

올바른 마이크로 컨트롤러를 선택하려면 다음 질문을 스스로에게 물어보십시오.

내 애플리케이션에 가장 널리 사용되는 마이크로컨트롤러는 무엇입니까?

물론 일반적으로 로봇과 전자 프로젝트를 만드는 것은 인기 경쟁이 아닙니다. 마이크로컨트롤러에 대한 커뮤니티 지원이 많으면 매우 좋습니다. 그리고 유사하거나 동일한 상황에서도 성공적으로 사용됩니다. 결과적으로 이는 설계 단계를 크게 단순화할 수 있습니다. 이렇게 하면 아마추어와 전문가 모두 다른 사용자의 경험을 활용할 수 있습니다.

로봇설계 커뮤니티 회원들은 결과, 코드, 사진, 영상 등을 서로 공유하며 성공, 실패까지 세심하게 이야기를 나눈다. 이 모든 것은 접근 가능한 자료이자 경험이 풍부한 사용자로부터 조언을 받을 수 있는 기회입니다. 그러므로 그것은 매우 귀중한 것으로 판명될 수 있다.

로봇에 특별한 요구 사항이 있나요?

기능이 올바르게 실행되려면 마이크로컨트롤러가 로봇의 모든 특수 동작을 수행할 수 있어야 합니다. 일부 기능은 모든 마이크로컨트롤러에 공통적으로 적용됩니다(예: 디지털 입력 및 출력의 존재, 간단한 수학 연산 수행, 값 비교 및 ​​의사 결정 기능).

다른 컨트롤러에는 특정 하드웨어(예: ADC, PWM 및 통신 프로토콜 지원)가 필요할 수 있습니다. 또한 메모리 및 속도 요구 사항은 물론 핀 수도 고려해야 합니다.

특정 마이크로 컨트롤러에는 어떤 구성 요소를 사용할 수 있습니까?

로봇에 특별한 요구 사항이 있거나 특정 센서나 구성 요소가 필요할 수도 있습니다. 그리고 이는 프로젝트에 매우 중요합니다. 따라서 호환 가능한 마이크로 컨트롤러를 선택하는 것은 물론 매우 중요합니다.

대부분의 센서와 구성요소는 많은 마이크로컨트롤러와 직접 통신할 수 있습니다. 일부 구성 요소는 특정 마이크로 컨트롤러와 상호 작용하도록 설계되었습니다. 아마도 그들은 독특하고 다른 유형의 마이크로 컨트롤러와 호환되지 않을 것입니다.

우리의 미래는 어떻게 될까요?

컴퓨터 가격은 급락하고 있으며 기술의 발전으로 인해 컴퓨터는 더 작고 효율적으로 변하고 있습니다. 결과적으로 단일 보드 컴퓨터는 로봇에게 매력적인 옵션이 되었습니다. 전체 운영 체제를 실행할 수 있습니다(Windows 및 Linux가 가장 일반적임).

또한 컴퓨터는 USB 장치, LCD 디스플레이 등과 같은 외부 장치에 연결할 수 있습니다. 이전 제품과 달리 이러한 단일 보드 컴퓨터는 전력을 훨씬 적게 소비하는 경향이 있습니다.

실용적인 부분

마이크로컨트롤러를 선택하기 위해 필요한 기준 목록을 만들어 보겠습니다.

  • 마이크로컨트롤러의 가격은 낮아야 한다
  • 사용하기 쉽고 잘 지원되어야 합니다.
  • 접근 가능한 문서의 가용성이 중요합니다.
  • 그래픽 환경에서 프로그래밍해야 합니다.
  • 인기가 있어야 하며 활발한 사용자 커뮤니티가 있어야 합니다.
  • 우리 로봇은 두 개의 모터와 다양한 센서를 사용하므로 마이크로컨트롤러에는 모터를 제어하기 위한 최소 두 개의 포트와 센서 연결을 위한 여러 개의 포트가 필요합니다. 향후에는 연결 장치의 수를 확장하는 것도 가능해야 합니다.

다음 기준을 충족합니다. EV3 모듈레고 마인드스톰 EV3 세트.


EV3 브릭 개요

26.01.2011, 09:18
원천:

보통 기사에서는 자료를 전개된 순서대로 제시하려고 하는데, 그렇지 않은 것 같아요. 따라서 회로도, PCB 레이아웃 및 기타 모든 설계 단계를 건너 뛰겠습니다. 그림 1에서 우리는 내가 어떤 종류의 “치욕”을 받았는지 알 수 있습니다.

언뜻 보면 철, 전자 제품, 전선 더미처럼 보입니다. 이는 아마도 서로 다른 재료를 사용했기 때문일 것입니다. 그것을 알아 봅시다.

이제 모든 것이 정상입니다. Attiny2313 마이크로 컨트롤러는 두 개의 적외선 센서로부터 장애물 신호(논리 1 또는 0)를 수신합니다. 그런 다음 펌웨어에 따라 마이크로컨트롤러는 L293D 모터 드라이버 칩을 제어합니다(최대 1A 전류 제어). 그림 3은 거꾸로 된 로봇의 사진을 보여줍니다.

수제 로봇 디자인의 기본은 사다리꼴로 구부러진 금속 스트립입니다. 굽힘 각도는 약 120°입니다. 양쪽에서 동일한 굽힘을 얻는 것이 근본적으로 중요합니다. 그렇지 않으면 로봇이 직선으로 움직이지 않습니다. 반면에 기계공학자나 전자공학 엔지니어가 제대로 수행하지 못한 부분은 프로그래머가 PWM을 사용하여 로봇의 선형 움직임을 달성함으로써 수정할 수 있는 경우도 있습니다.

우리 모두는 학교 기하학 과정에서 평면이 세 점 또는 직선과 공간의 한 점으로 구성된다는 것을 알고 있습니다. 세 번째 포인트는 자유롭게 회전하는 롤러 휠입니다.

IR 센서의 수신기와 포토트랜지스터는 조도를 줄이고 오탐을 최소화하기 위해 하단에 위치합니다. IR 센서 자체는 이동식 경첩에 장착되어 있어 스캔 영역을 조정할 수 있습니다. 그런데 복도에서 기어다니는 로봇에 대한 우리 고양이의 반응이 흥미로웠나요? 내 고양이는 검은 색이에요. IR 센서를 회색 배경화면으로 설정했기 때문에 거의 마지막 순간에 로봇이 고양이 앞으로 돌아섰고, 고양이는 큰 쉭쉭 소리를 내며 한 걸음 뒤로 뛰어갔습니다.

로봇의 다음 모딩은 배에 있는 IR 센서로, 로봇이 마커로 흰 종이에 그려진 검은 선을 따라갈 수 있도록 했습니다. 구현에는 마이크로컨트롤러의 부담을 덜어주기 위해 LM339N 칩에 3개의 센서와 비교기가 필요했습니다. 중요한 단점은 실내 조명에 따라 트리밍 저항을 사용하여 센서를 사전에 조정해야 한다는 것입니다.

추신 무의미한 장치를 만드는 데 시간을 낭비한 것에 대한 보상은 아마도 누군가의 자녀가 관심을 가질 때까지 선반에 먼지를 쌓을 마이크로 컨트롤러의 작동과 메모리의 명확성이 될 것입니다.




맨 위