본문 바로가기

Embedded

[Project] 자동 온/습도 제어 시스템 1. 작업 환경 - 개발 환경 : Windows7- Language : C- 사용 Tools : ATmel studio- 사용 장비 : atmega128 2. 흐름도 1. 시스템이 시작되면 센서로부터 정보를 받습니다. 2. Atmega128은 센서의 출력값을 받아 ADC를 이용해 디지털 신호로 바꾸어 주며 온/습도 센서의 데이터 시트에 나온 계산 방법에 의해 온도와 습도를 구해 LCD에 display 해줍니다. 3. 사용자가 원하는 온/습도 범위 내에서 가습기와 백열등을 원하는 상태로 제어 해줍니다. 가습기의 경우 DC 5V를 주어 Atmega128에서 PortA 출력을 통하여 On/Off 제어를 합니다. 백열등의 경우 가습기와 같이 PortA 출력을 통해 Relay를 제어하는 스위칭 방식을 이용하여 제.. 더보기
[Project] opencv을 이용한 자율주행 자동차 1. 작업 환경 - 개발 환경 : Ubuntu 14.04.5 LTS 64bit, Raspbian-jessie, Mac os x - Language : C,C++- 사용 Tools : gcc, g++, vi editor, ATmel studio7.0- 사용 기술 : Opencv2.4.13, wiringPi- 사용 장비 : Raspberry3, atmega128 2. 흐름도 1. PC에서 Opencv를 이용한 차선, 정지선 인식 - HoughLinesP 함수와 기울기를 이용한 알고리즘을 통해 직선 및 커브 검출 2. 라즈베리파이에서 Opencv를 이용한 표지판, 신호등 인식 - 전처리 과정을 거친 후 원검출과 색검출을 이용하였고 Template matching을 사용하여 속도를 인식 3. Atmega128에.. 더보기
[Atmega128] 우분투에서 Avr 개발환경 구축 작업 환경-메인 OS : Ubuntu 14.04.5 LTS 64bit-장 비 명 : Atmega128(JMOD-128-1) 1. avr-gcc 설치아래의 명령을 순서대로 진행한다.- sudo apt-get install binutils-avr - sudo apt-get install gcc-avr - sudo apt-get install avr-libc - sudo apt-get install avrdude 2. avrdude.conf 수정avr-gcc를 설치하였다면 다음과 같이 avrdude.conf를 수정한다.- sudo vi /etc/avrdude.conf- memory "flash" 섹션에서 page_size = 256 --> page_size = 128 num_pages = 512 --> num.. 더보기
[Raspberry Pi3] 라즈베리파이3 SSH 설정 SSH란?- SSH는 Secure Shell의 약자이다.- 원격 시스템에서 명령을 실행할 수 있도록 해주는 프로토콜이다.- 주로 리눅스, 유닉스 시스템에서 사용된다.- 암호화 기법을 사용하여 안전한 통신이 가능하다. - 22번 포트를 사용한다. SSH는 안전한 원격 통신을 위해 사용된다. SSH가 사용되기 이전에는 텔넷(Telnet)이 사용되었다. 텔넷 통신에는 기본적으로 23번 포트가 사용되었다. 통신에서 데이터를 암호화하는 과정이 없기 때문에 같은 네트워크 상의 누군가가 통신을 가로챈다면 통신 내용을 모두 엿볼 수 있다는 문제가 존재하였다. 이러한 보안 상의 문제로 SSH가 설계된 것이다. SSH는 암호화 기법을 사용하기 때문에 누군가 통신을 가로챈다고 하더라도 암호화된 텍스트로 보이게 된다. 기본적.. 더보기
[Raspberry Pi3] 라즈베리파이3 한글 설정 1. 한글 폰트 다운로드 및 설치 1-1. 한글 설치 준비★한글을 설치하기전에 랜선을 연결하거나 wifi을 연결한 뒤 진행을 해야한다.!!★한글을 다운받기 전에 차례로 update와 upgrade를 해준다. $ sudo apt-get update $ sudo apt-get upgrade 1-2. 한글 설치 $ sudo apt-get install ibus $ sudo apt-get install ibus-hangul$ sudo apt-get install ttf-unfonts-core 위의 명령어를 차례로 입력하여 한글을 다운받고 설치한다..위의 그림과 같은 상태에서 멈춰있다면 Enter 키를 계속 눌러준다. 그러면 다음과 같이 q to quit를 누르라는 화면이 나타나며 q를 누르면 완료된다. 2. 라.. 더보기
[Raspberry Pi3] 라즈베리파이3 초기 설정 1. raspi-config를 이용한 Raspbian 초기 설정1-1. raspi-config 실행라즈베리파이가 부팅이 완료되면 터미널창을 켜서 다음의 명령어를 실행한다.pi@raspberrypi: ~ $ sudo raspi-config다음과 같이 환경 설정을 할 수 있는 툴이 실행된다. 9가지 항목에 대한 설명은 다음과 같다.– 1 Expand Filesystem : 메모리 카드 전체 용량을 사용하도록 파티션 크기 재조정 – 2 Change User Password : pi 계정의 비밀번호 설정 – 3 Enable Boot to Desktop/Scratch : X-Window 환경으로 부팅하도록 설정 – 4 Internationalisation Options : 언어, 기준시간, 키보드 레이아웃 설정 .. 더보기
[Raspberry Pi3] 라즈베리파이3 OS 라즈비안 설치 컴퓨터를 작동시키기 위해서 기본적으로 OS가 필요하다. OS에는 Windos, MacOS, Linux 등이 있다. 라즈베리파이 또한 작동시키기 위한 OS가 필요한데 그것이 라즈비안(Raspbian)이다. 1. OS 이미지 다운로드 https://www.raspberrypi.org/downloads/의 라즈베리파이 공식사이트에서 RASPBIAN 선택 후 ZIP파일을 다운로드 한다. 다운로드 후 압축해제를 하면 이미지 파일이 나온다. 2. SD카드 포멧 https://www.sdcard.org/downloads/formatter_4/eula_mac/의 사이트에서 PC 환경에 맞는 SD Card formatter를 다운로드 한다. 다운로드 후 설치를 한다. 해당 파일을 설치 후 PC에 SD카드를 연결하고 SD.. 더보기
[Raspberry Pi3] 라즈베리파이3 UART 시리얼 통신 UART란?- universal asynchronous receiver&transmitter의 약자로 비동기 시리얼 통신을 의미한다.- baud rate (1초에 몇개의 신호가 전송되는가를 나타내는 단위로 비동기식이기 때문에 두 프로세서 간의 속도를 맟춰주어야 한다.)H/W 연결방법- RX : 데이터 수신- TX : 데이터 송신- RX TX 교차연결- GND 연결- baud rate 설정 자료참조 : https://learn.sparkfun.com/tutorials/serial-communication 1. 기본 설정UART를 사용하려면 Bluetooth를 끊어줘야 한다. 이유는 Bluetooth와 UART가 같은 포트를 사용하여 둘중에 한가지만 사용이 가능하기 때문이다.우선 라즈베리파이로 부팅 후 다음.. 더보기
[Raspberry Pi3] 라즈베리파이3 PWM을 이용한 서보모터 제어 PWM이란?- Pulse Width Modulation(펄스 폭 변조)- 디지털 출력으로 아날로그 회로를 제어하는 기법 (GPIO핀은 디지털이기때문에 PWM을 이용하여 아날로그 신호를 제어한다) duty : 한 주기(T)동안 HIGH가 차지하는 비율ex) duty cycle = 50%이면 2.5V의 효과를 낼 수 있다. PWM으로 Servo motor(SG90) 제어 핀 연결Servo motor Raspberry PiOrange 12 pinVCC 2 pinGND 6 pin 라즈베리파이3 GPIO Pin 구조는 http://cccding.tistory.com/89 확인 servo.c#include#include#include #define SERVO 1 int main(){char str; if(wirin.. 더보기
[Raspberry Pi3] 라즈베리파이3 PWM을 이용한 LED 제어 PWM이란?- Pulse Width Modulation(펄스 폭 변조)- 디지털 출력으로 아날로그 회로를 제어하는 기법 (GPIO핀은 디지털이기때문에 PWM을 이용하여 아날로그 신호를 제어한다) duty : 한 주기(T)동안 HIGH가 차지하는 비율ex) duty cycle = 50%이면 2.5V의 효과를 낼 수 있다. PWM으로 LED 점멸회로도 라즈베리파이3 GPIO Pin 구조는 http://cccding.tistory.com/89 확인 led.c#include#include#include #define LED 1 int main(){pinMode(LED , OUTPUT); //핀 초기화if(wiringPiSetup()==-1)return 1; softPwmCreate(LED,0,100); //PW.. 더보기