본문 바로가기

개발자/IOT-m2m

고급 IoT 응용 5차시 강의 정리-온보드 컴퓨터 시스템 라즈베리파이

 

고급 IoT 응용 5차시 강의 정리-온보드 컴퓨터 시스템 라즈베리파이

안녕하세요. 벌써 다섯 번째 수업입니다. 일주일이 금방 갑니다. 제가 일찍 올린다고 하는 글이 늦어져서 죄송합니다. 출석하는 시간이 많이 틀리고, 직장 다니시는 분이 제법 되서 분위기가 어지럽지만 잘 따라오십시요. 라즈베리파이에 대해 배우게 되면 여러분들은 조금은 강력한 힘을 가지게 됩니다. 물론 강한 힘에는 강한 책임이 따르게 되고요. ^^ 저와 같이 잘 배워두시길 바랍니다.

봄을 봄처럼 느끼고, 꽃을 꽃으로 보는 시간이 되시길 바랍니다. 꽃구경 많이 했나요? 우리가 계절을 맞이하고, 꽃을 바라보고 하는 일에는 처음도 없고, 마지막도 없어 보입니다. 우리는 항상 중간을 알아보고 중간부터 함께 할 뿐인 것 같습니다. 여러분이 하시는 일, 공부, 앞으로 쌓아나가는 모든 업적이나 돈을 벌기 위한 직업도 언제나 과정이 될 것입니다.

기술은 생각보다 늦게 발전하고, 사람의 생각이나 행동 양식은 훨씬 더 늦게 변합니다. 당분간은 지금 우리에게 중요한 것들은 계속해서 중요합니다. 우리에게 익숙한 것들-성적으로 줄 세우기, 증명서, 인정받고, 안정된 직업, 남녀관계 등-은 변하지 않고 생각보다 오래갑니다. 아무리 인터넷 기반으로 세상이 움직이고이 스마트폰이 생활을 편리하게 해 준다고 해도 굳어진 시스템과 여러분이 누리는 문화의 형식과 내용은 변하는 데에 시간이 오래 걸립니다. 하던 대로 늘 더 나은 방향으로 잘해나가시기 바랍니다. ^^ 


전체 강의 자료 참고하십시요.

고급 IoT 응용 1학기 첫 시간. 인사하고 수업 소개

고급 IoT 응용 2차 강의 - 강의 자료 첨부

고급 IoT 응용 3차시 강의 정리-기반기술과 Product Review 리포트 발표

고급 IoT 응용 4차시 강의 정리-Wearable device

고급 IoT 응용 5차시 강의 정리-온보드 컴퓨터 시스템 라즈베리파이

고급 IoT 응용 6차시 강의 정리-라즈베리파이 개발환경 GPIO

고급 IoT 응용 7차시 강의 정리-GPIO 실습-온도습도 센서와 RGB LED


 처음 시간 소개하는 시간이었고, 세 번에 걸쳐 사물인터넷에 대해 배웠습니다. 개념들, 발전방향, 기반기술, 웨어러블 디바이스, 제품 리뷰까지 알아봤습니다. 이번 시간부터는 실제 IoT가 제품으로 구현되는 과정을 배우겠습니다. 일단 목표는 스마트 농장을 구현하는 것입니다. 비슷한 용어로 Smart Farm, Smart Greenhouse 같은 용어도 있는데 동일한 의미입니다. 사물인터넷 허브와 게이트웨이 역할을 하는 타깃을 라즈베리파이로 하겠습니다.

라즈베리 파이(Raspberry Pi)는 영국의 라즈베리파이 재단(Raspberry Pi Foundation)에서 어린이들의 컴퓨터 및 과학 교육을 증진시키기 위해 만든 싱글 보드 컴퓨터 (Single-Board Computer)입니다. 먼저 라즈베리파이에 대해서 설명하기 전에 싱글보드 컴퓨터에 대해 알아봐야 합니다. 이베디드란 의미는 애를 밴, 업은 함께 모두 들어있다는 의미입니다. 그래서 마이크로 컨트롤러 시스템, MCU, 마이크로컴퓨터를 이용해 설계된 시스템을 우리는 임베디드 시스템이라고 하고 그런 시스템을 프로그래밍하는 일을 Firmwear라고 합니다.  

싱글보드 컴퓨터(Single-Board Bomputer)는 줄여서 SBC라고 부릅니다. 하나의 보드 위에 CPU 및 메모리, 입출력 장치를 장착한 완벽한 컴퓨터입니다. 흔히, 집이나 회사에서 많이 사용하는 데스크톱이 메인보드의 각종 슬롯에 주변장치를 장착하는 형태의 범용 컴퓨터와는 구별되어 부릅니다. 노트북도 여러 장의 보드가 결합된 형태를 띠고 있기 때문에 노트북이나 태블릿도 역시 싱글보드컴퓨터하고는 다릅니다. SBC는 주로 한장의 PCB 보드로 구성되기 때문에 관리하기 쉽고 성능대비 비교적 가격이 저렴하다는 것이 특징 중에 하나입니다.

임베디드시스템 참고: https://ko.wikipedia.org/wiki/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C
싱글보드 컴퓨터 참고: https://ko.wikipedia.org/wiki/%EB%8B%A8%EC%9D%BC_%EB%B3%B4%EB%93%9C_%EC%BB%B4%ED%93%A8%ED%84%B0

특히 라즈베리 파이는 센서, 모터, 광원 등의 하드웨어를 직접 제어하는 분야에 사용할 수 있으며, 어린이를 대상으로 하는 로봇들, 쿼드콥터, 출입감지를 위해 출입문에 부착하는 센서 등과 같이 다양한 물리적 컴퓨팅 프로젝트가 진행 중입니다. 미디어 센터로 활용하거나 게임 개발용 플랫폼으로도 이용이 가능하고, 멀티미디어와 3D 그래픽 성능이 요구되는 환경에도 적합하다. 라즈베리 파이의 중요한 매력은 매우 작은 범용 컴퓨터라는 점이다. 라즈베리 파이를 활용한 사례들을 살펴보면 아래와 같습니다.

▪ 다목적 컴퓨터로 이용이 가능

▪ 비디오 및 음악감상 전용 서버로 사용 가능

▪ 웹 서버로 사용

▪ 미니 게임기, 로봇, 장난감 제어기로 활용

▪ 카메라 모듈 연결시 방범용 CCTV, 사진 저장 가능

▪ SNS 에 글을 올리거나, 인터넷에 연결된 p2p 서버로 활용

라즈베리파이에 대해서는 이 두가지만 꼭 알아두면 된다. 반드시 알아야 할  두가지만 기억해 주세요. 라즈베리 파이 재단 홈페이지 https://www.raspberrypi.org/ 다. 여기서는 라즈베리파이에 대한 최근 소식을 알 수 있고, 개발중 필요한 분야에 대한 포럼을 참고할 수 있다. 라즈베리파이의 대표적인 운영체제(OS)인 라즈베안을 다운 받을 수 있다. 아울러 참고자료가 산더미 처럼 많고 무료로  PDF 문서를 제공하는 MagPi https://www.raspberrypi.org/magpi/issues/ 를 꼭 알아두시기 바랍니다. 이곳에 가셔서 시간나는 대로 최근 자료부터 옛날 자료 순으로 보시기 바랍니다.

오늘은 우리가 라즈베리파이를 샀다고 생각하고 어떻게 연결하여 개발환경, 즉 가지고 놀 수 있는 환경을 구성하는지 알아보겠습니다. 하나씩 하나씩 차근차근 합시다. 어렵지 않습니다. 실습 환경이 아무리 좋지 않아도 그런 환경을 개선하면서 실습하는 과정이 정말 도움은 됩니다. ^^ 시간도 오래 걸리고, 사실 더 어렵지만 말입니다. 

라즈베리파이 개발환경에 대해 알아봅시다. 라즈베리파이는 초등학생들의 컴퓨터 교육을 위해 만들어진 보드입니다. 여기서 중요한 의미가 다 들어 있습니다. 바로 초등학생의 컴퓨터 교육이죠. 그러니까 라즈베리파이에서 인터넷이 되고, 스케치나 엔트리도 되고, 아두이노 스케치도 될 뿐만 아니라 리눅스 기반의 온보드 컴퓨터라고 보면 못하는 일은 없겠죠. 물론 속도는 우리가 사용하는 데스크탑 컴퓨터(PC) 만큼은 나오지 않습니다. 여러가지 개발환경에 대한 참고문서 안내해 드립니다. 

라즈베리파이 개발환경 참고문서

1. 라즈베리파이 개발환경을 구현하기

2. 04강 라즈베리-개발환경구축-실습 https://www.slideshare.net/kimbongzo/04-50345226

3. 랜케이블 하나로 가장 빠르게 라즈베리파이와 접속하는 방법

결국 라즈베리파이의 개발환경을 구축하는 일은 라즈베리파이의 IP 주소를 얻는 과정입니다. 물론 HDMI 모니터, USB 키보드 마우스, 그리고 공유기 까지 전부 연결하여 독립적으로 사용하는 환경이라면 최상이지만 사실 자원의 낭비라고도 볼 수 있습니다. 단지 랜 케이블 하나만 연결하면 자유자재, 적재적소, 능수능란, 능소능대하게 사용할 수 있다. 그리고 무엇보다 원격연결(네트웍 연결)은 무궁무진하고 놀라운 환경을 제공합니다. 오늘은 FTDI 케이블을 사용하여  UART Serial 포트로 PC 와 연결합니다. 아래 링크를 참고하여 자세한 연결법과 Window10 에서 연결 설정, 로그인 까지 하십시요. 모르는 부분은 질문하시고, 안되시는 분은 저를 불러 저와 함께 하시고, 정리가 필요한 분은 다시 설명이 필요하시면 말씀하십시요.

ftdi serial to usb 케이블 Window10에서 인식 안되는 문제 해결방법

 

 

ftdi serial to usb 케이블 Window10에서 인식 안되는 문제

ftdi serial to usb 케이블 Window10에서 인식 안되는 문제 윈도우10에서 Prolific USB to Serial 드라이버 인식문제 아래와 같은 uart to usb 케이블 자주 쓰는 케이블 인데 window10 에서 자동으로 잡는데 인식..

fishpoint.tistory.com

오늘은 라즈베리파이 GPIO에 대해 간략하게 설명드리고 마치려고 합니다. 

Raspberry Pi에 사용되는 BCM2835를 위해 C로 작성된 GPIO access library이다. wiringPi 라이브러리는 사용과 변경이 가능한 GNU LGPLv3 license를 따른다. C와 C++로 사용 가능하지만, 적절한 중간 수행 프로그램(Wrapper)을 이용하면 다른 언어에서도 사용 가능하도록 개발되었다. 아두이노 시스템에 익숙한 사용자도 쉽게 이용할 수 있도록 설계되어 있다. Raspberry Pi GPIO 특징은 아래와 같다.
- 40핀 범용 (General Purpose Input/Output , GPIO) 커넥터(P1)를 가진다.
- 신호와 버스로 구성되어 있다.
- 8개의 범용 디지털 I/O 핀 : 프로그램을 통해 입력 혹은 출력 모드로 설정이 가능 ( 이러한 핀 중 1개(GPIO_1)는 PWM 출력으로 설정 가능) 
- 2-wire I2C interface하나와 4-wire SPI interface 두 개, 그리고 직렬 UART(serial UART) 인터페이스 하나를 사용할 수 있는 핀을 갖고 있음. 
- Raspberry Pi Revision 2는 별도의 커넥터(P5)에 4개의 추가의 GPIO 라인을 갖고 있다. (단, P5 connector 장착을 필요로 함 ). 
- I2C, SPI, 그리고 UART 인터페이스는 범용 I/O 핀으로도 사용 가능 

wiringPi 라이브러리 설치 방법은 아래와 같다. 아래 링크와 자료를 참고하십시요.

wiringPi GPIO 설정 이렇게 초기화 된다.

라즈베리파이 활용 및 GPIO 강좌 목차

Raspberry Pi GPIO 와 wiringPi 라이브러리

라즈베리 파이 GPIO pin 상태를 읽어 이용하기 - GPIO pull up 사용