RC카(9)
-
#12/12 아두이노 로봇 HowTo
최종 코드 /****************************************************** * AutoRobot * made by Sohyemini * 2020.10.04 ******************************************************/ #include #include #include #include /* * 두 개의 바퀴를 위한 디지털 Input/output D1에서 D4까지 선언 * D1, D2는 왼쪽 바퀴, D3, D4는 오른쪽 바퀴임 */ int LeftWheel_D1 = 2; int LeftWheel_D2 = 3; int RightWheel_D3 = 4; int RightWheel_D4 = 5; // 초음파 센서를 움직이기 위한 서보 모터 핀..
2022.11.04 -
#11/12 아두이노 로봇 HowTo
LCD 모듈 LCD 모듈은 로봇의 주행 성능과는 무관하지만 차량의 상태 정보를 나타낼 수 있고 어렵지 않게 구현을 할 수 있어 택했다. 1602 Character LCD로 16개 문자를 두 줄에 표시할 수 있는 저렴한 LCD이다. 앞의 사진에서 보는 바와 같이 연결해야 할 핀들이 상당히 많다. 우리가 가진 디지털 핀들의 개수가 몇 개 안남았기 때문에 당장은 연결을 할 수 없는 상황이다. 하지만 I2C LCD Interface를 사용하면 문제를 해결할 수 있다. 라이브러리를 추가해야 한다. 이미 만들어진 라이브러리를 사용할 것이기 때문이다. 개발 환경에서 툴→ 라이브러리 관리를 선택해서 LiquidCrystal I2C를 설치한다. I2C란? IIC라고도 부르며 아이-스퀘어-씨로 읽..
2022.11.04 -
#9/12 아두이노 로봇 HowTo
스텝 2. 업그레이드 1차로 자율 주행 로봇을 만들고 나서 아쉬운 점을 나열을 했었다. 센서의 한계로 인해서 장애물을 감지 못하여 예상했던 대로 움직이지 못하는 경우가 꽤나 있었다. 거실에서 자율 주행을 시작해 놓으면 한 동안 이리저리 왔다 갔다를 반복하다가 주방의 어딘가에서 아이방 어딘가에서 헛바퀴만 도는 경우가 많았다. 그래서 조금 업그레이드를 해 보려고 몇 가지 주문을 했다. 블루투스 모듈 (HC-06) 적외선 거리 측정 모듈 (HS-IRSM) LCD 모듈 자율 주행보다는 수동으로 조정을 하는 것도 재미있겠다 싶어 블루투스 모듈을 주문을 했다. 사실 리모콘 모듈을 가지고 먼저 테스트를 해 봤는데 실수로 리모콘 입력부(IR)가 쇼트가 나서 탄 이유도 있었지만 리모콘은 IR이 입력이 수신부 정면..
2022.11.04 -
#8/12 아두이노 로봇 HowTo
자동 주행 알고리즘 전원을 넣고 나면 장애물을 피해서 배터리가 다 닳을 때까지 계속 이동하는 로봇이다. 우리가 가지고 있는 정보는 초음파 센서로 들어오는 정보에 의존을 한다. 그래서 loop 함수를 다음과 같이 작성을 했다. 초반에도 설명을 한 바와 같이 loop 함수는 무한 반복이 되는 함수다. 그 무한 반복되는 함수가 아래의 20여줄의 함수이며 이 함수에 의해서 로봇은 장애물을 계속 피해가며 움직이게 된다. void loop() { Detect_Front(); // 정면 거리 측정 if(distanceFront > STOP_DISTANCE) // 정의된 거리보다 크면 앞으로 전진하고 물체 확인 { Robot_Go(); } else { // 정면의 거리가 정의된 거리보다 작을 경우 Detect_Ob..
2022.11.04 -
#7/12 아두이노 로봇 HowTo
로봇 동작시키기 로봇의 동작은 전진, 후진, 좌회전, 우회전, 180도 회전 등으로 나눌 수 있을 것이다. L298N은 각도 조절을 할 수 없기 때문에 경험치에 의해서 각도를 조절해 보려고 한다. 우선 배터리의 전압에 따라서도 회전 속도가 달라지니 각자 테스트를 해 보는 수 밖에 없을 것이다. 모터의 회전 자체는 변경을 할 수 있는데 여기서는 속도는 기본으로 두고 진행을 할 예정이다. 100% 배터리가 충전이 되었을 때 테스트를 하는 것이 좋겠다. 배터리가 많이 닳아 있는 상태라면 100% 충전이 되었을 경우 예상보다 더 회전을 할 수 있을 것이다. void loop() { Robot_RightTurn(); Robot_LeftTurn(); Robot_180Turn(); } /* * 로봇을 180도 회전시..
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