SlideShare a Scribd company logo
1 of 21
Download to read offline
강의 14/15:
오픈소스 하드웨어
신정규
2016년 12월 14일
오픈소스 하드웨어
소프트웨어만 오픈소스일 필요가 있나요
오픈소스 기반의 하드웨어 산업
▪ 의미
▪ 블루프린트 제공을 통한 어마어마한
비용 절감
▪ 신분야 개척의 다양한 주체 참여
가속화
▪ 오픈소스 하드웨어 부품 기업
▪ SparkFun
▪ Adafruit
▪ RepRap
▪ OpenCores
▪ 주요 분야
▪ 프로토타이핑
▪ IoT (사물인터넷)
▪ 교육용 기기
▪ 3D 프린터
▪ 드론
▪ 로봇
▪ 공장자동화
▪ 자율 주행 / 자율 비행
Open source hardware
▪ 오픈소스 하드웨어 운동의 시작
▪ 1997 년 (Bruce Perens)
▪ ODF (Open Design Foundation) (1999)
▪ 큰 영향을 주지 못하고 사그라듬
▪ IT 경제 환경의 변화
▪ 단위 연산량당 단가 하락
▪ 소프트웨어 파트의 오픈소스화 가속
▪ 다양한 오픈소스 소프트웨어 기반의 하드웨어 회사 출현
오픈소스 하드웨어 라이센스
▪ TAPR OHL (Open Hardware License)
▪ CERN OHL
▪ CERN의 장치 구축을 위해 개발된
장치들의 라이센스
▪ OSHW (2011)
▪ Open Hardware Summit
▪ 많은 양의 라이센스 존재
▪ 대부분의 라이센스가 소프트웨어
카운터파트의 하드웨어
라이센스라고 명기함
▪ 소프트/하드웨어 라이센스
▪ GPL
▪ LGPL
▪ MIT
▪ CC (Creative Commons)
▪ FreeBSD
오픈소스 프로토타이핑 하드웨어
하드웨어와 소프트웨어 경계의 파괴
MCU
▪ Microcontrollers
▪ 소형 컴퓨터 및 CPU 를 통칭
▪ 다양한 기기에 사용
▪ 스펙
▪ 용도에 따라 다양
▪ Programmable memory
▪ 2/4KB ~ 8MB
▪ Storage
▪ 다양한 용량
▪ 대표적인 MCU
▪ Atmel AVR (1997)
▪ Tiny (16KB) / Mega (256KB) models
▪ Intel 8051 (1980)
▪ PIC
▪ Zilog Z80 (1976)
▪ ARM
▪ Cortex M series (0, 3, 6)
▪ ESP8266 / ESP32 (2014 / 2016)
▪ 가격대 / 높은 연결성
센서보드
▪ 센서
▪ 다양한 센서 보급
▪ 대량 생산으로 인한 저가격화
▪ 대표적인 센서
▪ 온도 / 습도 센서
▪ 먼지 센서
▪ 가스 센서
▪ 조도 센서
▪ 초음파 센서
제어 모듈
▪ 제어 모듈
▪ 코드의 동작을 물리적인 운동으로 변환
▪ 로봇 / 3D 프린터 제작에 사용
▪ 종류
▪ 스테퍼
▪ 특정 레벨로 제한하는 동작에 사용
▪ 서보 모터
▪ 회전 동작에 사용
▪ 컨트롤 릴레이
▪ 전원 제어등에 사용
Arduino
▪ IDI (Italy, 2005)
▪ AVR 기반의 오픈소스 펌웨어가 내장된 프로토타이핑 보드
▪ 생각의 전환
▪ 마이크로컨트롤러의 코딩을 쉽게 하는 방법?
▪ C와 유사한 프로그래밍 문법과 컴파일러, IDE 및 펌웨어 레코더 제공
▪ 일반적인 기기들과의 연결을 쉽게 하는 방법?
▪ GPIO (General Purpose Input/Output) 제공
▪ 특징
▪ Arduino IDE 제공 – 오픈소스, 다양한 보드 지원 (서드파티 보드 추가 가능)
▪ 오픈소스 호환보드가 다수 존재함
▪ 장점
▪ 다양한 서드파티 모듈 (`쉴드`) 존재
▪ 여러 디자인의 보드가 있음
▪ 단점
▪ 낮은 스펙 / 느린 속도
▪ 4KB 프로그램 메모리 (UNO 모델 기준)
▪ 기본으로 제공하는 커넥티비티가 없음
▪ 블루투스/Zigbee 쉴드 또는 와이파이 쉴드를
사용해야 함
▪ 최근 문제
▪ 창업자간 불화로 커뮤니티 이분화 (2015)
▪ 최근 해결 (2016. 11)
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT);
}
void loop () {
digitalWrite (LED_PIN, HIGH);
delay (1000);
digitalWrite (LED_PIN, LOW);
delay (1000);
}
ESP8266 / ESP32
▪ Hackable MCU
▪ 와이파이 및 블루투스 자체 지원
▪ 엄청나게 작은 크기
▪ 개발보드의 경우에도 UNO의 1/3 크기
▪ 넓은 프로그래밍 메모리 공간 / 높은 성능
▪ 그런데 가격이…
▪ 성능에 기반한 확장성
▪ Lua / Micropython 및 Arduino IDE 에서의 프로그래밍 지원
Raspberry Pi
▪ Raspberry Pi Foundation (2012)
▪ 교육용 목적으로 만들어진 ARM 기반의
컴퓨터
▪ 2006년 아이디어 프로토타이핑 오픈소스
공개 후 재단 설립
▪ 생각의 전환
▪ 교육용 컴퓨터는 잘 망가진다
▪ ➜ 망가져도 괜찮게 만든다
▪ 교육을 할 때 컴퓨터의 효용성을
알려주기 어렵다
▪ ➜ 눈에 만질 수 있는 기기를 연결하게
해 준다
▪ 특징
▪ 다양한 운영체제 지원
▪ GPIO를 이용한 다양한 실습 및
장치 연결 지원
▪ SD카드, HDMI 및 무선랜,
블루투스등 다양한 연결 포트 및
방식 지원 (RPi 3 기준)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18, GPIO.OUT)
while True:
GPIO.output(18, True)
time.sleep(1)
GPIO.output(18, False)
time.sleep(1)
오늘의 Learn by run:
딥러닝 실습!
Learn by run: 딥러닝 실습
▪ 준비
▪ codeonweb의 practice 에서 tensorflow-python3 언어를 고릅시다.
▪ 또는 컴퓨터에 (python3 기반의) tensorflow를 설치해 옵니다.
https://tensorflow.org
▪ NMIST 숫자 인식 예제 만들어보기 – 지도학습 (supervised learning)
▪ 미리 설정되어 있는 NMIST 데이터를 불러오기
▪ 간단한 기계학습 모형 만들기
▪ 데이터로 학습한 모형의 정확도 보기
Last assignment: 프로젝트
▪ 프로젝트 발표
▪ 프로젝트 발표를 준비합니다.
▪ 팀당 10분 발표 / 발표자는 미리 지정합니다.
▪ 시연을 반드시 포함합니다.
▪ 프로젝트 보고
▪ 프로젝트에 관련한 보고를 작성합니다.
Last assignment: 프로젝트
▪ 프로젝트 보고서
▪ 프로젝트에 관련한 보고서를 작성합니다.
▪ “서면 보고서” 제출이 아닙니다.
▪ 아래의 내용을 github의 README.md 및
위키에 작성합니다.
▪ 프로젝트 제목 (README.md)
▪ 팀명 / 팀원 이름 (README.md)
▪ 요약 (README.md)
▪ 프로젝트의 목표
▪ 프로젝트의 지향점에 대한 설명
▪ 영문 버전 포함
▪ 소개 (README.md)
▪ 구현 언어 포함
▪ 라이센스에 대한 소개 포함
▪ 구현체 설명 (소스코드내)
▪ 소스내 모듈에 대한 설명
▪ sphinx 문법으로 소스 내에 설명
▪ 시연 결과 (README.md)
▪ 스크린샷 (3장 이상)
▪ 향후 계획 (README.md 또는 위키)
▪ 앞으로의 업데이트 계획에 대한 소개
Next is...
15/15: Project demonstration
@inureyes
Questions? inureyes@gmail.com
OR
https://www.codeonweb.com/circle/@oss-basics-hu

More Related Content

What's hot

PyCon 2015 - 업무에서 빠르게 활용하는 PyQt
PyCon 2015 - 업무에서 빠르게 활용하는 PyQtPyCon 2015 - 업무에서 빠르게 활용하는 PyQt
PyCon 2015 - 업무에서 빠르게 활용하는 PyQt덕규 임
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 
CircleCI로 Serverless API의 CI/CD 환경 구축하기
CircleCI로 Serverless API의 CI/CD 환경 구축하기CircleCI로 Serverless API의 CI/CD 환경 구축하기
CircleCI로 Serverless API의 CI/CD 환경 구축하기Kyuhyun Byun
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님NAVER D2
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드NAVER Engineering
 
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱NAVER Engineering
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Sung-tae Ryu
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼Kenu, GwangNam Heo
 
112 deview
112 deview112 deview
112 deviewNAVER D2
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Daniel Juyung Seo
 
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대CONNECT FOUNDATION
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Eunchong Yu
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법Young D
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수Yeon Soo Kim
 

What's hot (20)

PyCon 2015 - 업무에서 빠르게 활용하는 PyQt
PyCon 2015 - 업무에서 빠르게 활용하는 PyQtPyCon 2015 - 업무에서 빠르게 활용하는 PyQt
PyCon 2015 - 업무에서 빠르게 활용하는 PyQt
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
Goorm소개
Goorm소개Goorm소개
Goorm소개
 
CircleCI로 Serverless API의 CI/CD 환경 구축하기
CircleCI로 Serverless API의 CI/CD 환경 구축하기CircleCI로 Serverless API의 CI/CD 환경 구축하기
CircleCI로 Serverless API의 CI/CD 환경 구축하기
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님오픈소스 SW 라이선스 - 박은정님
오픈소스 SW 라이선스 - 박은정님
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
 
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼
 
112 deview
112 deview112 deview
112 deview
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
 
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
 

Similar to OSS SW Basics Lecture 14: Open source hardware

머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기Minho Lee
 
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)JiandSon
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)Sang Don Kim
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼NAVER D2
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systemsH K Yoon
 
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)Jeongkyu Shin
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본Dong Hwa Jeong
 
OSHWA를 중심으로 하는 OSHW의 이해
OSHWA를 중심으로 하는 OSHW의 이해OSHWA를 중심으로 하는 OSHW의 이해
OSHWA를 중심으로 하는 OSHW의 이해Jinbuhm Kim
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2Minsuk Lee
 
라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상Jin-Hyun Park
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발chcbaram
 
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직Kaphyun Kim
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypiYeonah Ki
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계chcbaram
 

Similar to OSS SW Basics Lecture 14: Open source hardware (20)

머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
 
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
 
PI day in COREA
PI day in COREAPI day in COREA
PI day in COREA
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
[1C6]오픈소스 하드웨어 플랫폼과 Node.js로 구현하는 IoT 플랫폼
 
Open source Embedded systems
Open source Embedded systemsOpen source Embedded systems
Open source Embedded systems
 
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본
 
OSHWA를 중심으로 하는 OSHW의 이해
OSHWA를 중심으로 하는 OSHW의 이해OSHWA를 중심으로 하는 OSHW의 이해
OSHWA를 중심으로 하는 OSHW의 이해
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
 
라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직
(팝콘사) 입사지원자를 위한 회사소개 - 개발직, 사무직
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
 

More from Jeongkyu Shin

Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Jeongkyu Shin
 
Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Jeongkyu Shin
 
TensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsTensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsJeongkyu Shin
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기Jeongkyu Shin
 
오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들Jeongkyu Shin
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권Jeongkyu Shin
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubJeongkyu Shin
 
Google Polymer in Action
Google Polymer in ActionGoogle Polymer in Action
Google Polymer in ActionJeongkyu Shin
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlowJeongkyu Shin
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Jeongkyu Shin
 
Deep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsDeep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsJeongkyu Shin
 
OSS SW Basics Lecture 12: Open source in research fields
OSS SW Basics Lecture 12: Open source in research fieldsOSS SW Basics Lecture 12: Open source in research fields
OSS SW Basics Lecture 12: Open source in research fieldsJeongkyu Shin
 
OSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectOSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectJeongkyu Shin
 
OSS SW Basics Lecture 09: Communications in open-source developments
OSS SW Basics Lecture 09: Communications in open-source developmentsOSS SW Basics Lecture 09: Communications in open-source developments
OSS SW Basics Lecture 09: Communications in open-source developmentsJeongkyu Shin
 
OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)Jeongkyu Shin
 
OSS SW Basics Lecture 06: Software Configuration Management
OSS SW Basics Lecture 06: Software Configuration ManagementOSS SW Basics Lecture 06: Software Configuration Management
OSS SW Basics Lecture 06: Software Configuration ManagementJeongkyu Shin
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsJeongkyu Shin
 
OSS SW Basics Lecture 02: History, culture and community of open-source
OSS SW Basics Lecture 02: History, culture and community of open-sourceOSS SW Basics Lecture 02: History, culture and community of open-source
OSS SW Basics Lecture 02: History, culture and community of open-sourceJeongkyu Shin
 
OSS SW Basics Lecture 01: Boot camp
OSS SW Basics Lecture 01: Boot campOSS SW Basics Lecture 01: Boot camp
OSS SW Basics Lecture 01: Boot campJeongkyu Shin
 
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...Jeongkyu Shin
 

More from Jeongkyu Shin (20)

Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0Boosting machine learning workflow with TensorFlow 2.0
Boosting machine learning workflow with TensorFlow 2.0
 
Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Machine Learning in Google I/O 19
Machine Learning in Google I/O 19
 
TensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning ModelsTensorFlow 2: New Era of Developing Deep Learning Models
TensorFlow 2: New Era of Developing Deep Learning Models
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
 
오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들오픈소스 라이선스를 둘러싼 소송들
오픈소스 라이선스를 둘러싼 소송들
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow Hub
 
Google Polymer in Action
Google Polymer in ActionGoogle Polymer in Action
Google Polymer in Action
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlow
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
 
Deep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractionsDeep-learning based Language Understanding and Emotion extractions
Deep-learning based Language Understanding and Emotion extractions
 
OSS SW Basics Lecture 12: Open source in research fields
OSS SW Basics Lecture 12: Open source in research fieldsOSS SW Basics Lecture 12: Open source in research fields
OSS SW Basics Lecture 12: Open source in research fields
 
OSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term projectOSS SW Basics Lecture 10: Setting up term project
OSS SW Basics Lecture 10: Setting up term project
 
OSS SW Basics Lecture 09: Communications in open-source developments
OSS SW Basics Lecture 09: Communications in open-source developmentsOSS SW Basics Lecture 09: Communications in open-source developments
OSS SW Basics Lecture 09: Communications in open-source developments
 
OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)OSS SW Basics Lecture 08: Software Configuration Management (2)
OSS SW Basics Lecture 08: Software Configuration Management (2)
 
OSS SW Basics Lecture 06: Software Configuration Management
OSS SW Basics Lecture 06: Software Configuration ManagementOSS SW Basics Lecture 06: Software Configuration Management
OSS SW Basics Lecture 06: Software Configuration Management
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
 
OSS SW Basics Lecture 02: History, culture and community of open-source
OSS SW Basics Lecture 02: History, culture and community of open-sourceOSS SW Basics Lecture 02: History, culture and community of open-source
OSS SW Basics Lecture 02: History, culture and community of open-source
 
OSS SW Basics Lecture 01: Boot camp
OSS SW Basics Lecture 01: Boot campOSS SW Basics Lecture 01: Boot camp
OSS SW Basics Lecture 01: Boot camp
 
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
 

OSS SW Basics Lecture 14: Open source hardware

  • 3. 오픈소스 기반의 하드웨어 산업 ▪ 의미 ▪ 블루프린트 제공을 통한 어마어마한 비용 절감 ▪ 신분야 개척의 다양한 주체 참여 가속화 ▪ 오픈소스 하드웨어 부품 기업 ▪ SparkFun ▪ Adafruit ▪ RepRap ▪ OpenCores ▪ 주요 분야 ▪ 프로토타이핑 ▪ IoT (사물인터넷) ▪ 교육용 기기 ▪ 3D 프린터 ▪ 드론 ▪ 로봇 ▪ 공장자동화 ▪ 자율 주행 / 자율 비행
  • 4. Open source hardware ▪ 오픈소스 하드웨어 운동의 시작 ▪ 1997 년 (Bruce Perens) ▪ ODF (Open Design Foundation) (1999) ▪ 큰 영향을 주지 못하고 사그라듬 ▪ IT 경제 환경의 변화 ▪ 단위 연산량당 단가 하락 ▪ 소프트웨어 파트의 오픈소스화 가속 ▪ 다양한 오픈소스 소프트웨어 기반의 하드웨어 회사 출현
  • 5. 오픈소스 하드웨어 라이센스 ▪ TAPR OHL (Open Hardware License) ▪ CERN OHL ▪ CERN의 장치 구축을 위해 개발된 장치들의 라이센스 ▪ OSHW (2011) ▪ Open Hardware Summit ▪ 많은 양의 라이센스 존재 ▪ 대부분의 라이센스가 소프트웨어 카운터파트의 하드웨어 라이센스라고 명기함 ▪ 소프트/하드웨어 라이센스 ▪ GPL ▪ LGPL ▪ MIT ▪ CC (Creative Commons) ▪ FreeBSD
  • 7. MCU ▪ Microcontrollers ▪ 소형 컴퓨터 및 CPU 를 통칭 ▪ 다양한 기기에 사용 ▪ 스펙 ▪ 용도에 따라 다양 ▪ Programmable memory ▪ 2/4KB ~ 8MB ▪ Storage ▪ 다양한 용량 ▪ 대표적인 MCU ▪ Atmel AVR (1997) ▪ Tiny (16KB) / Mega (256KB) models ▪ Intel 8051 (1980) ▪ PIC ▪ Zilog Z80 (1976) ▪ ARM ▪ Cortex M series (0, 3, 6) ▪ ESP8266 / ESP32 (2014 / 2016) ▪ 가격대 / 높은 연결성
  • 8. 센서보드 ▪ 센서 ▪ 다양한 센서 보급 ▪ 대량 생산으로 인한 저가격화 ▪ 대표적인 센서 ▪ 온도 / 습도 센서 ▪ 먼지 센서 ▪ 가스 센서 ▪ 조도 센서 ▪ 초음파 센서
  • 9. 제어 모듈 ▪ 제어 모듈 ▪ 코드의 동작을 물리적인 운동으로 변환 ▪ 로봇 / 3D 프린터 제작에 사용 ▪ 종류 ▪ 스테퍼 ▪ 특정 레벨로 제한하는 동작에 사용 ▪ 서보 모터 ▪ 회전 동작에 사용 ▪ 컨트롤 릴레이 ▪ 전원 제어등에 사용
  • 10. Arduino ▪ IDI (Italy, 2005) ▪ AVR 기반의 오픈소스 펌웨어가 내장된 프로토타이핑 보드 ▪ 생각의 전환 ▪ 마이크로컨트롤러의 코딩을 쉽게 하는 방법? ▪ C와 유사한 프로그래밍 문법과 컴파일러, IDE 및 펌웨어 레코더 제공 ▪ 일반적인 기기들과의 연결을 쉽게 하는 방법? ▪ GPIO (General Purpose Input/Output) 제공 ▪ 특징 ▪ Arduino IDE 제공 – 오픈소스, 다양한 보드 지원 (서드파티 보드 추가 가능) ▪ 오픈소스 호환보드가 다수 존재함
  • 11. ▪ 장점 ▪ 다양한 서드파티 모듈 (`쉴드`) 존재 ▪ 여러 디자인의 보드가 있음 ▪ 단점 ▪ 낮은 스펙 / 느린 속도 ▪ 4KB 프로그램 메모리 (UNO 모델 기준) ▪ 기본으로 제공하는 커넥티비티가 없음 ▪ 블루투스/Zigbee 쉴드 또는 와이파이 쉴드를 사용해야 함 ▪ 최근 문제 ▪ 창업자간 불화로 커뮤니티 이분화 (2015) ▪ 최근 해결 (2016. 11)
  • 12. #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); } void loop () { digitalWrite (LED_PIN, HIGH); delay (1000); digitalWrite (LED_PIN, LOW); delay (1000); }
  • 13. ESP8266 / ESP32 ▪ Hackable MCU ▪ 와이파이 및 블루투스 자체 지원 ▪ 엄청나게 작은 크기 ▪ 개발보드의 경우에도 UNO의 1/3 크기 ▪ 넓은 프로그래밍 메모리 공간 / 높은 성능 ▪ 그런데 가격이… ▪ 성능에 기반한 확장성 ▪ Lua / Micropython 및 Arduino IDE 에서의 프로그래밍 지원
  • 14. Raspberry Pi ▪ Raspberry Pi Foundation (2012) ▪ 교육용 목적으로 만들어진 ARM 기반의 컴퓨터 ▪ 2006년 아이디어 프로토타이핑 오픈소스 공개 후 재단 설립 ▪ 생각의 전환 ▪ 교육용 컴퓨터는 잘 망가진다 ▪ ➜ 망가져도 괜찮게 만든다 ▪ 교육을 할 때 컴퓨터의 효용성을 알려주기 어렵다 ▪ ➜ 눈에 만질 수 있는 기기를 연결하게 해 준다 ▪ 특징 ▪ 다양한 운영체제 지원 ▪ GPIO를 이용한 다양한 실습 및 장치 연결 지원 ▪ SD카드, HDMI 및 무선랜, 블루투스등 다양한 연결 포트 및 방식 지원 (RPi 3 기준)
  • 15.
  • 16. import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(18, GPIO.OUT) while True: GPIO.output(18, True) time.sleep(1) GPIO.output(18, False) time.sleep(1)
  • 17. 오늘의 Learn by run: 딥러닝 실습!
  • 18. Learn by run: 딥러닝 실습 ▪ 준비 ▪ codeonweb의 practice 에서 tensorflow-python3 언어를 고릅시다. ▪ 또는 컴퓨터에 (python3 기반의) tensorflow를 설치해 옵니다. https://tensorflow.org ▪ NMIST 숫자 인식 예제 만들어보기 – 지도학습 (supervised learning) ▪ 미리 설정되어 있는 NMIST 데이터를 불러오기 ▪ 간단한 기계학습 모형 만들기 ▪ 데이터로 학습한 모형의 정확도 보기
  • 19. Last assignment: 프로젝트 ▪ 프로젝트 발표 ▪ 프로젝트 발표를 준비합니다. ▪ 팀당 10분 발표 / 발표자는 미리 지정합니다. ▪ 시연을 반드시 포함합니다. ▪ 프로젝트 보고 ▪ 프로젝트에 관련한 보고를 작성합니다.
  • 20. Last assignment: 프로젝트 ▪ 프로젝트 보고서 ▪ 프로젝트에 관련한 보고서를 작성합니다. ▪ “서면 보고서” 제출이 아닙니다. ▪ 아래의 내용을 github의 README.md 및 위키에 작성합니다. ▪ 프로젝트 제목 (README.md) ▪ 팀명 / 팀원 이름 (README.md) ▪ 요약 (README.md) ▪ 프로젝트의 목표 ▪ 프로젝트의 지향점에 대한 설명 ▪ 영문 버전 포함 ▪ 소개 (README.md) ▪ 구현 언어 포함 ▪ 라이센스에 대한 소개 포함 ▪ 구현체 설명 (소스코드내) ▪ 소스내 모듈에 대한 설명 ▪ sphinx 문법으로 소스 내에 설명 ▪ 시연 결과 (README.md) ▪ 스크린샷 (3장 이상) ▪ 향후 계획 (README.md 또는 위키) ▪ 앞으로의 업데이트 계획에 대한 소개
  • 21. Next is... 15/15: Project demonstration @inureyes Questions? inureyes@gmail.com OR https://www.codeonweb.com/circle/@oss-basics-hu