2015년 PC제어로봇프로그래밍 강의계획 / 실습
■ 강의계획서
■ 강의자료 PPT
(실습 2주차) 윈도프로그래밍
(2주차 과제. 3월 9일 출제, 3월 16일 제출) 위의 "주사위와가우스분포" 프로그램을 작성하라. 소스코드, 화면구성, 실행결과를 출력하여 제출하라.
(실습 3주차) 자료형. 비트조작
(3주차 과제. 3월 16일 출제, 3월 23일 제출) 다음과 같은 PhotoMagic 프로그램을 작성하라. 소스코드, 화면구성, 실행결과를 출력하여 제출하라. 아래 주어진 PhotoMagic_frame.zip 의 소스에 필요한 코드를 추가한다.
1. Encoding
- 각 픽셀의 RGB 값을 byte로 얻는다
- 각 RGB값을 주어진 만큼 left bit shift (wrap around 시킨다)
- 입력된 magic number와 bitwise xor 시킨다.
- 얻어진 RGB로 새로운 그림을 만든다.
2. Decoding
- Decode는 Encode의 역순
(실습 4주차) 연산자. 그림실습
(4주차 과제. 3월 23일 출제, 3월 30일 제출) 위의 문서에서 2차식에 의한 최소제곱 근사 문제를 풀어 그래프로 그려주는 프로그램을 작성하라. 소스코드, 화면구성, 실행결과를 출력하여 제출하라.
(실습 5주차)
(5주차 과제. 3월 30일 출제, 4월 6일 제출) 위의 문서 "GCode뷰어만들기.hwp"를 참고하여 이를 완성하라. 예제 cnc 파일을 읽어 다음 그림이 출력되도록 한다. 소스코드, 화면구성, 실행결과를 출력하여 제출하라.
(실습 6주차) 클래스
(실습 7주차) 윈도그래픽스
AnalogClock.hwpAnalogClock.zip
(7주차 과제. 4월 13일 출제, 4월 20일 제출) 위의 문서 TwoLink 문제를 완성하라. 소스코드, 화면구성, 실행결과를 출력하여 제출하라.
(실습 9주차) 아두이노 기초실습
(9주차 과제. 5월 4일 출제, 5월 11일 제출) 수업시간의 아두이노 키트로 다음과 같은 프로그램을 작성하라.
(1) 2번 핀의 버튼을 누르면 LED가 (0,0,0,0)->(1,0,0,0)->(1,1,0,0)->(1,1,1,0)->(1,1,1,1)->(0,0,0,0) 로 켜지기를 반복한다. 스위치를 놓으면 모두 꺼진다.
(2) 3번 핀의 버튼을 누르면 LED가 (1,0,1,0) 과 (0,1,0,1) 로 켜지기를 반복한다.
(3) 2,3번 핀의 버튼을 같이 누르면 모든 LED가 꺼진다.
(4) 4번 핀의 버튼을 누르면 위 (1), (2) 번의 동작이 빨라진다. 4번 핀 버튼을 떼면 다시 느려진다.
(*) delay( ) 를 사용하면 프로그램은 조금 쉬워지나 버튼에 대한 반응이 느릴 수 있다. delay( )를 사용해서 코딩해도 되지만 사용하지 않고 해보면 더욱 좋다.
(*) delay( )는 많은 기초예제에서 사용되고 있으나 loop 함수의 흐름을 block 하기 때문에 여러 종류의 작업이 동시에 이뤄져야 하는 경우 큰 문제를 발생시킬 수 있다.
(중간프로젝트) 몬테카를로 시뮬레이션에 의한 다각형 면적 추정
(실습 10주차) Serial 통신을 이용한 아두이노 보드의 모니터링 및 제어
(실습 11주차) C# 환경에서 OpenCV 사용하기와 간단한 이미지프로세싱
(*) OpenCV와 OpenCVSharp 는 masw.ipdisk.co.kr 에서 다운받을 것
(실습 12주차) C# 환경에서 TCP 통신
(*) 기 수강자를 위한 다른 실습 : 비트맵의 조작.
(생각할문제 1) 픽셀 별 조작을 실용적으로 빠르게 하려면 어떻게 해야 하는가?
(생각할문제 2) 그림을 임의의 각도로 회전하려면 어떻게 해야 하는가?
(XY 플로터 구동을 위한 Command)