블루투스 사용법 블루투스는 선으로 직접 연결하지 않고도 데이터를 보내 른 블루투스 장비들을 사용함으로써 다른 NXT나 모바일 컴퓨터와 같은 장치에서 바로 다운 받을 수 있도록 하는 통신 기술입니다. 컴퓨터에서 블루투스 무선 통신을 사용하려면 블루투스 기능이 내장되어 있어야 합니다. 블루투스가 내장되어 있지 않다면 블루투스 동글(dongle)을 이용하면 됩니다. 단, 블루투스 동글을 사용할 때에는 적당한 타입의 블루투스 동글인지 확인해야합니다. 블루투스 장치를 사용함으로써 NXT는 블루투스 기능을 가지는 거의 모든 종류의 장치와 통신이 가능합니다. NXT 소프트웨어 뿐만 아니라 일반적인 컴퓨터에서 여러 개의 NXT로 통신이 가능하고, 2개 이상의 NXT들이 프로그램이나 소리 파일 등을 서로 주고받을 수 있..
블루투스의 원리 블루투스(Bluetooth)는 10세기 덴마크의 왕 Harald Blatand(영국 이름으로는 Harold Bluetooth)로부터 유래했습니다. Blatand 왕이 현재의 노르웨이, 스웨덴, 덴마크의 땅들을 통일했던 것처럼 블루투스 기술은 컴퓨터, 모바일 폰, 기타 자동화 기기들과 같은 서로 다른 산업의 기기들 사이에서 공통적으로 사용될 수 있는 기술로서 디자인되었습니다. 1998년 5개의 회사로 이루어진 SIG(Special Interest Group)가 조직되고 그 해 말까지 400여 개의 회사로 확대되었으며 블루투스(Bluetooth)라는 명칭이 공식적으로 채택되었습니다. 1999년 블루투스 1.0 규격이 공개되었으며, 2000년 첫 번째 모바일 폰이 개발되고 마우스와 노트북, 동..
PID 제어가 필요한 이유 일반적으로 두 개의 서로 다른 모터 A와 C를 사용하여 로봇을 직진시키려면 모터의 미세한 차이 때문에 정직진이 정확히 되지 않습니다. 따라서 정확한 직진을 위해서는 모터의 파워를 약간씩 조절하여 정직진하도록 만들어야 합니다. 일정 시점에서 모터의 회전각이나 회전 바퀴수를 비교하여 덜 회전한 모터를 더 회전하게 만들어 주면 정직진할 수 있을 것입니다. 하지만 이러한 과정을 수동적으로 조절하기란 매우 어렵습니다. 예를 들어, 모터 출력을 50으로 똑같이 설정하더라도, 서로 다른 모터 A와 C는 서로 다르게 회전할 것입니다. 모터의 출력이 서로 미세하게 다르기 때문에 모터 A가 파워 50의 출력 으로 회전하는 양과, 모터 C가 파워 50의 출력으로 회전하는 양은 다릅니다. 따라서 같..
엔코더 로봇에 대해서 알아보기 로봇을 제어하다 보면 정확하게 20cm 거리 가기, 정확하게 90도 회전하기 등을 하고 싶어집니다. 보통은 시간으로 이를 제어 하는데, 그 과정에서 많은 시행착오를 거치게 됩니다. 하지만 이렇게 어렵게 맞춘 제어 시간도 배터리의 잔량에 따라 그 동작이 변합니다. 로봇은 같은 시간 동안 직진을 하더라도 배터리의 잔량이 많을 때는 많이 가고 그렇지 않을 때는 적게 갑니다. 이렇게 시간을 이용한 제어보다 정확하고 정밀하게 제어하는 방법은 모터의 회전 각도를 이용하여 제어하는 것입니다. 이 포스팅에서는 서보모터의 회전각도를 이용하여 원하는 거리 가기, 회전하는 방법을 알아봅니다. 또한, NXT 로봇은 모터 출력의 차이 때문에 로봇이 똑바로 직진하지 않습니다. 즉, 한쪽 모터가 조금..
센서의 개념 빛은 일상생활과 떼어놓을 수 없는 자연 현상으로 낮과 밤, 밝음과 어둠을 구분하는 기준이 됩니다. 밝음과 어둠의 변화에 따라 사람들의 생활 패턴은 다양하게 변화합니다. 따라서 많은 활동을 할 수 있는 낮 시간을 좀 더 오래 유지시키고자 하는 빛의 필요가 전구를 발명하는 계기가 되었습니다. 어두운 밤을 지켜주는 가로등, 어두운 책상 위를 밝혀주는 스탠드처럼 빛을 내는 여러 기기들은 우리의 생활과 밀접한 관계를 가지게 되었으며, 빛을 활용하고자 하는 사람들의 많은 노력으로 다양한 전자기기들이 만들어지게 되었습니다. 어두워지면 자동으로 켜지는 도로의 등, 사람을 인식해 자동으로 문을 열어주는 자동문, 전화를 하기 위해 귀에 가져가면 자동으로 꺼지는 스마트폰의 화면 등은 어둠과 밝음이라는 빛의 특성..
헝가리언 표기법 변수에 이름을 붙일 보아도 어떤 용도로 사용할 것인지 알수 있도록 이름을 붙여야 합니다. 만약, 변수명을 a,b,c 라고 변수명만 지어 놓으면 나중에 변수 이름만 보고 a,b,c가 어떤 값을 저장하기 위한 것인지 알기 어렵습니다. 형가리언 표기법은 헝가리 출신이며 마이크로소프트의 프로그래머인 Charles Simonyi가 프로그램을 작성할 때 즐겨 사용하는 변수, 명명 방식으로 프로그램을 작성할 때 변수로 인한 프로그램 오류를 확실히 줄여 주기 때문에 많은 프로그래머들이 이 방법을 즐겨 쓰게 되었습니다. 데이터형(Data Type)에 대해서 알아보겠습니다. 프로그래밍 언어에서 자료형(data type)은 자료의 한 속성으로써 자료가 어떤 종류의 자료를 다루고 있는지 알려줍니다. 이는 그 ..
RobotC 프로그램 작성 규칙 RobotC는 표준 C언어 프로그램 규칙을 따르는 문자 기반의 프로그램 언어입니다. 사용자가 프로그램을 작성하면서 파랑색이나 보라색으로 글씨가 나오면 RobotC의 예약어이며 검정색으로 표시되면 잘못 작성되었거나 사용자가 정의한 변수입니다. 또한, RobotC가 인식하는 키워드는 자동으로 색상이 결 정되어 표시됩니다. RobotC 컴파일러는 대문자와 소문자를 엄격하게 구분합니다. RobotC는 기본적으로 절차형 언어이므로 프로그램의 실행 순서는 1번 줄 부터 순차적으로 실행됩니다. 스페이스(space), 탭(tab)은 프로그램의 실행에 영향을 주지 않지만 프로그램의 가독성을 높이기 위해서 적절하게 사용해야 합니다. 세미콜론(;)은 모든 RobotC 프로그램 문장의 끝을 알..
로봇 프로그래밍의 기초 로봇 프로그래밍(Programming)이란 로봇을 이용하여 문제를 해결하기 위해 로봇을 이용하여 문제를 해결하기 위해서는 먼저 문제의 내용이 무엇인지를 정확 분석한 것이며, 로봇 프로그래밍 명령들을 문법에 맞게 차례대로 나열한 것입니다. 프로그램 언어는 프로그램을 작성할 때 사용하는 언어이고 프로그래머는 프로그램을 작성하는 사람을 말합니다. 문제 해결을 위한 로봇 프로그램 작성은 여러 단계를 거쳐서 이루어집니다. 첫번 째, 문제 분석은 로봇을 이용하여 문제를 해결하기 위해서는 먼저 문제의 내용이 무엇인지를 정확하게 파악하는 것이 중요합니다. 두번 째, 입출력 설계란 결과를 체계적으로 만들고 작성합니다. 입력 설계란 어떤 데이터를 입력시킬 것인지 결정하는 것이며, 출력 설계란 데이터..
기어에 대해서 알아보기 동력을 전달하는 방법은 다양합니다. 벨트나 체인을 사용해서 원거리에 있는 동력을 전달할 수 있고, 접해 있는 기관으로 동력을 전달하기 위해 마찰차라는 부속을 사용하기도 합니다. 하지만 마찰차는 미끄럼이 발생하여 일정한 동력을 전달할 수 없습니다. 기어를 활용하면 일정한 비율로 힘을 전달할 수도 있고, 어긋나지 않게 큰 힘을 전달할 수 있습니다. 정밀함과 큰 힘을 동시에 필요로 하는 로봇의 내부기관에 기어가 많이 사용되는 것도 기어의 이러한 장점 때문입니다. 평기어는 스퍼기어라고도 하며 가장 일반적으로 사용되는 기어입니다. 평행한 장소에 근거리 동력전달을 목적으로 사용됩니다. 이때 두 기어는 각각 반대 반향으로 회전합니다. 감속장치나 동력전달장치에 주로 사용됩니다. 헬리켈기어는 평기..
도르래에 대해서 알아보기 도르래란 홈이 파인 원판에 줄을 걸어 힘의 방향을 바꾸거나 힘의 크기를 확대하는 장치입니다. 다음에서 설명하는 네 가지의 도르래를 통해 힘의 변환에 대해 알아보겠습니다. 고정도르래는 바퀴에 걸린 물건을 끌어올리는 데 쓰입니다. 고정도르래는 힘의 방향을 바꾸어 물체를 쉽게 들어 올릴 수 있지만, 물건의 무게와 같은 크기의 힘이 필요하기 때문에 힘의 효율성에서는 변함이 없습니다. 운동의 방향을 바꿔 힘의 작용방향을 전환 해야 하는 기계에는 고정도르래가 쓰입니다. 생활 속의 좋은 예로 우물에 걸려 있는 두레박을 들 수 있습니다. 두레박에 물을 퍼 올리기 위해서는 반대방향의 줄에 물과 두레박의 무게만큼 동일한 힘을 가해야 합니다. 움직도르래는 고정도르래와 달리 절반의 힘만 있으면 물체를..