신설공대 비교과과정(기초공|전자공|기계시스템)

Slides:



Advertisements
Similar presentations
Hamster Manual 정보통신과 이우형. 목차 세팅 햄스터 하드웨어 - Model - I/O -Sensor 센서별 예제.
Advertisements

Youn-Hee Han, In-Seok Kang {yhhan, Laboratory of Intelligent Networks Advanced Technology Research Center Korea University of Technology.
Ubiquitous Computing Practice (Photo Resistor) Youn-Hee Han, In-Seok Kang {yhhan, Laboratory of Intelligent Networks Advanced Technology.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
4D 장치 제작 체험으로 배우는 아두이노 및 SW프로그래밍 교육
Progress Report YoonMo Yeon
7. 스마트 폰으로 아두이노 제어하기 기능을 확장하기 위한 다양한 종류의 쉴드 보드 적층형 구조 블루투스나 WiFi 쉴드
USB Interface study 결과
자바실험실 이동준 우리 곁으로 다가온 사물 컴퓨팅 자바실험실 이동준.
6. 시리얼 통신 제어 - 스마트 폰으로 제어하는 아두이노 -.
아두이노 센서의 연결 디지털 및 아날로그 센서값의 특징 디지털 센서 핀 구조 및 연결하기 아날로그 센서 핀 구조 및 연결하기
아날로그 입력과 출력.
아두이노 기반 펌웨어 개발 FUTURE INNOVATOR 강사: 김 영 준 ㈜헬로앱스
Arduino와 Led를 이용하여 Wearable Display 만들기
블루투스로 모터 펌프 제어하기 앱인벤터와 스마트팜 키트를 활용한 ㈜헬로앱스
네트워크 스캔하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
ARDUINO (센서활용프로그래밍/ICT융합실무) - 아두이노 개발환경 구축
Arduino uno의 Hardware 구성부품의 종류와 그 용도.
독립형 모션제어기 사양 - Catalog (optional) XMC-PO04-MOD
고등용 LED를 이용한 재미있는 표현.
AP 모드 활용하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
2. 아두이노의 개발환경 만들기 - 스마트 폰으로 제어하는 아두이노 -.
아두이노? 2005년 이탈리아 이브레아에서 예술가와 디자이너를 위한 마이크로컨트롤러 프로젝트로 시작 아두이노는
Ubiquitous Computing Practice (RFID)
DK-128 ADC 실습 아이티즌 기술연구소
부트로더와 Self Programming
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
보광병원 마취통증의학과장 양재영 아두이노를 이용한 . 나만의 온습도계 만들기 보광병원 마취통증의학과장 양재영
Arduino 101 using NodeJS Korea University of Technology and Education
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
Ubiquitous Computing Practice (RFID)
NodeMCU를 이용한 SmartPot 제작
Microprocessor I/O Port & CLCD Noh Jin-Seok.
Method & library.
임베디드 프로그래밍 Lecture #
5. 아두이노로 LED와 스위치 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
아두이노 프로그래밍 5일차 – Part2 아두이노 보드간 통신 강사: 김영준 목원대학교 겸임교수.
SMART-W50의 사용 방법 ▪ 1. 서버에서의 CDMA 설정
DK-128 FND 실습 아이티즌 기술연구소
2016년 2학기 PULSE 4 Experiment 12 – 블루투스 통신.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
2015년 2학기 PULSE 4 전자물리실험 09-Servo Motor 제어 - DSU 메카트로닉스 융합공학부 -
PSD센서 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 PSD센서 명령어 이해 및 실습 응용 작품 만들기.
02강 아두이노 LED 기본 개념 LED Example1 LED Example2 LED Example3
클라우드 서버로 사용자 데이터 전송하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
클라우드 서버로 부터 값 읽어오기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
4. 아두이노로 LED 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
센서값 전송하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
아두이노 연결하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
7. 실제 세계와의 통로 센서 정보영재 석사 김석전.
웹서버 기능으로 데이터 읽기 및 제어하기 WiFi 시리얼 보드 활용가이드 김영준
MEGA8_XBee CPUPLAZA
아두이노 프로그래밍 5일차 – Part1 블루투스 통신 강사: 김영준 목원대학교 겸임교수.
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
창의 설계 가이드 (모터 프로그래밍 및 테스트)
농구 로봇 따라해 보기.
다양한 아두이노 개발툴 및 H/W 한국기술교육대학교 아두이노 개발 SW 비교 1 스크래치 2 SPL 블록 3 SPL 스크립트
AdcRead API 함수 분석 마이크로프로세서.
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
아두이노 프로그래밍 Lecture #
아날로그일까? 디지털일까? -사용자 경험 기반 디지털 기술을 활용한 반응하는 액자 만들기-
3주차 실험 지도 교수 : 한형석 교수님 Gachon Univ. HHS LABORATORY.
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
Presentation transcript:

신설공대 비교과과정(기초공|전자공|기계시스템) Arduino-basic class 신설공대 비교과과정(기초공|전자공|기계시스템)

Contents 01/ 아두이노 02/ 아두이노의 종류와 특징 03/ 아두이노 UNO 보드 04/ 아두이노 개발 과정 002

01 아두이노 (Arduino) # Physical computing 개발환경 About Arduino # Physical computing 개발환경 - LED나 모터, 센서와 같은 외부 전자 장치들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있다 # 단일 보드 마이크로컨트롤러 (=PC와 유사) # 통합 개발환경을 제공 # 2005년 이탈리아에서 시작 # 쉬움, 오픈 하드웨어 # 방대한 참고자료, 라이브러리 003

01 아두이노의 종류와 특징 (1) 정식 아두이노 보드 004 About Arduino 아두이노 UNO 보드 : 표준 보드 (R3) 아두이노 Nano : UNO의 소형화 버전 아두이노 Mega2560 : UNO의 확장 버전 아두이노 Pro/Pro mini : UNO 초소형화 버전 (3.3v/5v 버전이 별도로 존재) 004

01 아두이노의 종류와 특징 (2) 정식 아두이노 보드 About Arduino 정식 아두이노 보드 아두이노 Duemilanoves : UNO의 구버전, 현재 단종 아두이노 Leonardo : UNO와 유사, 핀 배열과 개수가 약간 틀림 아두이노 MegaADK : 안드로이드 ADK 지원보드 (USB Host 기능) 아두이노 Micro : Leonardo 보드의 소형화 버전 아두이노 Pro micro : Nano와 유사하지만 3.3/5v 별도로 존재 아두이노 Zero : ARM core, 고성능 버전 아두이노 Tre, Yun : 아두이노 + 리눅스 특수 용도 아두이노 보드 Lily Pad : 웨어러블용(의류용) 특화 보드 아두이노 FIO (Funnel IO) : 무선통신 특화 보드 (Xbee, 배터리 소켓 포함) 005

01 아두이노의 종류와 특징 (3) 아두이노 호환 보드 About Arduino 아두이노 호환 보드 3rd Party 에서 제작한 호환성을 갖춘 Custom 보드들 아두이노 쉴드 아두이노 UNO 보드 혹은 기타 보드 위에 층층이 쌓아서 사용 가능한 기능 확장용 보드들을 지칭 (예. WiFi 쉴드, Ethernet 쉴드) 006

01 아두이노 UNO 보드 About Arduino 아두이노 UNO 보드

02 Contents 01/ 아두이노 개발환경 설치 02/ 아두이노 개발환경 기본 구조 03/ Blink 예제 테스트 Arduino IDE Contents 01/ 아두이노 개발환경 설치 02/ 아두이노 개발환경 기본 구조 03/ Blink 예제 테스트 04/ 아두이노 UNO 보드 05/ 아두이노 개발 과정 008

02 아두이노 개발환경 설치 아두이노 개발환경 009 Arduino IDE - 아두이노 소스 작성 - 컴파일, 업로드 - 디버깅 (Serial monitor) - 배포 : http://arduino.cc/en/Main/Software - 안정화 버전: 1.0.6 (2014. 11. 01) - 최신 버전: 1.5.8 BETA (최신 보드 지원, Yun, Due 등) - Windows installer, Windows ZIP - 중요!! : 설치폴더 확인 [C:\Program Files\Arduino] 009

02 아두이노 개발환경 기본 구조 0010 Arduino IDE 메뉴 컴파일, 업로드 버튼 시리얼 모니터 버튼 소스 수정 영역 메시지 영역 0010

02 Blink 예제 테스트 0011 Arduino IDE Blink 예제 불러오기 메뉴 -> 파일 -> 예제 -> 01. Basics -> Blink 0011

02 Blink 예제 테스트 0012 Arduino IDE 컴파일 컴파일 버튼 정상 컴파일 되면 아두이노를 USB 케이블로 연결 0012

02 Blink 예제 테스트 Arduino IDE 보드 선택 도구 -> 보드 -> 연결된 보드 선택 0013

02 Blink 예제 테스트 Arduino IDE COM 포트 선택 도구 -> 포트 -> 연결된 포트 선택 0014

02 Blink 예제 테스트 업로드 업로드 버튼 클릭 후 0015 Arduino IDE 업로드 업로드 버튼 클릭 후 보드 중앙의 TX/RX LED가 깜빡이고 메시지 영역에 ‘업로드 완료’ 메시지가 출력되면 정상 0015

03 아두이노 라이브러리 아두이노 라이브러리 라이브러리 폴더 0016 Arduino Library - 다양한 센서, 모터, 모듈을 쉽게 사용할 수 있도록 지원 - 일반적으로 ZIP 압축 파일로 배포 - 헤더 파일 include 한 뒤, 초기화 해서 사용 - ex. #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3) // Rx, Tx pin 라이브러리 폴더 - 외부 라이브러리 : [C:\Program Files\Arduino\libraries] - 내부 라이브러리 (기본 라이브러리) : [C:\Program Files\Arduino\hardware\arduino\avr\libraries] 0016

03 라이브러리 사용 방법 (메뉴) 0017 Arduino Library 스케치 라이브러리 가져오기… 원하는 라이브러리 선택 소스 코드에서 확인 #include <EEPROM.h> 0017

03 라이브러리 사용 방법 (직접 입력) 0018 Arduino Library Include 구문을 직접 입력 #include <EEPROM.h> 컴파일해서 확인 0018

03 라이브러리 설치 방법 (메뉴) 0019 Arduino Library 스케치 라이브러리 가져오기… 라이브러리 추가… 다운로드 받은 아두이노 IDE 재실행 메뉴에서 확인 0019

03 라이브러리 설치 방법 (직접 설치) 설치 폴더로 이동 0020 Arduino Library - [C:\Program Files\Arduino\libraries] - ZIP 파일 압축 해제 - 아두이노 IDE 재실행 - 메뉴에서 설치여부 확인 - 헤더 파일 include 한 뒤, 초기화 해서 사용 - ex. ArduinoTest 라이브러리 libraries\ArduinoTest (폴더) libraries\ArduinoTest\ArduinoTest.cpp libraries\ArduinoTest\ArduinoTest.h libraries\ArduinoTest\examples (폴더) - 사용 예 #include <ArduinoTest.h> 0020

04 Serial Monitor USB Serial 통신 Serial Monitor 0021 Arduino Debugging USB Serial 통신 - USB를 이용해서 PC와 아두이노 통신 - Serial 통신을 사용 (Hardware serial) - Serial 통신은 2개의 데이터 통신용 핀을 사용 (Tx, Rx) - 아두이노 UNO의 경우 digital 0번, 1번 핀이 이 용도로 예약되어 있음 Serial Monitor - 아두이노와 데이터를 주고 받기 위해 사용하는 툴 - 주로 아두이노 디버깅, 데이터 입력을 위해 사용 - Serial monitor를 이용한 디버깅 메시지를 보는 것이 거의 유일한 디버깅 방법이므로 중요 0021

04 Serial Monitor 사용방법 0022 Arduino Debugging 아두이노 연결된 상태 보드 종류, COM 포트 선택 도구 > 시리얼 모니터 0022

04 Serial Monitor 사용방법 0023 Arduino Debugging 메시지 입력창 수신 메시지 표시창 통신 속도 설정 Baud Rate 기본 9600 bps 0023

04 예제 실습 0024 Arduino Debugging 예제파일 : Part4_Serial_Monitor void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW Serial.println("LED on, off"); 예제파일 : Part4_Serial_Monitor Serial Monitor 출력 방법 초기화 메시지 출력 0024

05 스케치 (Sketch) 아두이노 스케치 0025 Arduino Sketch - 아두이노를 동작시키기 위한 소스코드 - C/C++ 문법에 기초 - 탭 지원 (파일 분할 가능) - ino 파일 형식으로 저장 (구버전 pde) - 작성한 파일을 저장할 때 폴더명, main 파일명이 일치해야 함. 0025

05 소스 기본구조 0026 Arduino Sketch 초기화 루틴 setup() 함수 최초 1회만 실행 반복 루틴 loop() 함수 setup 이후 무한반복 0026

05 Blink 예제 테스트 Blink 예제 목표 Arduino Sketch - 아두이노에 기본으로 내장된 LED를 제어한다 - 아두이노에 내장된 LED는 내부적으로 D13 핀에 연결되어 있음 목표 - 아두이노에 기본으로 내장된 LED를 1초간 on / 1초간 off 반복

05 Blink 예제 테스트 0028 Arduino Sketch Blink 예제 불러오기 메뉴 -> 파일 -> 예제 -> 01. Basics -> Blink 0028

05 Blink 예제 테스트 0029 Arduino Sketch Setup 13번 핀 초기화 pinMode 함수 Loop digitalWrite 함수 delay 함수 0029

05 참고자료 아두이노 기본 함수보기 아두이노 공식 Tutorial 0030 Arduino Sketch - http://arduino.cc/en/Reference/HomePage 아두이노 공식 Tutorial - http://arduino.cc/en/Tutorial/HomePage 0030

06 디지털 핀 제어 디지털 핀 디지털 핀 제어 방법 특별한 디지털 핀 0031 Digital IO - 0~13번 핀 사용가능 (UNO 보드 기준) - 0V(off, LOW, 0), 5V(on, HIGH, 1) 출력/입력 가능 디지털 핀 제어 방법 - 디지털 핀 초기화 : pinMode(pinNumber, mode) - 디지털 핀 입력 체크 : digitalRead(pinNumber) on, off = 5V, 0V = HIGH, LOW 체크 - 디지털 핀 출력 : digitalWrite(pinNumber, state) on, off = 5V, 0V = HIGH, LOW 출력 특별한 디지털 핀 - 0, 1 번 핀은 Hardware serial 핀으로 예약 - 3, 5, 6, 9, 10, 11 핀은 PWM 핀 (UNO 보드의 경우 ~ 표시) - 10, 11, 12, 13 핀은 SPI 통신 핀으로 예약 (SS, MOSI, MISO, SCK) 0031

06 digitalRead 예제 버튼 예제 목표 준비물 0032 Digital IO - 버튼을 누르면 버튼 상태를 Serial monitor로 출력 준비물 - 10 kOhm 저항, 버튼, 브레드 보드, 연결선 0032

06 digitalRead 예제 Digital IO 회로도 예제 파일 - Part6_digitalRead_button 0033

06 digitalRead 예제 0034 Digital IO 버튼 핀 설정 (2번 핀) Serial 통신 초기화 // digital pin 2 has a pushbutton attached to it. Give it a name: int pushButton = 2; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // make the pushbutton's pin an input: pinMode(pushButton, INPUT); } // the loop routine runs over and over again forever: void loop() { // read the input pin: int buttonState = digitalRead(pushButton); // print out the state of the button: Serial.println(buttonState); delay(1); // delay in between reads for stability 버튼 핀 설정 (2번 핀) Serial 통신 초기화 디지털 핀 모드 설정 버튼 상태 체크 시리얼 출력 0034

06 DigitalWrite 예제 반응형 LED 예제 목표 준비물 0035 Digital IO - 버튼과 LED를 이용해서 digitalWrite() 사용법 학습 목표 - 버튼을 누르면 아두이노에 내장된 LED를 on 준비물 - digitalRead 예제와 동일 (10 kOhm 저항, 버튼, 브레드 보드, 연결선) 0035

06 DigitalWrite 예제 회로도 예제 파일 0036 Digital IO - Part6_digitalWrite_button 0036

06 DigitalWrite 예제 0037 Digital IO 버튼 핀 설정 (2번 핀) 버튼 핀 모드 설정 // digital pin 2 has a pushbutton attached to it. Give it a name: int pushButton = 2; Int led = 13; // the setup routine runs once when you press reset: void setup() { // make the pushbutton's pin an input: pinMode(pushButton, INPUT); // set led pin as output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // read the input pin: int buttonState = digitalRead(pushButton); // print out the state of the button: digitalWrite(led, buttonState); delay(1); // delay in between reads for stability 버튼 핀 설정 (2번 핀) 버튼 핀 모드 설정 LED 핀 모드 설정 버튼 상태 체크 LED on/off 0037

07 아날로그 핀 제어 아날로그 핀 아날로그 핀 제어 방법 아두이노 아날로그 핀 (input) 0038 Analog IO - 아날로그 신호를 입력 받을 수 있음 - 0~5V 를 1024 단계로 구분된 값으로 변환(10bit resolution) - ADC (Analog to Digital Converter) 아날로그 핀 제어 방법 - 초기화가 필요 없음 : input 모드만 가능 - 아날로그 핀 입력 체크 : analogRead(pinNumber) 입력된 전압에 따라 0~1023 사이의 값 출력 A0 ~ A7 까지의 상수로 핀 지정 아두이노 아날로그 핀 (input) - A0~A7 까지 8개 핀 제공 (UNO 기준) - A4, A5 핀은 I2C 핀으로 예약 (SDA, SCL) 0038 38

07 analogRead 예제 포텐셔미터 목표 준비물 0039 Analog IO - 손잡이를 돌릴 때 마다 내부 저항이 바뀌는 장치 - 출력핀으로 들어가는 전압이 변화됨 (0~5V) - 아날로그 핀으로 읽어서 입력 장치로 사용 목표 - 포텐셔미터를 돌리면 변화하는 analogRead 값을 PC에 출력 준비물 - 포텐셔미터, 연결선 0039

07 analogRead 예제 회로도 예제 파일 0040 Analog IO - 포텐셔미터 양 끝 핀 → 5V, GND - Part7_analogRead_potentiometer 0040

07 analogRead 예제 0041 Analog IO Serial 통신 초기화 아날로그 값 읽기 값 출력 // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability Serial 통신 초기화 아날로그 값 읽기 값 출력 0041

07 PWM 제어 PWM – 출력 전압 조절 PWM 0042 Analog IO - LED 밝기를 조절하려면? --> 출력 전압을 조절 - 아두이노는 출력 전압 자체를 조절하는 능력이 없다 - 그래서 PWM 사용 (Pulse Width Modulation, 펄스 폭 변조) PWM - 5V 출력을 계속 유지하는 것이 아니라 on/off 를 빠르게 반복 - on/off 간격(pulse width)에 따라 평균전압이 낮아지는 효과 0042 42

07 PWM 제어 아두이노 PWM PWM 핀 0043 Analog IO - 아두이노에서는 500Hz 주파수, 2ms 간격으로 이런 작업을 수행 - 256 단계로 구분해서 출력이 가능 (0~255, 8bit) - analogWrite() 함수 사용 (아날로그 출력) PWM 핀 - 아날로그 핀이 아니라 디지털 핀 사용!! (3, 5, 6, 9, 10, 11) 0043 43

07 AnalogWrite - PWM 예제 LED fade 목표 준비물 0044 Analog IO - LED의 밝기를 변화 - LED, 220 ohm 저항, 연결선 0044

07 AnalogWrite - PWM 예제 회로도 예제 파일 0045 Analog IO - Part7_analogWrite_LED_fade 0045

07 AnalogWrite - PWM 예제 0046 Analog IO LED 핀 초기화 PWM 출력 밝기(PWM 출력) 변화 int led = 9; // the pin that the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { // declare pin 9 to be an output: pinMode(led, OUTPUT); } void loop() { // set the brightness of pin 9: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; // wait for 30 milliseconds to see the dimming effect delay(30); LED 핀 초기화 PWM 출력 밝기(PWM 출력) 변화 0046

08 광센서 광센서 모듈 (LDR, Light Depedent Resistor) 0047 Basic Sensor - 빛의 세기에 따라 저항값이 달라지는 소자 - 50 kOhm ~ 500 kOhm - 저항에 따라 변경되는 전압으로 바꿔서 analog 핀으로 측정 - 어디선가 본 듯한... 0047 47

08 광센서 예제 광센서 목표 준비물 0048 Basic Sensor - 빛의 밝기에 따라 OUT 핀의 전압이 변화 - 아날로그 핀으로 값을 읽음 목표 - 광센서를 이용해 밝기 측정해서 Serial 출력 준비물 - 광센서 모듈, 연결선 0048

08 광센서 예제 회로 연결 예제 파일 0049 Basic Sensor - 아두이노 → Photocell - 5V → VCC (1) - OUT → A0 - GND → GND (4) 예제 파일 - 직접 작성 0049

08 광센서 예제 0050 Basic Sensor Serial 통신 초기화 센서 값 읽기 너무 빠르게 실행되므로 잠시 멈춤 void setup() { Serial.begin(9600); } void loop() { int brightness = analogRead(A0); Serial.print("brightness : "); Serial.println(brightness); delay(500); 0050

08 온습도 센서 온습도 센서 모듈 (DHT11) 0051 Basic Sensor - 1개의 데이터 라인을 통해 온습도 값을 전송해주는 기본 센서 - 2가지 종류 (인터페이스 보드 유무에 따라) - 데이터 전송 포맷 [8bit integral RH data] + [8bit decimal RH data] + [8bit integral T data] + [8bit decimal T data] + [8bit check sum] - DHT11 라이브러리 사용 - 온도 측정 범위 : 0~50' (오차범위 2') - 습도 측정 범위 : 20~90% (오차범위 5%) 0051 51

08 DHT11 라이브러리 설치 DHT11 라이브러리 설치 0052 Basic Sensor - [아두이노 설치 폴더 \ libraries] 에 DHT11 폴더 생성 - DHT11 폴더 안에 파일들이 들어갈 수 있도록 압축 해제 - 아두이노 개발 환경 재실행 - [스케치 – 라이브러리 가져오기...] 에서 설치한 DHT11 라이브러리가 보이는지 확인 0052

08 온습도 센서 예제 온습도 센서 목표 준비물 0053 Basic Sensor - 온도와 습도를 측정해서 데이터 핀으로 전송 - 센서에서 전송하는 값을 읽을 수 있도록 DHT11 라이브러리 사용 목표 - 온습도 센서를 통해 읽은 온도, 습도를 Serial Monitor로 출력 준비물 - 온습도 센서 모듈, 연결선 0053

08 온습도 센서 예제 회로 연결 (베이스보드 달린 모듈) 예제 파일 0054 Basic Sensor - [+], [-] → 5V, GND - [S] → D2 예제 파일 - Part8_sensor_dht11 0054

08 온습도 센서 예제 0055 Basic Sensor 라이브러리 include 라이브러리 초기화 Serial 통신 초기화 #include <DHT11.h> int pin=2; // 연결한 아두이노 디지털 핀 번호 DHT11 dht11(pin); void setup() { Serial.begin(9600); } void loop() { int err; // result code float temp, humi; // temperature, humidity if((err=dht11.read(humi, temp))==0) { Serial.print("temperature:"); ... else delay(DHT11_RETRY_DELAY); //delay for reread 라이브러리 include 라이브러리 초기화 Serial 통신 초기화 센서 값 읽기 값 출력 0055

09 모터 종류 DC 모터 서보 모터 (Servo motor) 스텝 모터 (Stepper motor) 0056 Servo - 가장 흔한 모터, 입력 전류 방향으로(+, -) 회전방향 제어 - 고회전에 유리, RC카, 쿼드콥터 등 광범위하게 사용 - 회전수와 방향 제어를 위해서는 드라이버 모듈이 필요 서보 모터 (Servo motor) - 보통 0~180 사이를 움직이며 위치를 정확히 제어가능 - RC카의 방향타, 로봇 관절 등 회전각 제어에 적합 - PWM 신호로 간단히 위치 제어 가능 스텝 모터 (Stepper motor) - 회전 방향 뿐 아니라 회전각을 정밀히 제어할 수 있음 - DC 모터와 서보 모터의 장점을 합친 모터 - 상대적으로 고회전이 요하지 않고 정밀한 제어가 필요한 경우 - 3D 프린터의 핵심 모터 - 제어가 복잡하므로 스텝모터 드라이버 모듈을 이용해서 제어 0056 56

09 마이크로 서보 모터 마이크로 서보 모터 (SG90) 고출력이 필요한 경우 0057 Servo Motor - 작고, 싸고, 가볍고, 저전력으로 동작 - 아두이노의 전원 5V 로도 동작 가능 - PWM 핀 하나로 제어 가능 고출력이 필요한 경우 - MG-9XX 시리즈와 같은 고출력 모델 사용 (별도의 외부전원 필요) - 제어 방법은 동일 0057

09 서보 모터 제어 PWM 신호로 회전각 제어 0058 Servo Motor - 0.5ms 에서 -90', 2.5ms 90' (총 20ms 주기) - 회전각 양 끝에는 여유를 둔다 0058

09 서보 모터 예제 Servo 라이브러리 목표 준비물 0059 Servo Motor - Servo 라이브러리는 기본 라이브러리 (설치x) 목표 - 서보모터를 0'~180' 까지 1' 간격으로 이동 준비물 - 서보모터, 연결선 0059

09 서보 모터 예제 회로도 예제 파일 0060 Servo Motor 서보 모터 → 아두이노 GND(검정/갈색) → GND PWR(적색) → 5V SIG (황색) → D9 예제 파일 - Part9_servo_motor 0060

09 서보 모터 예제 0061 Servo Motor 라이브러리 include 라이브러리 초기화 서보 모터 핀 설정 #include <Servo.h> Servo servo; int servoPin = 9; int angle = 0; // servo position in degrees void setup() { servo.attach(servoPin); } void loop() // rotate from 0 to 180 degrees for(angle = 0; angle < 180; angle++) servo.write(angle); delay(15); 라이브러리 include 라이브러리 초기화 서보 모터 핀 설정 서보 모터 회전 0061

10 블루투스 모듈 블루투스 (HC-06) 모듈 0062 Bluetooth - Serial 지원 블루투스 통신 모듈 - Slave/Master/Dual 모듈 - Bluetooth 2.0 지원, 2.4GHz 안테나 내장 - 인터페이스 보드 유무 - 인터페이스 보드가 없는 경우 3.3v 전원 사용 - 인터페이스 보드가 있는 경우 3.3v/5v 선택 가능 - 일반적으로 Software Serial 로 사용 - 아두이노와 TX-RX, RX-TX 크로스 해서 연결 - 모바일 폰과 연동하기위한 최선, 최적의 통신 모듈 - 전원만 넣어도 자체 동작이 가능 - FTDI (USB to UART) 모듈을 이용해서 PC와 연결 후 설정 및 사용가능 0062 62

10 블루투스 모듈 연결방법 아두이노와 연결 방법 0063 Bluetooth Bluetooth HC-06 Arduino VCC GND TX D2 RX D3 0063 63

10 블루투스 모듈 설정 변경 아두이노에 소스코드 업로드 0064 Bluetooth - Part11_bt_echo #include <SoftwareSerial.h> SoftwareSerial BTSerial(2, 3); //Connect HC-06. Use your (TX, RX) settings void setup() { Serial.begin(9600); Serial.println("Hello!"); BTSerial.begin(9600); // set the data rate for the BT port } void loop() { // BT –> Data –> Serial if (BTSerial.available()) { Serial.println(BTSerial.read()); // Serial –> Data –> BT if (Serial.available()) { BTSerial.write(Serial.read()); 라이브러리 include 라이브러리 초기화 BT에서 받은 데이터가 있으면 데이터를 읽어서 PC로 전달 PC에서 받은 데이터가 있으면 데이터를 읽어서 BT로 전달 0064 64

10 블루투스 모듈 설정 변경 AT command 사용 방법 0065 Bluetooth - Serial Monitor 창에서 command 입력 후 응답을 확인하는 방식 - 블루투스 모듈 초기 설정 Name=????, Password=1234, BAUD RATE=9600 - 블루투스 응답 확인 AT → OK AT+VERSION → OKLinvorV1.8 - 장치명 변경 AT+NAMExxxx (mybt01 로 변경한다면... AT+NAMEmybt01) - 페어링 암호 변경 AT+PINxxxx (1234로 변경한다면... AT_PIN1234) 0065 65

11 블루투스 채팅 예제 아두이노 – 안드로이드 채팅 예제 목표 준비물 0066 Bluetooth - 아두이노와 안드로이드 폰을 블루투스로 연결 - Serial Monitor ← 아두이노 → 안드로이드 폰 - 앞선 echo 예제를 응용 목표 - PC의 Serial Monitor와 안드로이드 폰이 채팅을 할 수 있도록 한다. 준비물 - 블루투스 모듈, 연결선 0066

11 블루투스 채팅 예제 아두이노와 연결 방법 0067 Bluetooth Bluetooth HC-06 Arduino VCC GND TX D2 RX D3 0067

11 블루투스 채팅 예제 안드로이드용 실행파일 다운로드 테스트 순서 0068 Bluetooth http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table =tech_comm&wr_id=2 테스트 순서 1. 아두이노를 켜서 HC-06 슬레이브 모듈이 페어링 대기상태에 들어가도록 합니다. (LED 깜빡깜빡) 2. 링크에서 APK 파일을 받아서 폰에 설치합니다. 3. 폰의 설정 > 블루투스 에서 off 상태이면 BT on 으로 바꿉니다. 4. BluetoothChat 앱을 실행 - 메뉴키 - Connect a device 선택 5. Device List 에 HC-06 슬레이브 모듈이 보이는지 확인. 안보이면 Scan 버튼을 눌러서 찾아보고 그래도 안되면 1부터 다시합니다. 6. HC-06 모듈이 보이면 선택 - 연결이 정상적으로 완료되면 챗팅 가능 7.폰으로 글 적으면 PC의 Serial Monitor에서 보이는지 확인합니다. 반대도 확인. 0068

10 Remind Analog Thermometer 다시보는 아두이노 0069 69

수고하셨습니다!! 숙명 ICT테크 캠프 70