임베디드 프로그래밍 Lecture #06 2017. 11. 07.

Slides:



Advertisements
Similar presentations
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Advertisements

EHT-800 Specifications 8ch EX-SDI 하이브리드 DVR
Progress Report YoonMo Yeon
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
                                  9장 컴퓨터 기반 데이터 수집의 기초.
임베디드 프로그래밍 Lecture #
임베디드 프로그래밍 Lecture #
Image & Video processing
IoT(사물인터넷) 보안 2016년 2학기 2. 라즈베리파이 준비.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
아두이노 센서의 연결 디지털 및 아날로그 센서값의 특징 디지털 센서 핀 구조 및 연결하기 아날로그 센서 핀 구조 및 연결하기
아두이노 기반 펌웨어 개발 FUTURE INNOVATOR 강사: 김 영 준 ㈜헬로앱스
임베디드 프로그래밍 Lecture #
임베디드 프로그래밍 Lecture #
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
독립형 모션제어기 사양 - Catalog (optional) XMC-PO04-MOD
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
컴퓨터 응용과 3학년 1반 조장 김영조 조원 구본건 , 임선택
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
아두이노? 2005년 이탈리아 이브레아에서 예술가와 디자이너를 위한 마이크로컨트롤러 프로젝트로 시작 아두이노는
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
부트로더와 Self Programming
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
4. LAN의 배선체계 (3장. LAN: Local Area Network)
IPAD2(ios 5.0.1) 사용자 메뉴얼 Mobile Service Team.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Device Driver 임베디드 시스템 I.
SSH, VNC Mobile Engineering, Kyungwoon Univ. Embedded System Design.
아두이노 프로그래밍 5일차 – Part2 아두이노 보드간 통신 강사: 김영준 목원대학교 겸임교수.
영상처리 실습 인공지능연구실.
임베디드 프로그래밍 Lecture #
제품명 제품설명 제품규격 CPU: STM32F103VCT6-LQFP 100 Pin 256KB FLASH 48KB RAM
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
2016년 2학기 PULSE 4 Experiment 12 – 블루투스 통신.
USN(Ubiquitous Sensor Network)
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
UNIT 25 SPI 로봇 SW 교육원 조용수.
DK-128 직렬통신 기초 아이티즌 기술연구소
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
네트워크 프로그래밍 (모바일 주문 프로그램 )
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
UNIT 25 SPI 로봇 SW 교육원 조용수.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
엔트리-아두이노 블록 코딩 평원중학교 이동준 자바실험실 JavaLab.org.
IO-Link 통신 기술 소개 산업 Ethernet 필드버스 게이트웨이 접속 IO-Link 마스터 IO-Link 통신
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
제품명 제품설명 제품규격 CPU: STM32F103VCT6-LQFP 100 Pin 256KB FLASH 48KB RAM
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
임베디드 프로그래밍 Lecture #
Presentation transcript:

임베디드 프로그래밍 Lecture #06 2017. 11. 07

목 차 UART 통신 테스트 UART Console 테스트 UART 장치 통신 테스트

UART 직렬 통신 (1) UART 직렬 통신 Universal Asynchronous Receiver/Transmitter 별도의 클럭 라인이 없이 양 장치 간에 정해진 클럭 속도에 맞추어 통 신하는 비동기식 직렬 통신 방식 동기식 직렬 통신 비동기식 직렬 통신 병렬 통신

UART 직렬 통신 (2) UART 직렬 통신 규칙(Rules) UART 직렬통신 Baud Rate Data bits Synchronization bits Parity bits Baud rate UART 직렬통신 Baud Rate 전송 속도 - how fast data is sent over a serial line bits-per-second (bps) 로 표시 표준 baud rate: 1200, 2400, 4800, 9600, 9200, 38400, 57600, 115200

UART 직렬 통신 (3) UART 직렬통신 data chunk 9600 8N1 9600 baud, 8 data bits, no parity, and 1 stop bit one of the more commonly used serial protocols “OK” 문자열 전송 비트열: LSB MSB

UART 직렬 통신 (4) UART 직렬 통신 – 연결 구조 및 전송 신호 TTL Serial Signals RS-232C Serial Signals 신호선 연결 구조

UART Console 테스트 (1) UART Console 테스트 라즈베리파이는 기본적으로 UART 포트를 콘솔 포트로 설정 연결 방식: Usb-Serial Cable PC – terminal program Raspberrypi 3

UART Console 테스트 (2) UART Console 테스트 Console 로그인 화면

UART Console 테스트 (3) 기본 설정 UART 포트를 사용하기 위해 우선 Bluetooth 기능을 중지하여야 함. 라즈베리파이로 ssh 접속 $ sudo nano /boot/config.txt config.txt 파일 끝에 다음 두 줄 추가 후에 저장 # disable Bluetooth dtoverlay=pi3-disable-bt $ sudo systemctl disable hciuart $ sudo reboot

UART Console 테스트 (4) 기본 설정 Bluetooth 기능 재설정 라즈베리파이로 ssh 접속 $ sudo nano /boot/config.txt config.txt 파일 끝에 추가한 두 줄을 제거 # disable Bluetooth # dtoverlay=pi3-disable-bt $ sudo systemctl enable hciuart $ sudo reboot

UART Console 테스트 (5) 기본 설정 UART console 포트 사용 설정 raspi-config 툴을 사용하여 설정

UART Console 테스트 (6) 기본 설정 UART console 포트 사용 설정

UART Console 테스트 (7) 기본 설정 UART console 포트 사용 설정 /boot/cmdline.txt 파일에서 console 설정 확인

UART Console 테스트 (8) 아두이노를 활용한 UART console 테스트 아두이노를 USB-Serial 케이블을 대용으로 사용 아두이노는 다수의 UART 채널을 제공(Software UART 포함) PC RaspberryPi UART #0 Arduino UART #1 UART USB

UART Console 테스트 (9) 아두이노를 활용한 UART console 테스트 Arduino MEGA를 이용한 연결 USB 연결 Pin 연결 18 10 19 8 GND 39

UART Console 테스트 (10) 아두이노를 활용한 UART console 테스트 Arduino sketch 프로그래밍 : MultiSerial 예제 활용

UART Console 테스트 (11) 아두이노를 활용한 UART console 테스트 Arduino Serial 모니터 화면

UART 장치 통신 테스트 (1) 라즈베리파이의 UART 장치 통신 (1) 라즈베리파이는 외부 장치와의 UART 통신 가능 주로 통신 모뎀, 영상입력장치 등을 연결할 때에 사용 raspi-config 툴을 이용하여 console 포트 기능을 중지(disable) 하여야 함

UART 장치 통신 테스트 (2) 라즈베리파이의 UART 장치 통신 (2)

UART 장치 통신 테스트 (3) 아두이노와의 UART 통신 실험 Arduino와의 UART 연결을 통한 데이터 통신 실험 SHT11 온습도 센서 값을 아두이노를 통해 읽어 오기 아두이노는 주기적으로 sht11 온도, 습도 값을 읽어 내부적으로 저장 값을 업데이 트한다. 라즈베리파이는 필요할 때에 UART 통신 장치를 통해 아두이노에게 온도,습도 값 을 요청한다. 아두이노는 라즈베리파이의 요청을 받으면 저장하고 있는 온도, 습도 값을 전송 한다.

UART 장치 통신 테스트 (4) 아두이노와의 통신 규약 아두이노와 라즈베리파이 사이의 연결은 앞의 예와 동일하게 구성 통신 규약: TMP\n - 온도 요청 HMD\n - 습도 요청 ACK\n - 연결 확인 RaspberryPi 요청 Arduino 응답 T=xx.xx\n - 온도 응답 H=xx.xx\n - 습도 응답 OK\n - 연결 확인 응답

UART 장치 통신 테스트 (5) SHT11(온/습도) 센서 (1) SENSIRION사의 SHT1x 시리즈의 SHT11 Humidity & Temperature Sensor 사용 디지털 출력 온/습도 센서 - 하나의 칩에 두 개의 센서를 집적화 특징: 측정 범위 : 0~100% RH 상대 습도 정밀도 +/- 3% 온도 정밀도: +/- 0.4°C @ 25 °C 보정된 디지털 출력 (2 와이어 인터페이스) 빠른 반응 속도 < 4 sec. 저전력 소비 (typ. 30 µW) 낮은 가격 대량 생산용으로 디자인 됨, 가격이 민감한 응용 제품용 뛰어난 장기 안정성 보정과 디지털 2 와이어 인터페이스 기능으로 사용이 쉬움

UART 장치 통신 테스트 (6) SHT11(온/습도) 센서 (2) %RH Sensor라고 표시되어 있는 부분과 Temp Sensor 라고 표시되어 있는 부 분을 통해 온도와 습도의 정도를 센싱(Sensing)

UART 장치 통신 테스트 (7) SHT11(온/습도) 센서 (3) 센싱된 수치는 14비트 A/D 변환기를 통해 아날로그 정보를 디지털 수치화 하고 I2C 를 통하여 정보를 처리할 MCU(CPU)로 전달 일반적인 회로구성 예

UART 장치 통신 테스트 (8) 아두이노 프로그램 – 온습도 정보 서비스 SHT11을 활용하여 온/습도를 센싱하여 저장하고, 라즈베리파이 요청에 대해 저장한 값을 제공한다. 온/습도 값은 노이즈에 의한 영향을 줄이기 위해 최근 10개의 값에 대한 평균값을 저 장한다.

UART 장치 통신 테스트 (9) 아두이노 프로그램 사용 모듈 및 회로도

UART 장치 통신 테스트 (10) 아두이노 프로그램 회로 연결 MEGA ADK 모듈의 20(SDA) 핀을 온/습도 센서 모듈의 DATA 핀에 연결 MEGA ADK 모듈의 21(SCL) 핀을 온/습도 센서 모듈의 SCK 핀에 연결

UART 장치 통신 테스트 (11) 아두이노 프로그램 SHT11 Arduino Library 라이브러리 설치 제어 핀의 설정과 센싱 값의 Read를 위한 함수 제공 참고 사이트: https://github.com/practicalarduino/SHT1x https://www.adafruit.com/product/246 라이브러리 설치 라이브러리 파일을 다운로드하고 아두이노 설치 폴더 내 “libraries” 폴더에 복사하여 압 축을 해제한다. 라이브러리 폴더 이름을 “SHT1x”로 변경한다. 아두이노 소프트웨어를 다시 실행하여야 한다. 예제 메뉴를 통해 라이브러리 설치 여부를 확인한다.

UART 장치 통신 테스트 (12) 아두이노 프로그램 스케치 프로그램 : ReadSHT1xValues.ino https://github.com/silla-mclab/jiot2/blob/master/Arduino/ReadSHT1xValues.ino Compile Flag “TESTING” : 아두이노 시리얼 모니터를 통해 테스트 & 디버깅

UART 장치 통신 테스트 (13) 라즈베리파이 프로그래밍 - 테스트 프로젝트 생성 NetBeans IDE에서 새로운 프로젝트 생성 프로젝트명: jiot06-UARTComm-test Main Class: jiot06.uartcomm.UARTCommTest 프로젝트 속성 설정에서 라이브러리 추가 프로젝트 속성에서 dio.jar 라이브러리 추가

UART 장치 통신 테스트 (14) 라즈베리파이 프로그래밍 jdk.dio.uar 패키지를 이용하여 UART 장치 드라이브 구현 “source packages” 내에 “uart_dev” 패키지 생성 “uart_dev” 패키지 내에 다음의 클래스 파일 생성 UARTRPi.java – UART Device wrapper class SHT11.java – SHT11 장치의 command enumerator 객체 정의 소스: https://github.com/silla-mclab/jiot2/tree/master/jiot06-UARTComm- test/src/uart_dev UARTRPi.java 구현 특징 UART 장치 객체가 유일하게 하나만 생성되도록 지원 데이터 수신 처리를 이벤트 리스너를 통해 비동기 처리

UART 장치 통신 테스트 (15) 라즈베리파이 프로그래밍 UART 장치 클래스를 이용하여 SHT11 장치 드라이브 구현 “source packages” 내에 “uart_dev.drivers” 패키지 생성 “uart_dev.drivers” 패키지 내에 다음의 클래스 파일 생성 SHT11Device.java – SHT11 장치 드라이브 클래스 소스: https://github.com/silla-mclab/jiot2/blob/master/jiot06-UARTComm- test/src/uart_dev/drivers/SHT11Device.java

UART 장치 통신 테스트 (16) 라즈베리파이 프로그래밍 jiot06.uartcomm.UARTCommTest.java 파일 작성 SHT11 장치 테스트 소스: https://github.com/silla-mclab/jiot2/blob/master/jiot06-UARTComm- test/src/jiot06/uartcomm/UARTCommTest.java

UART 장치 통신 테스트 (17) 라즈베리파이 프로그래밍 - 설정 파일 추가 및 수정 “lib” 디렉토리에 장치 레지스트리 파일 및 보안 정책 파일 추가 build.xml 파일 수정 Jiot06-UARTComm-test

UART 장치 통신 테스트 (18) 설정 파일 – 장치 레지스트리 파일 실행시간에 장치 설정을 변경 # RPi3 header pins 1 = deviceType: gpio.GPIOPin, pinNumber:4, name:GPIO4, predefined:true 2 = deviceType: gpio.GPIOPin, pinNumber:7, name:GPIO7, mode:4, direction:1, predefined:true 3 = deviceType: gpio.GPIOPin, pinNumber:17, name:GPIO17, predefined:true 4 = deviceType: gpio.GPIOPin, pinNumber:18, name:GPIO18, mode:4, direction:1, predefined:true 5 = deviceType: gpio.GPIOPin, pinNumber:22, name:GPIO22, predefined:true 6 = deviceType: gpio.GPIOPin, pinNumber:23, name:GPIO23, mode:2, direction:0, predefined:true 7 = deviceType: gpio.GPIOPin, pinNumber:24, name:GPIO24, mode:2, direction:0, predefined:true 8 = deviceType: gpio.GPIOPin, pinNumber:25, name:GPIO25, mode:4, direction:1, predefined:true 9 = deviceType: gpio.GPIOPin, pinNumber:27, name:GPIO27, predefined:true 100 = deviceType: uart.UART, controllerName:ttyAMA0, name:ttyAMA0, baudRate:19200, dataBits:8, parity:0, stopBits:1, flowControl:0, predefined:true 300 = deviceType: spibus.SPIDevice, name:SPI0.0, controllerNumber:0, address:0, csActive:1, wordLength:8, clockFrequency:500000, clockMode:1, bitOrdering:1, predefined:true gpio.GPIOPin = initValue:0, controllerNumber:0, direction:0, mode:2, trigger:1, predefined:true uart.UART = baudRate:19200, parity:0, dataBits:8, stopBits:1, flowControl:0, predefined:true

UART 장치 통신 테스트 (19) 설정 파일 – 보안 정책 파일 // policy for DIO framework grant { permission jdk.dio.DeviceMgmtPermission "*:*", "open"; permission jdk.dio.gpio.GPIOPinPermission "*:*"; permission jdk.dio.i2cbus.I2CPermission "*:*"; permission jdk.dio.spibus.SPIPermission "*:*"; permission jdk.dio.uart.UARTPermission "*:*"; };

UART 장치 통신 테스트 (20) build.xml 파일 수정

UART 장치 통신 테스트 (21) 프로젝트 속성 설정 수정 Sources / Run 속성 수정

UART 장치 통신 테스트 (22) 원격 실행 NetBeans Output 화면에서는 데이터 입력을 지원하지 않음 터미널 화면에서 실행 라즈베리파이로 ssh 접속 바이너리 배포 디렉토리로 이동 $ cd ~/NetBeansProjects/jiot06-UARTComm-test/dist java 명령을 이용하여 실행 $ /home/pi/jiot/jre/bin/java -Djdk.dio.registry=lib/dio.properties -Djava.security.policy=lib/java.policy -jar jiot06-UARTComm-test.jar

UART 장치 통신 테스트 (23)