-
블루투스+아두이노의 기능을 가진 블루이노2로 LED 램프 제어하기프로젝트/블루이노 2017. 5. 7. 00:50반응형
하드웨어 공부도 해야된다는 생각이 계속들어서 하드웨어 쪽으로도 알아보던중에 블루이노2라는 제품을 알게되었습니다.
감사하게도 ICBanq 측에서 1차 제품제공 허가를, 2차적으로 성준님께서 제품을 공유해주신 덕분에 블루이노2 제품 사용기를 작성할수 있게 되었습니다.
하드웨어 공부는 처음인 만큼 아직까지 모르는 점들도 많고 예제들의 원리가 이해되지 않는 부분들도 많습니다.
아두이노 프로그램을 설치하는것부터가 난관이라 보드를 연결하고 파일을 컴파일하여 업로드하는것 조차 생소하였었는데요.
책자를 보면서도 옴의 법칙, 저항, 각종 물리 용어들또한 생소해서 막막한 느낌이 들었던것같습니다.
항상 공부하였던대로 부딪혀보면서 공부하려고 하고있습니다. 또한 여기서 다루는 제품이 블루투스 기능과 아두이노 기능을 합친 블루이노2 인만큼 블루투스를 활용하여 데이터를 긁어와 최종적으로는 웹으로 보여주는 웹 어플리케이션을 제작해보려합니다.
공부 방법은 1차적으로 책자를 따라가며 예제를 작성해보되 중간중간에서 응용 가능한 부분들이 보일경우에는 응용을 중점적으로 해보려고 합니다.
특히 최근에 IOT, 사물인터넷이 중요해지면서 우리주변에 있는 센서들이 얻는 데이터들을 처리하여 정보로 만들어내는 작업이 중요하다고 생각합니다.
예제의 경우에는 스타터 킷을 제공받았으므로 스타터킷의 예제를 따라가되 스탠다드 킷의 예제가 적용가능할경우 서로 코드를 비교해가면서 비교를 해볼 예정입니다.
최종적으로 컴파일하여 블루이노2에 업로드하였을때 작동하는 모습. LED 4개를 가지고 예제를 작성하였습니다.
기존의 예제에는 LED전구 하나로만 작동시키는 모습이었지만 카페를 뒤져보니 스탠다드, 스타터 킷의 예제가 조금 다르지만 몇몇 프로젝트들의 경우에는 서로 호환이 되었습니다.
LED 4개를 점등시키는 작업도 스탠다드 킷의 예제를 참고하여 업로드시켰습니다. 빵판에 LED전등을 꽂고 전선을 연결하는것이 눈이 아플정도였습니다. 다만 새로운 영역이다보니 정말 재미가 있더군요.
차례대로 LED전구가 점등되면서 순서대로 꺼졌다 켜졌다를 반복하는 모습입니다. 역시 처음공부하는 것이라 그런지 시행착오도 많았습니다만 마치 C를 공부할때 HelloWorld를 찍어본다는 생각으로 업로드하고 컴파일링 하였던것같습니다.
최종적으로 작성한 코드는 아래와 같습니다. 블루이노2 카페가 있으나 활성화되지가 않아 질문을 남겨도 감감무소식인 경우가 많더군요.. 정말 처음에 연결하여 컴파일링한 데이터를 블루이노2로 업로드 하는것이 힘들었던것같습니다.
기본적으로 아두이노 언어는 C언어와 매우 유사하지만 교육용으로 개발되어서 그런지 더 간단해보입니다. 아두이노의 라이브러리 자체는 C언어로 작성하여 IDE는 자바로 개발되어있는데 이것이 유명한 스캐치 프로그램입니다.
기본적으로 문법 구조는 아래와 같습니다.
프로그램은 3가지 요소 = 변수 + 구조 + 함수
12345void setup() {} + void loop () {}void setup() { // 여기에 있는 코드는 한번만 실행됨 }void loop() { // 여기에 ㅆ는 코드는 반복적으로 실행됨 }cs
내일에는 빵판이라고 불리는 브레드 보드에 대한 설명, 그리고 두번째 예제를 활용하여 버튼을 활용하여 LED를 점등시키는 것을 작동시켜볼것입니다. 그리고 프로그래밍의 기본 기초에 대해서 아주 간단히 알려드리려합니다.
여기에는 디지털 함수와 아날로그 함수가 포함되어있는데 이부분은 저도 생소한 부분이기에 전자회로 부분에 대해서 자세히 알아보도록 하겠습니다.
혹 블루이노2 예제를 진행하시거나 프로젝트를 진행하시는 도중에 막히시는 부분이 있다면 댓글로 질문해주시면 제가 아는 한에서는 최대한 답변을 드리도록 하겠습니다.
123456789101112131415161718192021222324252627282930313233// LED 4개 깜빡이기void setup() { // 한번 실행문pinMode(2, OUTPUT); // 2번 핀을 출력으로 설정pinMode(3, OUTPUT); // 3번 핀을 출력으로 설정pinMode(4, OUTPUT); // 4번 핀을 출력으로 설정pinMode(5, OUTPUT); // 5번 핀을 출력으로 설정}void loop() { // 반복 실행문digitalWrite(2, HIGH); // 2번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(2, LOW); // 2번 핀을LOW로 출력delay(200); // 200ms 동안 대기digitalWrite(3, HIGH); // 3번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(3, LOW); // 3번 핀을 LOW 로 출력delay(200); // 200ms 동안 대기digitalWrite(4, HIGH); // 4번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(4, LOW); // 4번 핀을 LOW 로 출력delay(200); // 200ms 동안 대기digitalWrite(5, HIGH); // 5번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(5, LOW); // 5번 핀을 LOW 로 출력delay(200); // 200ms 동안 대기digitalWrite(4, HIGH); // 4번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(4, LOW); // 4번 핀을 LOW 로 출력delay(200); // 200ms 동안 대기digitalWrite(3, HIGH); // 3번 핀을 HIGH로 출력delay(200); // 200ms 동안 대기digitalWrite(3, LOW); // 3번 핀을 LOW 로 출력delay(200); // 200ms 동안 대기}cs 반응형