이름 하여 '상황인식 전자 의수'
처음은 터미네이터 손을 만들어 보려고 했으나... ㅠㅜ


 

 

 


그래도 나름 들어간 기술은

안드로이드 모바일 프로그래밍
안드로이드 폰 사진을 영상처리하는 영상처리 프로그래밍
영상을 처리해서 블루투스로 전송하는 네트워크 프로그래밍(?)
스테핑모터 제어와 초음파센서, 블루투스 모듈을 컨트롤하는 임베디드 프로그래밍... -_-;;

 

 

 

 


분명 들어간 기술은 대상감이였는데...

마무리가 미흡해서 오락가락...
프로그래밍보다 손을 만드는데 더 시간이 투자되었다는

 

 

 

우리 기계기술팀의 말씀...
(기계과도 전자과도 아닌, 그들도 컴공과이다... ㅠㅜ)

그래도 동상이 어디인고 ㅎㅎㅎ

 

 

 

 

Posted by Programist
,

4학년 1학기 중간무렵인가...? 수업시간에 갑자기 문득 생각이 들어 만들어 보게 된 프로그램...
USB 파일 복사로 몰래 빼오는, 한마디로 USB 파일을 훔치는 프로그램이다.



USB FileStealer v1.0

 

 

초창기 버전이다.
이 당시에만 해도 Hooking에 대한 방법이라는 것을 몰라서,
그냥 타이머 설정으로 주기마다 USB를 긁어오는 방식을 사용했다.

또한 USB장치 인식에 대한 Message를 받아오는 방법도 몰라서, 그냥 USB를 꽂으면 당연히 E드라이브 이겠거니,
예상을 하며 대상 위치 설정을 해줘야 했던 불편함과 무식함으로 일구어 낸 작품이다. ㅋㅋ

작업표시줄에도 프로그램 뜨는것을 숨기는 방법은 알았으나, 마찬가지로 Keyboard Hooking방법을 몰랐던 당시로서는 어쩔 수 없이, TrayIcon화를 해야 했었다.

하지만, TrayIcon화를 하면 티가 나지 않겠는가!?
그래서 그냥 더블클릭하면 Security창이 뜨게 만들었다. 비번은? 0000 ㅡ,.ㅡ;;;


 

USB File Transmission v2.0 for C#

 

 


4학년 1학기가 끝나갈 무렵, 다시 업데이트를 해보자는 마음으로 손을 대고, 인터페이스 간략화를 시도한
USB File Transmission v2.0 for C#.
사실 Stealer라는 이름이 너무 노골적이라서, 프로그램 이름을 변경;;

USB Device 장치 인식 시에 발생하는 Message를 보고, Copy Process를 실행하게 된다.

또한 KeyboardHooking을 지원하여, 작업표시줄의 내역과, TrayIcon을 제거하더라도, Alt+F12의 단축키로 프로그램을 올리고 숨길 수 있었다. (하지만 그냥 왠만한 컴퓨터 아는 사람들은 작업관리자에서 확인가능 ㅡ,.ㅡ)

Setting.ini파일에 설정에 대한 내역을 저장하여, 언제든지 프로그램을 실행시키면, 기존의 설정을 그대로 유지할 수 있도록 하였다.


USB File Transmission v2.1 for MFC

 

 


 

방학 후, 다시 한번 MFC로 컨버팅을 해보았다.
기능도 HardDisk와 FTP Server 2가지 방법으로 복사가 가능하도록 추가하였고, 파일 확장자에 복사를 1가지에서 여러가지로 목록을 추가, 삭제를 할 수 있도록, 인터페이스를 개선하였다.

나머지는 기존의 방식과 그대로~



이런 프로그램 한번쯤을 다들 생각해 볼 것이라 생각하고, 벤치마킹을 하기 위해, 다른 사람이 만든 여러 자료를 찾아봤지만 예상외로 이상하게 이런쪽의 프로그램이 엄청 드물었다.
다만, 검색해보니, 이런 어두운 쪽보다, USB File Backup같은 의미있는 프로그램들도 있는 것을 보고, 이걸 그런쪽으로 한번 바꿔보까 생각도 든다.
(물론 귀찮으면 안하겠지만...)

Posted by Programist
,

3학년 2학기 Database 프로그래밍 Term Project이다.
다행히 100점 맞은 열차 예약 관리 프로그램이다 ㅋㅋ
C#에 대해서 하나도 몰랐는데... 한학기 기간동안 잘 넘어간거 같다 ^^;;
여러므로 많은 경험이 된 Project였던것 같다.. 특히 DB설계 ㅠㅠ 
C#이라는 언어로 하기가 이렇게 편한지도 처음 알았고 ㅠ
깊이 들어가면 얘기는 다르겠지만 ㅡ,.ㅡ;; 아직까지 이정도는;;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by Programist
,

4학년 1학기 영상처리시간에 Term Project로서 했던, 유사한 세포 이미지를 검색하는 프로그램...
간단히 설명하자면, Target이미지를 불러와서 대상이미지에서 Target이미지와 유사한 이미지를 찾는 프로그램이다.
프로젝트 하면서, 오호~ 되네~? 라고 내가 만들고도 신기해 했던 프로그램인듯 ㅋㅋ

MFC에서 지원된 Ribbon인터페이스는 처음 해보는지라... 알고리즘보단,
(알고리즘 이래봤자 책에 있는것 가져오는게 전부라서.. -_-;;)

인터페이스 만든다고 삽질한게 시간 더 걸린듯... ㅋㅋ
그래도 하면서 나름 많은것을 건진 Term Project였던 것 같다 ㅋㅋ

 

 

 

 

사용한 알고리즘은 다음과 같다

- K-Mean Clustering
- Thresholding
- Morphology Opening & Closing
- Connected Labeling
- Invariant Moment

 

 


 

 

 

 

 

 

 

 

'Portfolio' 카테고리의 다른 글

[C#->MFC] USB File Stealer  (0) 2014.11.29
[C#, Oracle] 철도 예약 관리 프로그램  (3) 2014.11.29
[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
Posted by Programist
,

4학년 1학기 네트워크 프로그래밍 Term Project winsock을 이용한 FTP Client.
말이 좋아, 네트워크 프로그래밍이지 C로 FTP명령어 ParsingPassive Mode 설정 빼고는
노가다 작업 Term Project인듯 하다 -_-;;;

처음에 Term Project를 MFC기반으로 할 것이라는 이야기가 나왔었지만...
결국엔 Console로 진행 확정. ㅡ,.ㅡ;;

MFC로 했으면 하마터면 알FTP만들뻔 -ㅅ- ;;;
코딩하는데는 한 3일 걸린것같다...;;

FTP명령어에 대한 Parsing은 strtok()함수를 사용하여, 띄워쓰기에 대한 Count를 돌려,
동적할당으로 그때 그때 메모리를 늘리고 지우도록 코딩하였다.

처음에 가장 어리버리했던 Active ModePassive Mode 접속방법...

이 Term Project에서 send()함수와 recv()노가다만 작업한다면,
FTP명령어의 80%정도는 Active Mode에서 구현이 가능하다...
(open, ls, rename, delete, info, pwd, mkdir, rmdir, cwd, bye 등등...)
하지만 20%정도는 Passive Mode에서 명령어 사용이 가능하다.
(put, get, mget, mput, rget 등등...)

문제는 FTP는 파일 전송 프로토콜(File Transfer Protocol)이므로, 나머지 20%가 더 중요하다는 것...


Active Mode

 

 

Passive Mode

 

 

open 명령어로 FTP Server에 접속할 때는 Active Mode로 접속을 하지만, Active Mode로 FTP Server를 접속한 후, 데이터를 업/다운로드 하기 위해서는 Passive Mode로 다시 요청하여 접속을 해아한다.
그러기 위해서는 PASV 명령어를 send하여 recv로 A1,A2,A3,A4,a1,a2를 받고,
부여받은 A1,A2,A3,A4,a1,a2를 변환하여 connect()을 시도하면 Passive Mode로 접속이 가능하다.

(
A1,A2,A3,A4=IP, a1,a2=Port -> Port Number 계산법 : a1*256+a2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Portfolio' 카테고리의 다른 글

[C#, Oracle] 철도 예약 관리 프로그램  (3) 2014.11.29
[MFC] 유사 세포이미지 검색  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
[JAVA] 계산기  (0) 2014.11.29
Posted by Programist
,

인공지능 시간때, 첫번때 과제로 주어진 k-Nearest Neighbor Classifier을 구현한 프로그램이다.
다섯개의 그룹 A,B,C,D,E로 랜덤 함수를 이용해서, 각각 그룹의 100개씩, 500개의 훈련 데이터와, 각각 그룹의 10개씩, 50개의 테스트 데이터를 사용하여, k값의 변동에 따라, 유클리드 거리와, 맨하탄 거리를 구하여, 테스트 데이터들이 제대로 그룹에 분류가 되는지, 인식률을 보는 모의 시뮬레이션 프로그램이다

- 유클리드 거리 계산

 

- 맨하탄 거리 계산

 

 

 

 

 

 

 

 

 

 

 

'Portfolio' 카테고리의 다른 글

[MFC] 유사 세포이미지 검색  (0) 2014.11.29
[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
[JAVA] 계산기  (0) 2014.11.29
[C] 장애물 피하기 Game  (0) 2014.11.29
Posted by Programist
,

[MFC] PingPong

Portfolio 2014. 11. 29. 18:24

3학년 1학기때 배우게 된 MFC, 학교 커리큘럼이 이상한 것이... -_-;;
C++과목이 따로 없다... 이론시간에는 C++, 실습시간에는 MFC -_-;;
C++을 따로 독학해야했지만... MFC시간의 Term Project 자체도 2개의 공 튀기는 샘플 코드를 주고,

이것을 활용해서 게임을 만들어라는 것이 주제였다...
하는수 없이, 떠오르는건 PingPong Game 밖에...

Visual로 말할거같으면 정말 허접하게 그지 없는... 부끄러울정도로... ㅠㅠ
이 프로그램에 대한 애착을 안가져준것이 지금에 와서는 후회스럽긴 하네... ㅋㅋ

 

 

'Portfolio' 카테고리의 다른 글

[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[JAVA] 계산기  (0) 2014.11.29
[C] 장애물 피하기 Game  (0) 2014.11.29
[C] Baseball 숫자 맞추기 게임  (0) 2014.11.29
Posted by Programist
,

[JAVA] 계산기

Portfolio 2014. 11. 29. 18:23

2학년때, 태어나서 처음으로 GUI 인터페이스를 만들어보았다...
비록 간단한 계산기였지만... 난생 처음 해본 GUI인터페이스라 기억에 남아서 올려본다...
계산기 따위가 뭐가 대수냐라고 생각하겠지만, 그때만해도 은근히 생각지도 못한 버그들 때문에 꽤나 고민했던것으로 기억한다. 소수점 연산이라던지, 연산 후, 소수점 조절 등등, 생각보다 예외처리가 많았던...

 

 

'Portfolio' 카테고리의 다른 글

[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
[C] 장애물 피하기 Game  (0) 2014.11.29
[C] Baseball 숫자 맞추기 게임  (0) 2014.11.29
Posted by Programist
,

2학년때는 해본게 C Console 프로그램밖에 해본적이 없으니 -_-;;

이건 동아리에서 한 것... 회장선배님의 1달에 1개씩 Project 수행 정책에 의하여... 규모가 양산형... ㅋㅋ

이 게임에 대해 설명하자면... 어떻게 보면 똥피하기(?), 어떻게 보면 자동차 장애물 피하기(?)가
될 수 있는 게임이다.
대충 피하는 것, 속도 조절, 일시 정지 가능... *에 의해서 부딫히게되면 계속 아래로 떨어지고, 결국 마지막까지 떨어지면, GameOver. 주행거리가 100Km 늘어날때마다 한칸씩 올라간다.

솔찍히 만드는 데는 1주정도 걸린것으로 기억하는데... 이 이후로, 1달에 1번씩 Project 정책은 흐지부지하게 되고...
그래도나름 하면서 재미는 있었ㄷ...

 

 

 

 

'Portfolio' 카테고리의 다른 글

[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
[JAVA] 계산기  (0) 2014.11.29
[C] Baseball 숫자 맞추기 게임  (0) 2014.11.29
Posted by Programist
,

1학년때, C언어 프로그래밍 시간에 1주일짜리 TermProject 과제였던것으로 기억한다.
(이게 무슨 Term Project 거리라도 되냐고 싶지만... 태어나서 처음 컴퓨터 언어라는 것을 배워서 만들었다는 것에 의미를 두고 싶다.)

제대를 하고, 2학년때, 옛기억을 떠올려 간단하게 숫자에 대한 결과를 표시하는 Field를 넣었는데..

저건 그냥 자료구조 연습삼아서, 넣어본 단일링크드리스트 ㅡ,.ㅡ;;;

 

 

 

 

 

 

'Portfolio' 카테고리의 다른 글

[C] Winsock을 이용한 FTP Client 소켓 프로그래밍  (0) 2014.11.29
[MFC] k-Nearest Neighbor Classifier  (0) 2014.11.29
[MFC] PingPong  (0) 2014.11.29
[JAVA] 계산기  (0) 2014.11.29
[C] 장애물 피하기 Game  (0) 2014.11.29
Posted by Programist
,