친구가 루리웹에도 올려보라해서 올려봅니다^^
제작 기간 : 3개월(2021.02.21~2021.05.07)
제작 영상 : https://youtu.be/0jqT056AkuE
1. 사건의 발단
이 모든 사건의 원흉(?)은 어느 잠 오지 않던 늦은 밤. 유튜브 영상을 하나 보면서였습니다.
문제 영상 : https://youtu.be/ykAoHVI2el0
뭐랄까...
이것만 보면 저같은 기계치도 충분히 시도할 수 있을 것만 같더군요.
하지만 그것이 오산이었음은 금방 알게 되는데...
2. 필요한 물품 구입(그리고 전체 예산)
모르면 용감하다고 누가 말했던가? 문제 영상의 유튜버가 이야기한 것 처럼 고장난 '플레이스테이션2(메모리카드포함)'를 중고로 배송비 포함 13,000 원에 구입한 것을 시작으로,
- 미니PC를 넣었다고 하기에 '기가바이트 GB-BACE-3000' 을 중고로 90,000 원에 구입.
- 220V암 커넥터 4,300 원(포인트로 결재)(사용하지 않음)
- USB 4구 허브 8,600원(사용하지 않음)
- 노트북 DVD롬 (고장난 노트북에서 DVD롬을 추출했기에 비용 미포함)
- 대신 ODD 외장 케이스 배송비 포함 10,500원 에 구입
- '듀얼쇼크2 컨버터 PS2 to PC 연결 USB 젠더' 2개(예전에 구입했던 것이라 가격 미포함)
- '듀얼쇼크2 컨버터 PS2 to PC 연결 USB 젠더'를 가공하기 위해 '미니톱날 6종 원형톱날' 을 배송비 포함 5,700원에 구입(미니 핸드그라인더는 예전에 구입했던 것이라 가격 미포함)
- USB2.0 연장케이블 0.5m 5개, USB허브 배송비 포함 11,250 원 에 구입(연장 케이블은 4개 사용, USB허브는 같은 걸 하나 더 사용했는데 기존에 구입했던 것이라 가격 미포함)
- USB 2포트 소켓 F형 DIY 모듈 2개 배송비 포함 2860원 에 구입(두 개 중 하나만 사용)
- HDMI 연장 젠더 50cm 포트형, 랜포트 연장 케이블 1M 포트형 배송비 포함 9,500 원
- 화상연고 4,000 원
- 아두이노 레오나르도 비틀 / 2012사이즈 4.7kΩ 칩저항 / 2핀 하네스 케이블 16,640원(최종적으로 아두이노 레어나르도 비틀만 사용)
- LED 파랑 5개, 2색 5개 3,950 원
- 신도리코 필라멘트 PLA 검정 30,900원
- 프라판(연질PS판) 1T 5장 8, 000원(사용하지 않음)
- 호환 미니 서보모터 SG-90 3,930원(사용하지 않음)
- 컴퓨터 리셋, 전원 스위치, 상태 LED 케이블 5,400 원(사용하지 않음)
- 5v 초소형 솔레노이드 9,990원(사용하지 않음)
- 3V 초소형 솔레노이드 6,900원(사용하지 않음)
- 1채널 5V 릴레이모듈 High/Low레벨 트리거 지원 4500원(구입은 했지만 스터터킷에 포함된걸 사용했기에 구입한건 사용하지 않음)
- USB 2.0 케이블 A to B 하향 꺾임 1.5M 8,210원
- 다이소 스축튜브 1,000 원
- 다이소 절연테이프 1,000 원
- 하드디스크 플렉시블 케이블 38,952 원(커넫터파손으로 사용하지 않음)
- 칼라 더블클립 1갑 미니 소 중 대 특 더블크립 서류 집게 5,210원
영수증 등 확인 가능한 내역으로 적어보면
실사용 '전체' 금액은 304,292 원
실사용 '제품' 금액은 205,750 원
여기서 중요한 부분은 장비나 몇 가지 소모품은 이미 가지고 있던 것이 있었기에 금액에 포함되어 있지 않았지만, 이것을 만들기 위해 구입한 참고 도서나 간식, 시간 비용을 생각하면... 추가 금액은 알아서 계산해주시기 바랍니다!!
버튼을 누를 때마다 LED색 바꾸기
http://blog.naver.com/roboholic84/220319426154
[아두이노] 외부 버튼 만들기
https://m.blog.naver.com/no1_devicemart/221301571838
- 윈도우상에서 단축키 만들기
https://ko.athowto.com/keyboard-shortcuts-close-open-cd-dvd-tray-windows-10
- NirCmd 설치 및 사용방법
https://zkim0115.tistory.com/1032
<참고사항>
nircmd는 설치한 폴더까지 접근한 다음 명령어를 넣어야 반응했습니다.
이번 경우에는 cd c:\ -> cd windows 를 통해 c:\Windows> 상태에서 명령어를 넣으니 되더군요.
그리고 인터넷 예제를 그대로 끌어 사용하면 공백(스페이스)가 있어서 명령어가 제대로 먹히지 않을때가 종종 있습니다.
- 사용한 코드
nircmd.exe cmdshortcutkey "~$folder.desktop$" "Open CDROM" "CTRL+SHIFT+O" CDROM open
노트북의 DVD롬일 경우 열기만 자동으로 가능하지만, 데스크탑 용은 닫기도 설정할 수 있더군요.
nircmd.exe cmdshortcutkey "~%folder.desktop%" "Close CDROM" "CTRL+SHIFT+C" cdrom close
- 아두이노 시뮬레이터
평소 자신을 마이너스의 손이라 생각하는 분들을 위해, 가상의 아두이노를 실험할 수 있는 방법이 있더군요.
https://blog.naver.com/yulian/221045206534
+ 아래는 아두이노 시뮬레이터가 있는 '틴커캐드' 주소
- 전원 버튼 누르면 윈도우10 종료로 넘어가게 설정하는 방법
https://lifenourish.tistory.com/681
- [아두이노] 아날로그 핀을 디지털 핀 처럼 사용하기 http://blog.naver.com/PostView.nhn?blogId=i2asys&logNo=220886459256&parentCategoryNo=&categoryNo=13&viewDate=&isShowPopularPosts=false&from=postView
- 릴레이 사용방법
https://m.blog.naver.com/ksjryan/221768174596
+ 아두이노 상상을 현실로 만드는 프로젝트 실전편 구입
- 아두이노와 릴레이를 이용해 컴퓨터 전원 켜고 끄기
https://blog.naver.com/gu04005/222307983232
[결론] - 그림은 회로, 글씨는 코드
#include //키보드함수 헤더 포함
#define ctrlshifto 9 //9번 핀을 ctrl+shift+o 스위치로
int Relay = 11; //릴레이를 디지털 11번핀으로 저장
int RED = A0; //RED라는 이름을 아날로그 0번핀으로 저장
int GREEN = A1; //GREEN이라는 이름을 아날로그 1번핀으로 저장
int BUTTON = A2; //BUTTON 이라는 이름을 디지털 2번핀으로 저장
int STATUS = 0; //STATUS 라는 이름을 0번이라는 변수명에 저장.
//(버튼이 눌릴때 마다 증가하는 숫자값에 따라 어떤 램프를 켤지 결정하는데 사용)
void setup() {
pinMode(BUTTON, INPUT); //BUTTON을 입력(INOUT)장치로 사용
pinMode(RED, OUTPUT); //RED을 출력(OUTPUT)장치로 사용
pinMode(GREEN, OUTPUT); //GREEN을 출력(OUTPUT)장치로 사용
pinMode(ctrlshifto,INPUT); //스위치 핀 입력으로 설정
pinMode(LED_BUILTIN,OUTPUT); //LED 핀 출력으로 설정
pinMode(Relay,OUTPUT); // 릴레이를 출력으로 설정
Keyboard.begin(); //키보드함수 작동 함수
}
void loop() {
if (digitalRead(BUTTON) == HIGH) //만약 버튼이 HIGH와 같다면( ==는 비교를 나타냄)(버튼을 누른다면)
{
digitalWrite(Relay,HIGH); // 조건 만족하면 1채널 릴레이 data-on
}
else
{
digitalWrite(Relay,LOW); // 아니면 1채널 릴레이 OFF
}
if(digitalRead(ctrlshifto)==LOW) //스위치가 눌렸을때
{
digitalWrite(LED_BUILTIN,HIGH); //LED를 점등합니다
Keyboard.releaseAll(); //혹시모를 간섭을 방지하기 위하여 모든 키보드를 초기화합니다
Keyboard.press(KEY_LEFT_CTRL); //왼쪽 ctrl 버튼을 누른채로 유지합니다
Keyboard.press(KEY_LEFT_SHIFT); //왼쪽 shift 버튼을 누른채로 유지합니다
Keyboard.press('o'); //o를 누른채로 유지합니다
Keyboard.releaseAll(); //모든 키보드를 초기화합니다
delay(200); //채터링을 방지하기위해 잠시 대기합니다
digitalWrite(LED_BUILTIN,LOW); //LED를 소등합니다
}
if (digitalRead(BUTTON) == HIGH) //만약 버튼이 HIGH와 같다면( ==는 비교를 나타냄)(버튼을 누른다면)
{
STATUS = STATUS + 1; //STATUS 는 STATUS+1의 값이 되고,
if (STATUS >= 2 ) //만약 STATUS가 2보다 크거나 같다면
{
STATUS = 0; //STATUS는 0
}
}
switch (STATUS)
{
case 0: //STATUS가 0일경우
digitalWrite(RED, HIGH); //RED에 HIGH(5V)가
digitalWrite(GREEN, LOW); //GREEN에 LOW(0V)가
delay(250);
break; //다음 명령 멈춤
case 1: //STATUS가 1일경우
digitalWrite(RED, LOW); //RED에 LOW(0V)가
digitalWrite(GREEN, HIGH); //GREEN에 HIGH(5V)가
delay(250);
break; //다음 명령 멈춤
}
delay(100);
}
[참고]
그동안 서보 모터, 솔레노이드 모터를 이용해 물리버튼을 만들기 위해 시도를 했지만 서보 모터는 플레이스테이션 내부 공간 부족, 솔레노이트 모터는 내부 공간 부족은 물론 물리 버튼을 누르기 위한 힘이 부족해 사용 하지 않았습니다. 덕분에 릴레이와 전기의 흐름에 대한 공부의 시간을 가질 수 있었는데요.
https://www.sketchup.com/ko/plans-and-pricing/sketchup-free
이미지의 STL(3D 프린터용 파일)은 해당 포스트에 첨부해놨습니다.
[추후 업그레이드 예정]
1. 전면 USB 2구 포트를 2.0에서 3.0으로 바꾸기
2. 메모리카드 슬롯도 USB 포트로 살리기
3. 가능하면 DVD롬도 본래 플레이스테이션2처럼 부드럽게 만들어보기
[유튜브 재생목록]
https://www.youtube.com/playlist?list=PLqdlq77ZpJ58CEmMyof-6k-YmThdDCyVy
DAY1(2021.02.23.)-PS2(플레이스테이션2) 분해
DAY2(2021.02.26.)-BB868 USB 외장 케이스 ODD(CD-Rom)용 조립
DAY3(2021.02.27.)-플레이스테이션2 세척 후 내부 공간 확인
DAY4(2021.03.08.)-기가바이크 미니PC분해와 약간의 납땜(윈도우 재설치)
DAY5(2021.03.09.)-듀얼쇼크2 컨버터 가공 및 내부 공간 확인
DAY6(2021.03.15.)-USB케이블 가공
DAY7(2021.04.13.)-지그 모델링
DAY8(2021.04.14.)-지그 모델링 2차시
DAY8(2021.04.14.)-지그 모델링 3차시
DAY9(2021.04.15.)-지그 모델링 4차시
DAY10(2021.04.17.)-지그 모델링 5차시
DAY11(2021.04.18.)-지그 모델링 6차시
DAY12(2021.04.19.)-아두이노 레오나르도 비틀-전원과 DVD버튼 납땜
DAY13(2021.04.20.)-PS2 컴퓨터 가조립
DAY14(2021.04.21.)-지그 모델링 7차시
DAY15(2021.04.26.)-PS2 컴퓨터 가조립 2차시
DAY16(2021.04.29.)-PS2 컴퓨터 가조립 3차시
DAY17(2021.05.03)-PS2 컴퓨터 선 정리
DAY18(2021.05.05)-PS2 컴퓨터 완성 1차시(영상 없음)
여기서 유튜브가?
취미 활동의 궤적을 영상으로도 남기고 있습니다. 유튜브 링크만 보고 영리적 목적이 있는 거 아니냐는 분이 간혹 있는데, 제 유튜브 채널은 영리적인 것과는 거리가 먼 내용들 뿐입니다.