uno(10)
-
#11/12 아두이노 로봇 HowTo
LCD 모듈 LCD 모듈은 로봇의 주행 성능과는 무관하지만 차량의 상태 정보를 나타낼 수 있고 어렵지 않게 구현을 할 수 있어 택했다. 1602 Character LCD로 16개 문자를 두 줄에 표시할 수 있는 저렴한 LCD이다. 앞의 사진에서 보는 바와 같이 연결해야 할 핀들이 상당히 많다. 우리가 가진 디지털 핀들의 개수가 몇 개 안남았기 때문에 당장은 연결을 할 수 없는 상황이다. 하지만 I2C LCD Interface를 사용하면 문제를 해결할 수 있다. 라이브러리를 추가해야 한다. 이미 만들어진 라이브러리를 사용할 것이기 때문이다. 개발 환경에서 툴→ 라이브러리 관리를 선택해서 LiquidCrystal I2C를 설치한다. I2C란? IIC라고도 부르며 아이-스퀘어-씨로 읽..
2022.11.04 -
#10/12 아두이노 로봇 HowTo
적외선 거리 측정 모듈 (HS-IRSM) 적외선 거리 측정 모듈은 다음과 같이 생겼다. 핀의 연결은 하나의 데이터 라인을 아두이노와 연결을 하고 전원을 각각 연결한다. LED가 두 개가 있어 한쪽에서 적외선을 내 보내고 한쪽에서는 받는다. 지금까지 썼었던 초음파 센서는 음파임에도 우리가 들을 수 없었고 적외선은 우리가 볼 수 있는 가시광선 영역에서 벗어나기 때문에 볼 수 없다. 하지만 적외선의 경우에는 디지털 카메라로 볼 수가 있다. 다음의 사진은 모듈을 로봇의 전면 하단부에 장착을 하고 전원을 준 상태로 사진을 찍은 것이다. 투명했던 LED 한쪽에서 빛이 나옴을 볼 수 있다. 이렇게 적외선을 사용하는 경우에는 카메라로 적외선이 나오는지 여부는 확인을 할 수 있다. 적외선을 많이 사용하는 것이 리모콘..
2022.11.04 -
#9/12 아두이노 로봇 HowTo
스텝 2. 업그레이드 1차로 자율 주행 로봇을 만들고 나서 아쉬운 점을 나열을 했었다. 센서의 한계로 인해서 장애물을 감지 못하여 예상했던 대로 움직이지 못하는 경우가 꽤나 있었다. 거실에서 자율 주행을 시작해 놓으면 한 동안 이리저리 왔다 갔다를 반복하다가 주방의 어딘가에서 아이방 어딘가에서 헛바퀴만 도는 경우가 많았다. 그래서 조금 업그레이드를 해 보려고 몇 가지 주문을 했다. 블루투스 모듈 (HC-06) 적외선 거리 측정 모듈 (HS-IRSM) LCD 모듈 자율 주행보다는 수동으로 조정을 하는 것도 재미있겠다 싶어 블루투스 모듈을 주문을 했다. 사실 리모콘 모듈을 가지고 먼저 테스트를 해 봤는데 실수로 리모콘 입력부(IR)가 쇼트가 나서 탄 이유도 있었지만 리모콘은 IR이 입력이 수신부 정면..
2022.11.04 -
#7/12 아두이노 로봇 HowTo
로봇 동작시키기 로봇의 동작은 전진, 후진, 좌회전, 우회전, 180도 회전 등으로 나눌 수 있을 것이다. L298N은 각도 조절을 할 수 없기 때문에 경험치에 의해서 각도를 조절해 보려고 한다. 우선 배터리의 전압에 따라서도 회전 속도가 달라지니 각자 테스트를 해 보는 수 밖에 없을 것이다. 모터의 회전 자체는 변경을 할 수 있는데 여기서는 속도는 기본으로 두고 진행을 할 예정이다. 100% 배터리가 충전이 되었을 때 테스트를 하는 것이 좋겠다. 배터리가 많이 닳아 있는 상태라면 100% 충전이 되었을 경우 예상보다 더 회전을 할 수 있을 것이다. void loop() { Robot_RightTurn(); Robot_LeftTurn(); Robot_180Turn(); } /* * 로봇을 180도 회전시..
2022.11.04 -
#6/12 아두이노 로봇 HowTo
초음파 센서 초음파 센서는 소리가 초당 340 미터를 움직이는 것을 이용하여 한쪽에서 초음파를 쏘고 다른쪽에서는 돌아온 초음파를 받아 두 신호간의 시간을 재서 거리를 측정하는 방식이다. 다른 방법으로 설명을 하자면 산에서 야호하고 소리치고 나서 메아리가 들려온 시간을 재면 거리를 알 수 있다는 것이다. 초음파 센서는 Echo Pin이 5v가 아닌 3v를 사용하기 때문에 저항을 달아줘야 한다고 한다. 그런데 마침 1k 저항이 없이 220k 4개를 연결을 해서 사용을 했다. 앞의 그림과 같이 순서대로 전원, 트리거, 에코, 접지의 순서대로 아두이노와 연결을 하면 되고 트리거와 에코는 각각 8, 9번 핀에 할당을 했다. 그리고 아직까지 사용되지는 않았지만 20 센티미터 내에 물체가 감지되..
2022.11.04 -
#5/12 아두이노 로봇 HowTo
서보모터 서보모터는 CPU의 명령에 따라 특정 각도만큼 움직이도록 하는데 사용이 되는 모터이다. 3개의 라인이 있으며 일반적으로 빨간선이 전원 검은색이나 갈색이 GND 그리고 노란색이나 주황색 선이 데이터 선으로 사용이 된다. 서보모터는 정면을 90도로 맞추어 0도에서 179도까지 숫자를 주면 각 각도별로 모터가 회전을 한다. 우리가 서보 모터를 이용하는 이유는 회전 축에 초음파 센서를 부착을 하기 위함이다. 일정 각도마다 회전을 하면 초음파 센서가 거리를 측정하고 측정된 거리를 가지고 전진을 할 것인지 후진을 할 것인지를 판단하는 기능을 넣고자 한다. 서보모터의 데이터 라인은 아두이노의 6번 핀에 연결을 했다. 연결을 한 사진은 다음과 같다. 서보 모터를 사용하기 위해서는 서보모터 제..
2022.11.04 -
#4/12 아두이노 로봇 HowTo
함수를 만들어보자 앞에서 loop안에 로봇을 전진시키는 코드 네 줄을 넣어서 동작을 시켰다. 그런데 로봇은 전진 뿐만 아니라 후진, 좌회전, 우회전, 멈춤이 추가로 필요할 것이다. 그런데 그 때마다 4줄씩 코드를 넣어야 한다. 그리고 digitalWrite 함수에 HIGH 또는 LOW를 넣어야 하는데 나중에 코드를 보면 이해하기가 어렵다. D1과 D2에 HIGH를 넣어야 멈춤이고 HIGH, LOW를 넣으면 전진이라는 것을 외우고 있지 않은 이상 코드를 이해하기 쉽지 않다. 그래서 각각 전진, 후진, 멈춤, 좌회전, 우회전의 함수를 만들어 해당 함수를 호출하고자 한다. 디지털 포트 번호를 선언한 다음에 함수 다섯개를 선언을 했다. 이것은 이러한 함수가 있다고 선언을 해 주는 것이며 뒤에서 함수의 동..
2022.11.04 -
#3/12 아두이노 로봇 HowTo
스텝 1. 로봇 만들기 어떤 로봇을 만들까? 모터의 제어를 이용해 두 개의 바퀴를 움직이고 초음파 센서를 이용해서 앞의 장애물을 피해서 주행하는 로봇을 만들 예정이다. 필요한 준비물은 아두이노 우노 보드 이외에 다음과 같다 - 모터와 바퀴 각각 4개 - 서보 모터 (SG90) - 초음파 센서 (HC-SR04) - 모터 드라이브 컨트롤러 (L298N) - 1k, 2k 저항 및 470uF 25V Capacitor 각 1개 - 18650 배터리 2개와 배터리 홀더 - PCB 지지대 볼트 - 듀퐁 케이블 - 아크릴 (로봇의 몸통의 재료) 모터 동작시키기 모터는 3V로 동작을 하고 전원의 방향을 바꾸면, +와 -의 연결을 거꾸로 하면 회전 방향도 바뀐다. 여기서는 모터 드라이브라는 것을 사용을 ..
2022.11.04 -
#2/12 아두이노 로봇 HowTo
IDE 설치와 기본 설정 아두이노 홈 페이지에서 Software → Downloads로 들어가면 아두이노 IDE를 다운로드 할 수 있는 링크를 찾을 수 있다. 윈도우를 사용하고 있기 때문에 “Windows app Requires Win 8.1 or 10”를 선택을 했다. 페이지가 넘어가면서 “Just Download”나 기부와 함께 다운로드 할 수 있는 “Contribute & Download”를 볼 수 있다. “Just Download”를 선택하면 Microsoft Store로 연결이 되고 무료 설치를 클릭하면 IDE가 자동으로 설치가 된다. 설치된 Arduino IDE를 선택하면 다음과 같은 IDE 창을 볼 수 있다. 아두이노를 사용하게 되면 용도에 따라서 UNO 보드 이외에 다른 보드들도 사..
2022.11.04 -
#1/12 아두이노 로봇 HowTo
스텝 0. 아두이노 개발 환경 아두이노를 이용해서 자율 주행 로봇을 만든다. 아두이노 우노, 모터 두 개, 초음파 센서와 서보 모터를 이용한다. 초음파 센서로 거리를 측정하고 물체가 감지되면 방향을 바꾸어 이동을 한다. 아두이노란? 아두이노(Arduino)란 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드와 관련 개발 도구 및 환경을 말한다. 2005년 이탈리아의 IDII(Interaction Design Institutelvera)에서 하드웨어에 익숙지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있게 하려고 고안되었다고 한다. (위키백과) 아두이노를 이용해서 센서나 모터 혹은 LED 등을 제어할 수 있어 연결된 다양한 센서나 모터 등의 상호 작용을 하는 ..
2022.11.04