Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OSS SW Basics Lecture 14: Open source hardware

240 views

Published on

Lectures on Open-source SW Basics 2016 - 14: Open source in research fields

Published in: Education
  • Be the first to comment

OSS SW Basics Lecture 14: Open source hardware

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

×