본문 바로가기

반응형

아두이노

#인공지능 AI 활용 - 아두이노와 파이썬 연동하기 1) VScode(Visual Studio code) 설치하기- 설치파일 다운로드 하기 : 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 - 윈.. 더보기
[2단계-3] 아두이노->p5.js로 데이터(문자열)수신(가변저항, 버튼) 아두이노에서 가변저항의 센서값(0~255)을 문자열로 전송하고 p5.js에서 이를 수신하여 제어하는 과정입니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. (1) 가변저항 값 문자열로 송수신하기 - 아두이노 회로  - 아두이노 소스// 아두이노: 가변저항값 송신 1#define VARIABLE_R A0void setup() { pinMode(VARIABLE_R, INPUT); Serial.begin(9600);}void loop() { int value = analogRead(VARIABLE_R); Serial.println(value); delay(30); // 전송속도 지연}  - p5.js 소스(수신값 범위 0~1023)// p5.js: 가.. 더보기
[1단계-2] p5.js->아두이노로 정수(0~255) 데이터 송수신(LED, 서보모터) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. 1. 정수 송수신(0~255)- 1 바이트(0~255) 범위로 변하는 정수 값을 송수신해 봅니다. (1) LED 밝기 제어 - 마우스의 좌우 움직임에 따라 LED의 밝기를 제어해봅시다. - 아두이노 회로- 아두이노 코드// 수신값으로 LED 밝기 제어#define LED 6void setup() { pinMode(LED, OUTPUT); Serial.begin(9600);}void loop() { while (Serial.availa.. 더보기
[1단계-1] p5.js-> 아두이노로 정수(0,1) 데이터 송수신(LED, 부저, DC모터 작동) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다. 1. 정수 송수신- 1 바이트(0~255) 범위의 값 중 0, 1 값을 송수신해 봅니다. (1) LED 1개 동작 제어 - p5.js 캔버스에서 마우스를 클릭하여 LED가 점멸하도록 해봅시다. - 아두이노 회로- 아두이노 코드// 수신된 정수로 LED 점멸 제어#define LED 6void setup() { pinMode(LED, OUTPUT); Serial.begin(9600);}void loop() { while (Serial... 더보기
[2단계-1] 아두이노-> p5.js로 데이터(0, 1) 송수신 (버튼) 이제부터 아두이노에서 p5.js로 데이터를 송수신 하는 방법을 알아보겠습니다. 송수신하는 데이터의 종류는 정수, 문자열입니다. 먼저 정수를 송수신하는 방법에 대해 알아보겠습니다. => 먼저 p5.js 에디터에서 index.html에서 뒤에 붙여넣기 한 후  저장한다.1. 정수 송수신- 1 바이트(0~255) 범위의 값 중 0, 1 값을 송수신해 봅니다. (1) 푸시버튼 값을 수신하여 원의 색상 변경- 아두이노 회로 - 아두이노 코드(버튼을 누르면 원 색상 변경)// 푸시버튼값 송신#define BUTTON 2void setup() { pinMode(BUTTON, INPUT); Serial.begin(9600);}void loop() { int value = digitalRead(BUTTON); .. 더보기
ESP32 연결 시 포트 인식 못할 때 해결방법 ESP32 포트 인식 못하는 문제 ESP32를 연결하고 포트를 찾을 때 인식을 못한다면 연결된 USB가 표시되지 않는 경우가 대부분 인데, 이유는 USB가 제대로 인식되지 않았기 때문입니다. 이 때 장치 관리자를 열어보면 포트에 아래 그림처럼 포트번호가 인식되야 프로그램 업로드가 가능합니다. 해결방법은 ■ USB 드라이버 다운로드다운로드 링크 : https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads  CP210x USB to UART Bridge VCP Drivers - Silicon LabsThe CP210x USB to UART Bridge Virtual COM Port (VCP) drivers are requir.. 더보기
#1편-ESP32 활용 온도-습도 알림기 만들기(ILI9341, DHT11활용) ESP32보드를 활용하여 날씨 정보를 알려주는 웨더스테이션을 만들어보겠습니다. 1. 준비물- ESP32- ILI9341- 미니 브래드보드 - 온습도 센서(DHT11)2. ESP32 시작하기  https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json그림과 같이 입력하고 "확인"을 클릭 합니다 - 툴-보드메니저 선택  - "esp32"를 입력하고 설치  - ESP32 Dev Module선택  3. ESP32 와 ILI9341 연결하여 기상정보 표시하기#include "SPI.h"#include "Adafruit_GFX.h"#include "Adafruit_ILI9341.h"#include "Wi.. 더보기
심장박동 센서 활용하기 심장 박동 센서(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를 지원합니다. 또한 터치 센.. 더보기
#인공지능 AI 활용 - Hand Gesture로 아두이노 제어하기(LED 밝기 제어) 저번 시간에 배운 MediaPipe를 활용한 프로젝트 수업입니다. 1) MediaPipe를 이용한 손가락 제스처에 따른 크기 조절- 엄지 손가락(4번)과 두번째 손가락(8번)을 좁혔다가 벌렸다 하는 제스처에 따라 두 손가락 끝의 점의 길이를 측정하여 화면에 출력해주는 소스코드입니다.- Vscode를 실행하고 'Open Folder'(폴더열기)를 선택하여 'ArduinoHandgesture'폴더를 새로 만들고 그 안에 'HandGestureVolume.py' 파일을 새로 생성합니다. 소스코드import cv2import mediapipe as mpimport pyautoguix1 = y1 = x2 = y2 = 0webcam=cv2.VideoCapture(0)my_hands = mp.solutions.han.. 더보기
조이스틱 활용하기(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 .. 더보기
#인공지능 AI 활용 - openCV를 활용하여 아두이노 제어(얼굴인식 도어락) openCV는 오픈소스 컴퓨터비전 라이브러리 중 하나로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 두고 있습니다. Windows, Linux, macOS, IOS, Android 등 다양한 플랫폼을 지원합니다. 영상처리를 대중화시킨 1등 공신으로 사실상 영상 관련 라이브러리로서 표준의 지위를 가지고 있어 openCV로 웬만한 영상 처리는 가능하다고 할 수 있습니다.여기서 자세한 원리는 다루지 않지만 시간을 두고 공부해 볼 것을 권장합니다. 1) 얼굴인식- Visual Studio Code 를 실행하고 File->Open Folder메뉴를 선택합니다.바탕화면에 작업폴더 'Arduino_Face' 만들고 새로운 파일 'FaceDetect.py' 를 만들어 아래의 소스코드를 넣고 실행시킵니다.import .. 더보기
사운드 센서(소리감지센서)를 이용한 LED제어하기 오늘은 사운드 센서(소리 감지 센서)를 이용하여 LED를 제어해보겠습니다. 소리감지센서(사운드 센서)는 발생되는 소리를 마니크로 모아서 소리의 크기를 증폭시켜 출력합니다. 만일 소리가 잘 감지되지 않는다면 가벼너항을 통해 감도를 조절할 수 있으며 기본적으로 아날로그 전압 신호로 출력되기 때문에 아날로그핀(A0~A5)을 통해 측정해야합니다. 준비물 - 아두이노 우노 - 버튼 - 브레드 보드 - 점퍼선 - 소리감지 센서(사운드 센서) 1) 사운드 센서 연결하여 확인하기 회로도 소스코드 int soundSensor = A0; void setup() { Serial.begin(9600); pinMode(soundSensor, INPUT); } void loop() { int val=analogRead(sound.. 더보기
틴커캐드(Thinkercad)로 회로 시뮬레이션하기 틴커캐드를 이용해 아두이노 회로를 그려 시뮬레이션해볼 수 있습니다. 아두이노 실습키트로 직접 회로를 만들어 보기 전에 시뮬레이터를 이용해 작동여부를 확인해 볼 수 있습니다. 1) 구글 아이디로 로그인하기 2) 내 디자인 +만들기에서 '회로(circuit)' 선택 3) 화면 오른쪽에서 starter Arduino 선택 4) 회로를 선택하여 시뮬레이션 버튼을 눌러 작동을 확인해본다. 5) 작동하고 있는 회로의 코드를 볼 수도 있으며 코드를 수정하여 작동여부를 확인할 수도 있습니다. 우리는 블록코드가 아닌 텍스트 코드로 작성하겠습니다. 6) 여러분도 앞으로 제작하게 될 회로를 시뮬레이터로 미리 그려보고 작동을 확인해보면 좋겠습니다. 더보기
푸시 버튼 활용하기(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.. 더보기
부저 활용하기(버튼으로 제어-버튼 피아노) 오늘은 부저를 제어하는 방법에 대해 알아보겠습니다. 피에조 부저(Piezo Buzzer)는 손톱 사이즈만 한 작은 스피커로 'Piezo'란 단어는 그리스어의 "누른다"라는 뜻을 가진 'Piezein'에서 유래된 말로 압력이 가해지면 전기가 발생한다는 뜻입니다. 이것을 우리말로 바꾼 것이 바로 '압전효과'입니다. 이 압전효과를 이용하여 모듈 안쪽에 얇은 판을 사용하여 미세한 떨림을 만들어내 소리를 발생시킬 수 있는 것입니다. 그렇기 때문에 아두이노의 피에조 부저는 디지털 핀의 전압을 매우 짧은 시간 안에 바꾸어가며 주파수에 맞는 소리를 낼 수 있도록 PWM 방식으로 작동됩니다. ​ ​ 부저는 능동형 부저와 수동형 부저로 나누어져 있는데 차이점은 능동형 부저는 전원이 들어오면 그냥 소리가 나는 것이고 수동형.. 더보기
서보 모터 제어하기(가변저항 이용) 오늘은 서보모터를 제어하는 방법에 대해 알아보겠습니다. 서보모터는 회전이 정해져 있어서 정확한 움직임이 필요한 경우에 사용하는 모터입니다. 서보라는 말 그대로 사용자의 명령에 따라 움직이는 모터로 사용자가 원하는 각도, 속도로 움직일 수 있다. 서보모터는 로봇, 드론, CCTV, 장난감 등 다양한 분야에서 광범위하게 쓰이고 있습니다. 여기서 사용하는 서보모터는 SG90이며 저렴하여 학습용으로 많이 사용되며 0~180도까지만 회전이 가능합니다. 준비물 - 아두이노 우노 - 서버모터 : SG90 회로도 소스코드 #include //Servo 라이브러리를 추가 Servo servo; //Servo 클래스로 servo객체 생성 int value = 0; // 각도를 조절할 변수 value void setup().. 더보기
아날로그 핀 사용하기(가변저항 이용) 오늘은 아두이노 아날로그 신호 입출력에 대해 알아보겠습니다. 디지털 핀에서는 디지털 신호 입출력이 모두 가능했던 반면, 아날로그 신호는 입력과 출력이 서로 다른 핀을 사용합니다. 입력은 ANALOG IN 문구가 표시된 A0~A5 총 6개에서 가능하고, 출력은 디지털핀 숫자 옆에 '~'가 붙은 PWM핀에서 가능합니다. PWM은 Pulse Width Modulation의 약자로 진동의 폭을 조절한다는 의미입니다. 다시 말하면 출력할 수 있는 전압값을 기준으로 이를 일정한 비율(duty)동안에는 High로 유지하고 나머지는 Low값으로 출력하여 아래와 같은 사각파의 출력을 만들어 낼수있다. 출처 : https://ko.wikipedia.org/wiki/%ED%8E%84%EC%8A%A4_%ED%8F%AD_%EB.. 더보기
초음파 센서(HC-SR04) 활용하기 오늘은 초음파센서와 LED를 제어해보겠습니다. 준비물 - 아두이노 우노 - 저항 : 220옴 - LED 소자 - 초음파 센서 : 귀에 들리지 않을 정도의 높은 주파수(약 20MHz)소리인 초음파를 발신 및 수신할 수 있는 센서이며 초당 340m의 속도를 갖고 있습니다. 주로 거리측정, 사물감지 등에 많이 활용됩니다. 초음파센서는 VCC와 GND핀을 통해 5V, 15mA의 전원을 입력받아 작동하여 Trig핀에서 초음파를 발신하고 발신된 초음파가 장애물에 부딪혀 수신부에 돌아오면 Echo핀에서 5V를 출력합니다. 이러한 원리로 거리=시간 X 속도 의 식을 이용하면 거리를 측정할 수 있습니다. VCC : 5v 전압 연결 GND : 그라운드 핀 Trig : 초음파 발신 Echo : 초음파 수신 거리 구하는 공식.. 더보기
미세먼지 측정하기-아두이노, 미세먼지센서, LCD, 온습도센서 아침에 일어나면 일기예보를 제일 먼저 보게 되는 요즘입니다. 아두이노와 센서를 이용해 미세먼지에 따른 공기의 질을 측정해보고 교실 창문을 여닫는 환기라도 잘 시켜보려는 의도에서 제작하게 되었습니다. 준비물 - 아두이노 우노 - 미세먼지 측정센서(GP21Y1010AU0F) : 시중에 팔고 있는 미세먼지 센서는 브레드보드에 연결하기 조금 불편하기 때문에 쉽게 연결할 수 있도록 GP2용 어댑터를 사용하였다. - 3색 RGB LED : 미세먼지의 농도에 따른 공기질의 상태를 색깔로 표현하기 위해 필요하다. - 온습도센서 : DHT11 또는 DHT22 ( 센서에 따라 아두이노 코딩이 조금 달라지지만 많이 바뀌진 않음) - 종이박스 : 교실 앞에 두고 반친구들이 모두 볼 수 있도록 외관에 조금 신경씀 회로도 소스코.. 더보기
아두이노 실습에 필요한 준비물을 알아보자 실습을 위해 아두이노 실습키트 또는 아두이노보드와 필요한 센서, 브레드보드, 점퍼선 등을 준비해주세요. 이제부터 센서를 활용하는 방법을 하나씩 소개하려고합니다. 인공지능과 피지컬컴퓨팅 과목에서 다루는 아두이노 우노보드와 다양한 센서를 이용한 실습을 통해 아두이노가 처음이신 분들도 쉽게 배울 수 있도록 쉬운 강좌로 진행할 예정이니 편하게 따라와 주세요! 아두이노 보드의 종류 아두이노 우노(Arduino Uno) : Uno는 가장 일반적으로 사용되는 Arduino 보드 중 하나입니다. ATmega328P 마이크로컨트롤러, 14개의 디지털 입력/출력 핀, 6개의 아날로그 입력, 16MHz 석영 크리스털, USB 연결 및 전원 잭이 특징입니다. 아두이노 나노(Arduino Nano) : Nano는 ATmega3.. 더보기
아두이노 프로젝트_04. 스마트 화분 아두이노 나노와 수분센서와 워터펌프를 이용해 스마트화분을 만들어보았습니다. 사무실에 스타벅스컵과 트레이가 차곡차곡 모아져 있어서 재활용으로 버리려다가 아두이노 만들 때 아주 요긴하게 쓰고 있습니다. 토마토와 바질 등 컵화분을 이용해 스마트화분을 만들어 보면 스마트팜의 원리도 이해하는 좋은 수업자료가 될거라 생각합니다. 수분센서가 감지하는 수분의 양에 따라 물이 자동으로 급수되도록 하는 것이 원리인데 수분센서를 꽂는 위치에 따라 값이 달라져서 여러번 테스트를 해야 값을 제대로 설정할 수 있습니다. [준비물] 아두이노 나노보드, 미니브레드보드, 펌프모터, 모터 드라이버, LCD, 수분센서, 점퍼선,투명컵, 종이 캐리어, 컵화분 [아두이노 회로] [아두이노 코딩] #include LiquidCrystal_I2.. 더보기
아두이노 프로젝트_03. 책상용 스타벅스 가습기 아두이노 나노와 스타벅스 컵을 재활용하여 책상용 가습기를 만들었습니다. 온습도센서를 달아서 작동하게 하면 더 효과적이겠지만 미관상 그냥 스위치로 작동하도록 하였고 다음번에는 온습도센서를 이용해 온도나 습도의 조건에 따라 작동하도록 업그레이드 시켜보겠습니다. [준비물] 아두이노 나노보드, 가습기모듈, 가습기 필터, 온습도센서, 리유저블컵, USB연결선, ​글루건 [아두이노 회로] 아두이노 가습기모듈은 타원형이 있는데 컵 안에 넣어야 하므로 사각형 모양의 가습기 모듈을 구매하여 제작했습니다. 온습도센서를 부착하여 온도와 습도에 따라 자동으로 작동하는 가습기를 만들려고 했으나 미관상 온습도센서를 부착하기가 쉽지 않아 그냥 스위치로 전원만 제어하는 것으로 만들어보았습니다. [아두이노 코딩] int water_p.. 더보기

반응형