지난학기 시스템 프로그래밍 실습에 대해 수강하였었다. 시스템 프로그래밍 실습에서 라즈베리파이 실습을 진행하였는데 이때 비슷한 마이크로 컨트롤러인 아두이노에 대한 내용이 자주 생각이 났었다. 라즈베리파이의 경우 전공 필수 수업으로 다룰 수 있으나 라즈베리 파이의 경우 기기가 비싸 항상 회로를 연결할때마다 혹시 합선이 되어 기기가 고장나면 어떡하지라는 생각을 하였다.
오픈 소스에 대해 생각을 하면 항상 가장 먼저 생각나는 프로젝트는 아두이노였다. 처음 코딩을 접하게 된 계기가 아두이노였어서 아두이노를 가지고 다양한 프로젝트도 해보고 마이크로컨트롤러에 큰 관심을 갖게되는 계기가 되었다.
아두이노를 더 잘 사용했다면 자신감 있게 회로를 구성할 수 잇지 않았을까 라는 생각을 하였고 아두이노에 대해 기초적인 내용을 잘 안다 센서에 대한 기본적인 지식을 습득하고 회로에 대한 지식을 습ㅂ득하면 좋을것 같아 만들게 되었다.
이러한 아두이노 프로젝트는 많은 사람들이 알고 있지만, 아두이노를 하기 위해서는 보드, 점퍼선, 다양한 센서 등 많은 준비물을 필요로 한다. 이를 보다 편하게 사용할 수 있고 접근을 더 쉽게 한다면 마이크로 컨트롤러에 대한 관심이 많아지고, 더 다양한 프로젝트가 생길 수 있지 않을까 라는 생각이 들었다.
초기 접근이 어려운 아두이노에 대해 설명하고 시뮬레이션에 대하여 설명하면 좋을것 같다고 생각하여 **"아두이노 기초 및 실습"** 이라는 주제를 선정하게 되었다.
## 프로젝트 과정에서 고려한 점
### 시뮬레이션
평소 아두이노를 사용할때 직접 보드와 점퍼케이블, 센서를 이용하여 회로를 작성하였다. 그러나 이번 튜토리얼을 만들때 케이블을 연결하고 센서를 연결하는 과정을 하나하나 보여주기 어려울것 같아 어떻게 하면 좋을지 생각하게 되었다.
원래 아두이노를 이용하여 개발하는 과정에서는 항상 보드, 케이블, 센서를 이용하여 직접 회로를 구상하고 납땜 등을 하며 프로젝트를 진행하였다.
그러나 이러한 점이 가장 아두이노를 접근하기 어려운 이유라고 생각하여 다른 방법을 생각해 보던 중 시뮬레이터를 생각하게 되었다.
아두이노를 실행할 수 있는 시뮬레이터를 찾아보던 중 AUTODESK사의 Tinkercad라는 사이트를 알게되어 시뮬레이터로 시연을 하면 좋을것 같다고 생각하였다.
다양한 센서, 모터, 마이크로 컨트롤러 가 존재하기 때문에 혹시나 실물 컨트롤러가 없어도 간단한 시뮬레이션을 위해서 사용하기 좋았다.
### 라이브러리 설치 및 활용방안
라이브러리를 설치하고 활용하는 과정을 자세히 적어야 할지 고민되었다. 라이브러리를 통한다면 더 다양한 실습이 가능하고 실제 시제품에서 활용할만한 센서를 다양하게 사용가능하다.
하지만 기본적인 튜토리얼상 ide의 구성요소와 간단한 실습을 진행하게 되면 시간이 부족할것 같아 간단히 설치 방법에 대해서만 설명을 적었다.
설명을 작성한 이유는 실제 학원에서 센서를 활용할때 라이브러리 설치 방법을 헷갈린 경우가 많았고 사용자 라이브러리의 경우 설치를 잘 못하는 모습은 본적이 있어 추가하면 좋을것이라 생각하였다.
설명을 작성한 이유는 실제 다양한 시제품, 프로젝트를 하다보면 꼭 필요로하는것이 디스플레이 모듈이다. 이때 디스플레이 모듈의 경우 라이브러리 설치가 필수적인데 특히 사용자 라이브러리를 설치할때 어떻게 설치하는지 모르는 친구들이 많아서 아두이노를 접할때 금방 포기하는 요소가 되었기 때문에 이를 방지하고자 간단히 설명을 추가하였다.
### 아두이노 문법
사실 아두이노 문법은 정말 다양한 문법, 함수들이 존재한다. 그러나 기본적인 `if``for`와 같은 c문법의 경우 설명해줄 필요가 없다고 느꼈고 대신 `pinMode`, `digitalWrite`와 같이 이후 실습에 꼭 필요하고 자주 쓰이는 요소만 설명할수 있도록 하였다.
## 느낀점
프로젝트를 하면서 내가 알던 아두이노에 대해 더 자세하게 찾아보고 문법에 대해 설명하고 시뮬레이션으로 회로도를 그려보면서 두렵지 않게 회로를 그려볼 수 있었다.
시뮬레이션에서 처음 회로를 그렸을 때 led가 터지는 액션이 발생했는데 만약 실제로 연결한 과정에서 led에 불이 들어오지 않았다면 당황했을것 같다. 시뮬레이션을 통해서 한번 코드를 확인하고 회로를점검하는 과정을 통해 앞으로도 이 시뮬레이션으로 회로를 한번 점검하는 습관을 들일 수 있을것 같다.
\ No newline at end of file
설명 영상을 준비하기전 미리 시뮬레이션에서 회로를 그렸을 때 led가 터지는 액션이 발생했는데 만약 실제로 보드에 연결한 과정이었다면, led에 불이 들어오지 않았다면 당황했을것 같다. 시뮬레이션을 통해서 한번 코드를 확인하고 회로를점검하는 과정을 통해 앞으로도 이 시뮬레이션으로 회로를 한번 점검하는 습관을 들일 수 있을것 같다.