일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Contour
- inheritance
- APP
- Barcode
- Pointer
- file access
- digitalRead
- UNO
- length
- flutter
- memory
- mfc
- java
- Overloading
- Encapusulation
- preprocessing
- Unity
- Binary
- sensor
- Android
- wpf
- parameter
- Read
- atmega328
- public
- compare
- Class
- stream
- SERIAL
- aduino
- Today
- Total
목록전체 글 (287)
폴크(FOLC)
# 모토로라에서 전이중 방식으로 개발한 시리얼 통신의 표준 -> 마스터 장치와 슬레이브 장치간의 양방향 통신을 동시에 수행 -> 데이터를 클록신호에 맞추어 전송 [ 상승/하강 엣지 ] -> 4개의 연결선 필요 [ MOSI, MISO, SCLK, SS ] -> 4개의 통신 모드 이용 가능 # 통신 방법 -> 마스터 장치와 여러개의 슬레이브 장치간의 선을 공유 -> 클록 신호를 기준으로 통신을 진행한다. -> 슬레이브는 LOW 상태에 통신 가능 -> 양방향 통신 : 마스터 요청/응답 슬레이브 # 연동 -> 통신하고자 하는 슬레이브의 연결선(SS) 에 LOW 로 설정 -> 슬레이브 장치가 지원하는 통신 속도 이하로 클록 신호 전송 -> 각 클록 사이클마다 MOSI 연결선을 통해 1BIT 데이터 전송 -> MI..
# I2C protocol -> 필립스 반도체에서 개발한 저속 통신 프로토콜 -> 2선 통신 방식 ( clock-SCL 과 data-SDA 를 각각 전달하기 위한 선 필요 ) -> 직접회로 간의 데이터를 공유 # I2C 방법 -> 마스터 장치와 여러개의 슬레이브 장치간의 선을 공유 -> 마스터만 통신을 시작할 수 있다. -> 슬레이브는 고유의 주소(ID 번호)가 부여된다. -> 마스터가 통신을 관리한다. ( 마스터 -> 요청, 응답 마스터 장치는 시작 비트를 전송 -> 마스터 장치가 슬레이브 장치의 주소를 전송 -> 마스터 장치는 데이터의 상태(읽기, 쓰기) 비트를 전송 -> 슬레이브 장치는 마스터 장치의 요청에 응답 ( ACK ) -> 마스터 장치에서 데이터 전송 -> 슬레이브 장치는 마스터 장치에 응..
# 시리얼 포트 -> 9핀의 시리얼 케이블로 연결할 수 있는 포트 -> 대부분 USB 포트로 대체되었지만 USB to DB9 시리얼 포트 변환 어댑터가 있음. -> 시리얼 통신을 위해서 2개 핀( Tx, Rx )을 이용 # 아두이노 우노 -> 시리얼 인터페이스 프로그램을 이용 ( USB to Serial 변환칩 Atmega16U2 ) -> 시리얼과 USB 는 호환되지 않아서 통신은 할 수 없다. # 데이터 연동 -> 시리얼 모니터 이용 ( IDE 설치 과정에서 자동으로 설치 됨 ) -> Serial 기능을 선언하고 begin(통신 속도), print() 등의 명령어 함수를 이용 -> available() 명령어 함수를 이용해서 수신 버퍼에 있는 데이터(byte)의 수를 확인 -> read() 명령어 함수..
# ADC ( Analog to digital converter ) -> 연속적인 아날로그 전압을 이산적인 디지털 값으로 바꾸는 역할 -> 해상도가 높을 수록 디지털로 표현할 수 있는 값의 종류가 많아지고 정확해 진다. -> 8bit ( 256 ), 10bit ( 1024 ), 12bit ( 4096 ) 등의 해상도를 갖는 제품이 있다. # 정확도는 해상도에 의해 결정 -> 아날로그 값을 디지털 값으로 변환하기 위해 10bit 해상도의 ADC를 이용 - 10bit 해상도 : ADC 가 아날로그 신호를 2^10 개의 서로 다른 값으로 구분 가능 - 다시 말해, 입력되는 모든 값을 0 ~ 1023 사이의 값 ( 1024개 )중에 하나를 표시 # 기준 전압 관련 -> 해당 디지털 값 ( 입력할 수 있는 최대 ..
# 재단(영국)에서 만든 초소형/초저가의 교육용 프로젝트 일환의 컴퓨터로 2012년에 첫 출시 되었다. -> 임베디드 리눅스 기반 개발 보드 -> 가격대비 성능이 월등히 높아 엄청난 파장을 일으킴 -> 재단은 개발만 담당하며 제조는 OEM 방식으로 생산 ( 영국, 일본, 중국 ) # 리눅스 커널 기반(데비안) 운영 체제(Raspbian)를 사용을 권장한다. 최근에는 RaspberryPiOS 로 이름을 변경하였다. -> 3D : OpenMAX, OpenGL ES를 사용 -> 2D : OpenVG -> EGL을 사용 # 개발 가능 언어 -> Python : Thonny/Eclipse 를 이용해서 개발 환경 구성 -> C/C++ : cc, gcc 컴파일러를 이용해서 개발 환경 구성 # 스팩 관련 내용 -> 참..
# 디지털 데이터를 획득하여 상호 작용을 하기 위한 수단(버튼이나 스위치)으로 이용 -> 입력 핀의 "디폴트 상태"를 결정하기 위해서 풀업/풀다운 # 풀업/풀다운 저항의 필요성 -> 아두이노 PIN 과 스위치를 연결하고 5V 를 인가하면 HIGH 로 입력 될 것이지만, 풀다운 저항을 이용하지 않고 스위치를 아두이노 PIN 에서 연결 해제 하면 0V or 5V 도 아닌 상태 ( floating ) 가 되어 주변에 있는 PIN 상태 값에 영향을 받게 되고 결국 HIGH or LOW 를 번갈아 가면서 입력이 될 수 있다. # 버튼 상태 확인 하기 -> 스위치 바운싱을 해결하기 위해서 디바운싱 기법을 소프트웨어로 처리 - 브레이드보드에 장착된 상태의 이상 동작으로 5V 0V 를 왔다 갔다 - 버튼의 스프링에 의..
# MCU 을 제어하기 위해서 이용되는 IDE 를 설치 한다. 보통 2가지 ( Avr Studio, WinAvr ) 중에 선택 -> Avr Studio 로 선택 # 사이트 접속 -> avr studio 검색 -> microships.com 으로 # Download Microchip Studio 를 선택 ON / Offline 모듈 선택 -> 파일 다운로드 # 설치 시작 -> 기본적으로 NEXT 선택 -> 중간 중간에 표시되는 PAGE 에서도 NEXT 를 선택 -> Visual Studio 가 설치되어 있다면 Shell (Isolated) 형태의 plug in 자동 설치 됨. -> 추가적으로 신뢰성 메시지에 "설치" 선택 # 설치 완료 # 샘플 프로그램 컴파일 -> 기본 코드 자동 생성
# Atmel 사의 8bit RISC 마이크로컨트롤러 ( Micro Controller Unit ) 의 한 종류이다. -> MCU : Micro processor + Memory(ROM, RAM) + I/O 를 통합한 형태로, 특별한 동작을 수행할 수 있도록 프로그래밍(제어가)이 가능하다. -> MCU 종류에는 크게 3가지 형태(AVR-atmel, 8051-intel, PIC-microchip )가 있다. # 스팩 -> 128KB flash, 4KB sram, 4KB eeprom -> JTAG interface, 10bit ADC, USART 2ch, TWI 1ch, SPI 1ch -> I/O 53 pins -> clock cristal 1ea # PIN MAP -> PA ~ PG 까지 총 7개 Port..
# 접근 제어자 > 정보의 은닉을 위해서 이용, 최소한의 정보만으로 클래스를 운용 > 총 4가지 ( private, public, protected, default ) - private : 클래스 멤버는 외부로 공개되지 않음. ( 외부 접근 불가 ) - public : 클래스 멤버는 외부로 공개 됨 ( 외부 접근 가능 ) - protected : 상속받은 클래스 멤버는 접근 가능, 같은 패키지 접근 가능 ( 외부 접근 불가 ) - default : 같은 패키지에 속하는 멤버에서만 접근 가능 ( 기본값 ) > 접근 범위 - public > protected > default > private 순서 # 기타 제어자 > 특징 - 클래스에 final 과 abstract 를 같이 쓸 수 없다. - 메소드에 sta..
# 정적 멤버 ( static ) > 클래스에 존재하지만 객체별로 생성하지 않고 객체들이 공유하는 멤버 > 1개만 관리 > 접근 가능 ( 클래스 멤버 함수 / 프렌드 ) > 모두 접근 가능 ( 정적 멤버를 public 으로 처리 ) > 초기화는 클래스명::정적멤버 # 정적 멤버 함수 > 객체를 생성하지 않고도 클래스 명으로 호출 가능 ( 클래스명.정적멤버함수 ) > 객체를 생성하지 않으므로 this 포인터가 없다. > 정적 멤버 변수만 사용 가능 # 상수 멤버 ( const ) > 한 번 초기화 하면 그 값을 변경하지 못하는 변수 > const 키워드 이용 ( 처음에 ) > 클래스 전체에서 이용하는 중요한 상수 # 상수 멤버 함수 > 호출된 객체의 데이터를 변경할 수 없는 함수 > const 키워드 이용..