본문 바로가기

Arduino

립싱크로봇 제작 사운드 센서를 이용하여 립싱크 로봇을 만들어 보자구현방법1. 사운드 센서로 입력 받은 값에 따라 다른 입모양을 출력하는 립싱크 로봇을 만든다.- 기존의 shift register를 이용하는 대부분의 립싱크 로봇보다 코드가 짧고 회로가 단순한 립싱크 로봇을 구현한다. (본래에는 shift register를 사용하고자 했지만 후에 사용하지 않기로 결정했다)- 센서 입력값에 따라 로봇의 표정이 자연스럽게 변할 수 있도록 입력받은 센서값을 알맞게 변형 시킨다.- shift register를 사용하지 않음으로써 생기는 마지막 열의 지연 현상을 최대한 없애고 그에 따라 나오는 문제인 과도한 깜빡임 문제를 알맞게 해결한다.2. 아두이노를 이용한 아두이노 스피커를 만들어서 노래를 출력한다.-Free MP3 Wma Co.. 더보기
자이로 가속도 지자계 기압 10DOF 통합 센서 다루기 이번에 작업할내용은 MPU6050 + HMC5883L + MS5611 이 세개의 센서가 같이 이루어져있는 10개의 자유도를 갖는 통합 센서를 다루어볼 예정이다. 그전에 먼저 각각의 칩이 어떠한 기능을 하는지 부터 알아보자 먼저 MPU6050의 경우에는 두가지 종류가 있는데 이 통합 센서에는 두종류가 하나의 칩으로 합쳐져 들어있다. 이칩은 가속도와 각속도를 측정하는 칩으로 x,y,z축 각 3방향의 각속도와 가속도를 측정할수있어 총 6개의 자유도를 가지고 있다. HMC5883L같은 경우에는 지자계 센서인데 3개의 방향으로 지자계의 영향을 알아차릴수 있다. MS5611은 기압 센서로써 섭씨-45도부터 80도 사이의 범위에서 기압을 측정할수있는 센서이다. 지금까지 통합센서를 이루고 있는 기본적인 칩에대하여 살펴.. 더보기
Face-Tracking 기술 구현하기 작성자 : 김경만아두이노와 프로세싱을 이용하여 Face-Tracking 기술을 구현해 보자 1. 개요 최근 얼굴인식 기술이 많이 발전하면서 얼굴인식 기술을 응용한 기술도 많이 나오고 있습니다. 그 중 하나가 Face-Tracking 이라는 기술로 얼굴을 추적하는 기술인데 CCTV에 많이 사용되고 있습니다. 움직이지 않는 CCTV보다 Face-Tracking 이 가능한 CCTV가 더욱 많은 범위를 효율적으로 보여줄 수 있으며 얼굴을 정확히 화면에 담을 수 있기 때문인데요. 이렇게 응용이 되고 있는 Face-Tracking 기술을 직접 구현해보고 또한 딱딱하게 카메라만 있는 것이 아닌 로봇을 만들어 사람을 처다 보는 것 처럼 만든다면 더욱 의미 있을 것 같아 제작하게 되었습니다. 준비물 아두이노 기판, 브래.. 더보기
초음파 센서를 이용한 후진보조센서 만들기 초음파 센서를 이용해서 차량의 후진보조센서를 만들어 보자 1. 초음파 센서란?? 초음파 센서란 초음파 센서 내에 있는 파원에서 발사된 초음파 펄스가 측정물의 표면에서 반사되어 다시 초음파 센서로 되돌아올 때까지의 시간을 측정하여 측정 대상에 따른 정보를 얻는 방법을 사용 한다. 즉, 초음파를 송신 후 되돌아 올 때까지의 지연시간을 측정하는 방법을 사용 하는 것이다. 일반적으로 공기 중에서의 음속은 약 340m/s인 것을 이용하여 측정 시간의 반에 음속을 곱해서 거리를 알아낼 수 있다. 2. 아두이노와 초음파 센서를 이용한 거리측정 후진보조센서를 만들기 전 먼저 초음파 센서와 아두이노를 연동하는 법을 익혀보자. 아두이노에 사용할 초음파 센서 모델은 SRF05로 이 초음파 센서가 아두이노와 연결이 되는 모습.. 더보기
중력가속도 측정 실험기구 제작 포토인터럽터(GP1A57HRJ00F)를 이용해서 중력가속도를 측정해보자글쓴이 : 백동현 1. 포토 인터럽터란?[1]중력가속도를 측정하는 장치에 필요한 중요 부품은 포토인터럽터이다. Sharp사에서 만든 포토인터럽터를 이용해 제작하였다. 사용한 부품에 대한 상세정보를 알기 위해 제품명인 GP1A57HRJ00F로 검색해보기를 권장한다. 포토인터럽터는 크게 적외선 송신부와 수신부를 통해 물체의 통과여부를 판단하게 된다[2]. 물체를 감지할 수 있는 포토인터럽터로 중력가속도를 측정하고자 한다. 2. 중력가속도란?우리는 지구의 중력장 내에서 살아가고 있다. 즉, 중력이 삶에 영향을 미친다는 것이다. 중력은 쉽게 말하면 지구가 나를 잡아당기는 힘이다. 힘에는 가속도가 존재한다. 이때, 중력에서의 가속도가 중력가속도.. 더보기
[아두이노 기초편 3] 버튼 사용 + 가변저항 아두이노로 무엇인가를 입력시킬때 가장 기초로써 보편적으로 사용하는 스위치(버튼)과 가변저항을 사용하는 방법에 대하여 알아보려한다. 먼저 버튼을 다루어보려고 한다. 버튼을 사용하기 위해서는 풀업 저항과 풀다운 저항이라는 개념을 먼저 익혀야 하므로 풀업과 풀다운 저항에 대해 보자 .버튼이나 스위치 등의 전자적인 접촉이 발생하는 장치의 외부 입력을 받기 위해서는 digitalRead함수를 사용하여 그 상태를 알 수 있게 된다. 저항을 연결하지 않고 스위치의 입력을 그대로 받아서 처리하는 경우 그 값은 일정하지 않은 상태를 나타내게 되며 이는 회로의 불안전한 동작을 유발시키게 된다. 이러한 문제점을 방지하기 위하여 다음과 같은 풀업저항과 풀다운 저항을 연결하는 기법을 사용하는 것이다. 풀업 풀다운 저항에 대하여.. 더보기
[아두이노 기초편 5]프로세싱을 이용하여 조도센서값 시각화하기 작성자 : 김경만프로세싱을 이용하여 조도센서값 시각화하기 1. 개요 현재 밝음의 정도를 측정할 수 있는 조도센서를 이용하여 수치값만을 얻어내지 않고 수치값이 원의 반지름이 되도록 시각화시켜 밝기의 변화를 한눈에 보디 쉽게 합니다. 준비물 아두이노 기판, 브래드 보드, 조도센서, 10kΩ 저항 여기서 잠깐, 조도센서란? cds 센서라고도 불리는 조도센서는 황화카드뮴에 다리를 붙인 센서로서 어두운 곳에서는 잘 전류가 흐르지 않다가 가시광선이 닿으면 전류가 잘 흐르는 성질을 가지고 있습니다. 이 성질을 이용해서 어두운 곳에서는 높은 저항, 밝은 곳에서는 작은 저항을 가지고 있는 가변저항처럼 사용이 가능합니다. 2. Breadboard & Schematic 조도센서는 빛에 따라 저항값이 바뀌는 것을 이용해서 입.. 더보기
[아두이노 기초편 2]Arduino와 Processing을 연동해 RGB LED 제어하기 이번 글에서는 Arduino와 Processing을 연동하는 방법을 간단한 예제를 통해 알아보도록 하겠다. * Processing을 모르시는 분은 Processing 카테고리에서 먼저 소개를 읽고 이 글을 읽으시는 것을 권장합니다. 이번 글에서는 3색 LED를 이용하여 LED를 아두이노에서 무작위로 밝히고 이를 프로세싱에 표현하는 작업을 할 것이다. * 3색 LED 3가지 색을 한꺼번에 나타낼 수 있는 LED. R, G, B LED를 하나로 합쳐놓은 것으로 보면 된다. 사용 방법도 3개의 LED를 따로따로 사용할 때와 마찬가지로 R, G, B를 각각 밝히는 (+)극이 하나씩 있고 가운데 (-)가 하나 존재해 총 4개의 핀으로 이루어져있다. 1. Processing LED 모니터 만들기 아두이노는 컴퓨터와.. 더보기
[아두이노 기초편 1]LED제어 & 7-segment 작성자 : 김경만LED 제어 1. 개요 5개의 LED를 순서대로 켜거나 끔으로써 알고리즘을 사용하여 원하는 대로 LED를 제어합니다. 준비물 아두이노 기판, 브래드 보드, LED 5개, 220kΩ 저항 5개 여기서 잠깐, LED란? LED는 발광 다이오드를 뜻하는 말로 순방향으로 전압을 가했을 때 발광하는 반도체 소자입니다. PN접합 구조를 하고있으며 아두이노에서 사용할 때에는 2V의 전압을 필요로 하기 때문에 5V와 연결하여 사용시 꼭 220kΩ 안팎의 저항을 함께 연결해 주어야 합니다. 2. Breadboard & Schematic LED 5개는 아두이노의 입력핀과 연결합니다. 이때 주의해야 할 것을 LED의 입력핀과 연결된 방향이 다리가 길어야 합니다. 다리가 긴것은 +방향을 의미하며 결국 다리가 .. 더보기
First Arduino Code 1. 개요 - 프로젝트 설명 및 각종 부품 특성 설명 및 필요 부품 정리 2. Breadboard & Schematic - fritzing 을 이용한 회로 그리기 및 Schematic 첨부 3. Code -자신의 코드에 대한 설명 추가 4. Video - 동작 영상 추가 5. 결론 - 말 그래도 결론을 추가할 것. int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } 더보기