본문 바로가기

반응형

메이킹

심장박동 센서 활용하기 심장 박동 센서(EKG Sensor : Electrocardiography Sensor)는 심장이 박동할 때 생기는 혈류의 변화를 이용해 심박수를 체크하여 동물의 심장 박동을 측정하는 센서입니다. 주로 모세혈관이 많이 분포 되어 있는 손끝이나 귀 주변 피부에 센서를 접촉하여 심박수를 측정합니다.동작원리는 심장 박동 시 혈류가 증가하면 반사되어 돌아오는 빛의 양이 줄어들며, 혈류의 양이 적어지면 반사되어 돌아오는 빛의 양이 늘어나게 되어 Detector로 들어온 빛의 양으로 심장 박동수를 측정하게 되는 것입니다. 참고사이트Heartbeats in Your Project, Lickety-Split ♥ – World Famous Electronics llc. (pulsesensor.com) Heartbeats.. 더보기
ESP32 와 ESP8266 차이점 비교 아두이노를 활용한 프로젝트를 진행하다보면 네트워크의 필요성을 느끼게 됩니다. 그래서 오늘은 다양한 보드 중에서 IoT (Internet of Things) 분야의 DIY 프로젝트에 가장 많이 사용되는 ESP32와 ESP8266보드에 대해 알아보겠습니다.이 보드들은 가격이 저렴하고 Wi-Fi 모듈을 지원하며 GPIO뿐만 아니라 SPI, I2C, UART 등과 같은 다양한 프로토콜을 지원하기 때문에 활용도가 매우 높아 IoT프로젝트를 만들 때 사용하기 편리합니다.ESP32 ESP8266 ESP32 vs ESP8266ESP32는 ESP8266 후속 제품으로 CPU 코어, 빠른 Wi-Fi, 더 많은 GPIO를 추가하고 Bluetooth 4.2 및 Bluetooth low energy를 지원합니다. 또한 터치 센.. 더보기
Hand Gesture로 아두이노 제어하기(LED 밝기 제어) 저번 시간에 배운 MediaPipe를 활용한 프로젝트 수업입니다. 1) MediaPipe를 이용한 손가락 제스처에 따른 크기 조절 - 엄지 손가락(4번)과 두번째 손가락(8번)을 좁혔다가 벌렸다 하는 제스처에 따라 두 손가락 끝의 점의 길이를 측정하여 화면에 출력해주는 소스코드입니다. - Vscode를 실행하고 'Open Folder'(폴더열기)를 선택하여 'ArduinoHandgesture'폴더를 새로 만들고 그 안에 'HandGestureVolume.py' 파일을 새로 생성합니다. 소스코드 import cv2 import mediapipe as mp import pyautogui x1 = y1 = x2 = y2 = 0 webcam=cv2.VideoCapture(0) my_hands = mp.solut.. 더보기
Mediapipe로 HandTracking 하여 LED 제어하기 MediaPipe는 구글에서 개발한 오픈 소스 라이브러리로, 다양한 운영체제와 프로그래밍 언어를 지원하며, API를 통해 쉽게 사용할 수 있습니다. 또한 이미지와 실시간 비디오 처리가 가능하며 계속해서 개발이 이루어지고 있어 다양한 분야에서 활용도가 높아지고 있습니다.  아래 링크를 눌러 해당 사이트로 이동하면 다양한 데모를 볼 수 있고 관련된 프로젝트의 내용을 볼 수 있으니 참고하시기 바랍니다.https://developers.google.com/mediapipe MediaPipe  |  Google for DevelopersAn open source, cross-platform, customizable ML solution for live and streaming media.developers.goo.. 더보기
4x4 키패드 활용하기 키패드는 여러 개의 스위치들이 반복적으로 나열된 것으로 전자식 잠금장치, 통신장치 등에 많이 사용되며 단자의 개수는 행(row)과 열(column)의 합이 됩니다. 여기서는 4×4 키패드를 사용하므로 단자의 개수는 4+4=8이 됩니다. 두이노와 키패드의 단자는 1:1로 연결하면 되는데 아래의 회로도를 참고하여 연결하시면 됩니다. 1) 키패드 번호 출력하기 회로도 라이브러리 설치하기 아두이노 메뉴: 스케치 > 라이브러리 포함하기 > 라이브러리 관리… 소스코드 #include const byte ROWS = 4; //four rows const byte COLS = 4; //four columns //define the cymbols on the buttons of the keypads char hexaKe.. 더보기
DS1302 RTC(Real Time Clock) DS1302는 댈러스가 출시한 슬라이딩 충전시계 칩으로, 매우 낮은 전력으로 작동하도록 설계되어 1µW 미만의 데이터와 클럭 정보를 유지할 수 있습니다. DS1302는 RTC(Real Time Clock) 시간을 저장하고 출력하는 장치로, 일반적인 디지털 시계 등에 많이 사용됩니다. DS1302는 CR2032 건전지를 사용해 전력을 공급받습니다. 배터리의 수명이 끝났거나 배터리가 모듈에서 분리되는 경우 DS1302 칩에 기록된 시간은 초기화(리셋)됩니다. DS1302를 사용하려면 라이브러리를 설치 및 추가해야 합니다. 1) 현재 시간 설정하여 출력하기 - RTC에 현재 시간을 설정하여 시리얼 모니터에 출력해 보겠습니다. 회로도 - 라이브러리 설치하기 : 첨부파일을 다운로드한 후 설치합니다. - 스케치->.. 더보기
조이스틱 활용하기(LED 제어하기) 조이스틱 모듈은 방향키를 담당하는 것으로 보통 게임을 할 때 컴퓨터 커서의 방향을 쉽게 움직이기 위한 포인팅 장치로 사용됩니다. 사물을 이동시키는 입력장치로 사용 가능하며, 3개의 축(X,Y,Z)으로 이루어져 있습니다. 조이스틱 모듈에는 VCC, GND, VRX, VRY, SW 총 5개의 핀이 있으며 두 개의 축만 사용할 때는 VRX, VRY를 아날로그 핀에 연결하고, SW를 디지털 핀에 연결해 스위치로 사용하면 됩니다. 하지만 X, Y, Z 세 개의 축을 모두 사용할 때는 VRX, VRY, SW를 모두 아날로그 핀에 연결합니다. 여기서는 두개의 축만 사용하기 때문에 VRX, VRY를 아날로그 핀에 연결하고, SW를 디지털 핀에 연결해 스위치로 사용하겠습니다. ​ 1) 조이스틱의 좌표값 찾기 const .. 더보기
openCV를 활용하여 아두이노 제어하기(얼굴인식 도어락) openCV는 오픈소스 컴퓨터비전 라이브러리 중 하나로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 두고 있습니다. Windows, Linux, macOS, IOS, Android 등 다양한 플랫폼을 지원합니다. 영상처리를 대중화시킨 1등 공신으로 사실상 영상 관련 라이브러리로서 표준의 지위를 가지고 있어 openCV로 웬만한 영상 처리는 가능하다고 할 수 있습니다.여기서 자세한 원리는 다루지 않지만 시간을 두고 공부해 볼 것을 권장합니다. 1) 얼굴인식- Visual Studio Code 를 실행하고 File->Open Folder메뉴를 선택합니다.바탕화면에 작업폴더 'Arduino_Face' 만들고 새로운 파일 'FaceDetect.py' 를 만들어 아래의 소스코드를 넣고 실행시킵니다.import .. 더보기
아두이노와 파이썬 연동하기 1) VScode 설치하기- 설치파일 다운로드 하기 : https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, WindowsVisual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.code.visualstudio.com - 윈도우즈용으로 다운로드 하여 설치합니다.. 더보기
RFID 모듈 활용하기(도어락 만들기) RFID는 Radio Frequency Identification의 약자로 무선 주파수를 이용하여 RFID태그와 리더기 간에 데이터를 교환하는 장치입니다. NFC통신 방식을 사용하며 13.56MHz의 주파수 대역을 사용하여 10cm이내 가까운 거리의 비접촉 통신으로 작동합니다. 보통 우리가 실생활에 자주 사용하는 교통카드, 신분증, 출입문 카드 등에 사용되고 있습니다. 여기서 사용하는 RC522모듈은 RFID를 읽고 기록하는 본체와 RFID 고유 데이터가 내장된 카드키와 열쇠고리가 포함되어 있습니다. 동작전압 : DC 3.3V 동작전류 : 13~26 mA 동작주파수 : 13.56MHz 1) 카드 고유번호 읽기 회로도 소스코드 스케치-> 라이브러리 포함하기->라이브러리 관리 'MFRC522' 검색하여 설치.. 더보기
8x8 도트 매트릭스( MAX7219 ) 활용하기 도트매트릭스는 Matrix(행렬)형태로 도트(Dot)모양의 LED를 연결한 제품입니다. 각 도트의 LED를 제어하여 어떤 모양이나 글자를 나타낼 수 있습니다. 여기서 우리가 사용할 LED는 "8x8 도트 매트릭스 LED"로 가로 8개, 세로 8개의 행렬로 이루어져 있으며, 총 64개의 LED(8x8)의 격자형으로 구성해 놓은 MAX8219 LED 장치입니다. 1) LED 하나씩 켜기 - 회로도 - 라이브러리 설치하기 - 소스코드 /* 8x8 도트매트릭스 연결한 후 각 LED를 제어해봅시다. */ #include "LedControl.h" // 아두이노보드의 12,11,10핀을 사용하고, 1개의 8x8 도트매트릭스를 제어하는 도트매트릭스 객체를 생성합니다. LedControl lc = LedControl(.. 더보기
FND 4 digit 7 segment 활용하기 FND는 Flexible Numeric Display(가변숫자표시기)의 약자이며 LED 표시기로 숫자를 표시하는 부품으로 흔히 세븐세그먼트(7-Segment)라고 합니다. 보통 아라비아 숫자만 표시하지만 오른쪽 아래에 소수점(DP)을 포함하고 있는 부품도 있습니다. 간단한 숫자를 나타내는데에 많이 활용되며 계산기, 엘리베이터, 전자시계에서 흔히 볼 수 있는 부품입니다. 7세그먼트는 발광할 수 있는 7개의 막대를 가지고 있으며 그 중 해당되는 막대를 조광하여 숫자를 표시하게되는데 다음은 일반적으로 각 숫자에 해당하는 7세그먼트 표시 장치의 모습입니다. Common핀으로 6, 8, 9 12번 핀이 사용되며 이 핀으로 4개의 FND 중 하나만 선택이 되어서 8개 LED 제어 신호를 받게 되고 1, 2, 3, .. 더보기
센서 활용하기-조도센서, 물높이 센서, 기울기 센서 등 아두이노에 사용되는 각종 센서의 활용 방법에 대해 알아보겠습니다. 준비물 - 아두이노 우노 - 브레드 보드 - 점퍼선 - I2C LCD - LED - 각종 센서 : 조도 센서, 물높이 센서, 기울기센서 등 1) 조도 센서 - 주변의 밝기를 측정하는 센서로 밝기에 따라 저항 값이 바뀌는 성질을 이용한 것이며 값은 0~1023사이 값으로 나타냅니다. 빛을 받으면 내부에 움직이는 전자가 발생하여 전도율이 변하는 광전효과를 가지는 소자를 사용하는데 황화카드뮴을 소자로 사용한 경우 Cds센서라고도 합니다. Cds센서는 작고 저렴해서 가장 많이 사용되고 있습니다. 극성이 없기 때문에 + -를 구분하지 않고 사용하며 저항값에 따른 전압을 신호로 입력받기 위해 10k 옴 저항과 함께 사용합니다. 무게 : 10 g. 크.. 더보기
I2C LCD 활용하기(센서 측정 값 나타내기-초음파센서, 온습도 센서) LCD에 센서의 값을 나타내는 방법을 알아보겠습니다. 준비물 - 아두이노 우노 - 브레드 보드 - 점퍼선 - I2C LCD - 각종 센서 : 초음파센서, 온습도 센서, 물높이 센서, 조도센서 등 1) LCD에 초음파센서 거리 측정값 나타내기 회로도 소스코드 #include // i2C 통신을 위한 라이브러리 #include // LCD I2C용 라이브러리 LiquidCrystal_I2C lcd(0x27,16,2); // 0x3F or 0x27 //고유주소가 LCD마다 다르기 때문입니다. #define trigPin 5 // 초음파 발신핀 #define echoPin 6 // 초음파 수신핀 long duration, distance; void setup() { pinMode(trigPin,OUTPUT); .. 더보기
I2C LCD 활용하기 LCD는 Liquid Crystal Display의 약자로 액정표시장치를 말합니다. 액정은 액체처럼 유체의 성질을 가지면서 고체처럼 광학적 성질을 가지는 물질을 말합니다. 또한 액정은 고체표면에 특정 방향으로 정렬할 수도 있어, 전기적 신호를 가해 원하는 방향으로 배열하여 빛을 투과시키거나 차단시킬 수 있기 때문에 디스플레이에 사용됩니다. LCD는 손목시계부터 TV에 이르기까지 광범위하게 활용되고 있습니다. LCD는 얇고 가벼우며 소비전력이 적지만, 어두운 곳에서는 잘 아보이는 단점이 있습니다. 우리는 I2C 방식의 LCD 를 사용합니다. I2C(Inter Integrated Circuit) 는 주변장치를 연결하기 위해 필립스사에서 개발한 직렬버스 통신방식이며, SCL,SDA 두 개의 신호로 통신이 가능.. 더보기
사운드 센서(소리감지센서)를 이용한 LED제어하기 오늘은 사운드 센서(소리 감지 센서)를 이용하여 LED를 제어해보겠습니다. 소리감지센서(사운드 센서)는 발생되는 소리를 마니크로 모아서 소리의 크기를 증폭시켜 출력합니다. 만일 소리가 잘 감지되지 않는다면 가벼너항을 통해 감도를 조절할 수 있으며 기본적으로 아날로그 전압 신호로 출력되기 때문에 아날로그핀(A0~A5)을 통해 측정해야합니다. 준비물 - 아두이노 우노 - 버튼 - 브레드 보드 - 점퍼선 - 소리감지 센서(사운드 센서) 1) 사운드 센서 연결하여 확인하기 회로도 소스코드 int soundSensor = A0; void setup() { Serial.begin(9600); pinMode(soundSensor, INPUT); } void loop() { int val=analogRead(sound.. 더보기
저항없이 버튼사용하기(아두이노 버튼 피아노 만들기) 오늘은 10k옴 저항없이 버튼을 활용하여 피아노를 만들어보겠습니다. 저번 시간에 배운 것 처럼 풀업저항을 활용해서 만들 수 있습니다. pinMode(pinNum, INPUT_PULLUP) 를 선언해서 저항없이 버튼을 사용할 수 있습니다. 준비물 - 아두이노 우노 - 버튼 - 브레드 보드 - 점퍼선 - 수동부저 1) 버튼으로 피아노 만들기(저항 없이 버튼 사용하기) 회로도 소스코드 #define NOTE_C4 262 #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_A4 440 #define NOTE_B4 494 #define NOTE_C5 523 const byte melodyPin[] =.. 더보기
틴커캐드(Thinkercad)로 회로 시뮬레이션하기 틴커캐드를 이용해 아두이노 회로를 그려 시뮬레이션해볼 수 있습니다. 아두이노 실습키트로 직접 회로를 만들어 보기 전에 시뮬레이터를 이용해 작동여부를 확인해 볼 수 있습니다. 1) 구글 아이디로 로그인하기 2) 내 디자인 +만들기에서 '회로(circuit)' 선택 3) 화면 오른쪽에서 starter Arduino 선택 4) 회로를 선택하여 시뮬레이션 버튼을 눌러 작동을 확인해본다. 5) 작동하고 있는 회로의 코드를 볼 수도 있으며 코드를 수정하여 작동여부를 확인할 수도 있습니다. 우리는 블록코드가 아닌 텍스트 코드로 작성하겠습니다. 6) 여러분도 앞으로 제작하게 될 회로를 시뮬레이터로 미리 그려보고 작동을 확인해보면 좋겠습니다. 더보기
저항없이 버튼 활용하기(LED, 모터 제어하기-선풍기 모듈) 오늘은 10k옴 저항없이 버튼을 활용하여 LED와 모터를 제어하는 방법에 대해 알아보겠습니다. 저항없이 버튼을 활용하는 방법은 풀업 저항을 활용하는 것입니다. 아두이노에서는 자체적으로 pinMode()에서 INPUT과 OUTPUT외에도 INPUT_PULLUP이라는 소프트웨어적인 풀업모드를 제공합니다. 따라서 pinMode(pinNum, INPUT_PULLUP) 를 선언해서 저항없이 버튼을 사용할 수 있습니다. 준비물 - 아두이노 우노 - LED - 버튼 - 브레드 보드 - 점퍼선 - 선풍기 모듈 1) 버튼으로 선풍기 모듈과 LED제어하기 회로도 소스코드 int pushButton = 7; int led=3; int fan_A=8, fan_B=9; int state=0; void setup() { Seri.. 더보기
푸시 버튼 활용하기(LED, 모터 제어하기-선풍기 모듈) 오늘은 푸시 버튼을 이용하여 LED와 모터를 제어하는 방법에 대해 알아보겠습니다. 푸시 버튼은 버튼을 누르는 동안 HIGH 값을 가지며 뗄 때 LOW 값을 갖습니다. 일반적으로 네 개의 단자(Terminal)로 구성되며 두 단자간 서로 연결되어 있습니다. 따라서 하나의 단자가 끊어지거나 고장이 나더라도 다른 단자로 충분히 동작 가능합니다. 푸시버튼을 누르면 1번, 2번, 3번, 4번이 모두 연결된 상태가 됩니다. 1) 푸시 버튼으로 LED제어하기 준비물 - 아두이노 우노 - 브레드 보드 - 점퍼선 - 푸시 버튼, LED 회로도 LED는 200옴, 버튼은 10k옴을 연결합니다. 소스코드 void setup(){ Serial.begin(9600); pinMode(13, OUTPUT); //led 핀 pinM.. 더보기

반응형