RETROFLAG SUPERPi Case-J 조립, 설치 및 SAFE SHUTDOWN 기능 분석 - 업데이트 중..............
Review 2020. 3. 2. 15:49 |가끔 조카들이 놀러 오면 같이 놀기 위해 오래된 컴퓨터에 레트로파이를 설치하고 예전 오락실 게임이나 콘솔 게임을 플레이 할 수 있도록 만들었다.
2020/02/13 - [Raspberry Pi] - Raspberry Pi Desktop(Debian), Ubuntu에서 RetroPie 설치하기
이 컴퓨터는 거실에 두고 모니터보다 훨씬 큰 TV에 연결 했으니 이렇게만 만들어도 충분히 게임을 즐길 수 있지만 왠지 예전 게임기 느낌이 살지는 않는거 같아 살짝 아쉬운 마음이 들었다. 그래서 구입한 RETROFLAG의 SUPERPi Case-J.
제조: RETROFLAG
판매: Amazon
공식 판매처인 미국 아마존에서 구입이 가능하지만 게임패드가 포함되지 않은 모델의 경우에도 제품과 배송비를 합쳐 약 $26의 비용이 든다. 국내에서 사는게 더 비싸다면 배송 기간도 고려해서 아마존 구매를 생각해 보겠지만 디바이스마트에서 \16,500에 파는걸 보고 바로 주문했다.
그리고 이틀 후 도착한 내 소중한 케이스...
상자 앞 면
상자 뒷 면
상자 옆 면
겉 상자를 열면 안에 다시 속 상자가 들어 있다.
속 상자에 들어 있는 케이스. 모든 부품이 케이스 안에 다 들어 있다.
케이스 뒷 면
조립 메뉴얼
조립 메뉴얼
상자 안에 들어 있는 부품들
라즈베리 파이를 조립하기 전에 SD 카드를 분리해야 한다. 굳이 분리할 필요가 있을까 생각 했지만 분리하지 않으면 라즈베리 파이가 케이스에 제대로 들어가지 않는다.
조립에 필요한 부품들
케이스 위에 설치 할 롬 카트리지. 진짜 롬 카트리지는 아니고 SD 카드를 보관 할 수 있는 케이스다.
드라이버가 포함되어 있다.
Power/Reset/SAFE SHUTDOWN 스위치, 전면 USB포트 연결 케이블, GPIO연결 커넥터등이 보인다.
설치 과정 영상 추가 예정..................
SAFE SHUTDOWN 설치 영상 추가 예정............
영상에서 볼 수 있듯이 SAFE SHUTDOWN기능은 터미널에서 아래 명령어만 입력해 주면 간단히 설치 가능 하다.
wget -O - "https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install.sh" | sudo bash
참고로 레트로파이에서 키보드 설정을 바꾸지 않았다면 영국 키보드로 지정되어 있다. 우리가 일반적으로 사용하는 키보드와는 키배열이 약간 다르므로 아래 그림을 참고 하자.
영국 키보드
그럼 install.sh에는 어떤 내용이 있어 SAFE SHUTOWN 기능이 설치 되는지 살펴 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/bin/bash #Step 1) Check if root-------------------------------------- if [[ $EUID -ne 0 ]]; then echo "Please execute script as root." exit 1 fi #----------------------------------------------------------- #Step 2) enable UART---------------------------------------- cd /boot/ File=config.txt if grep -q "enable_uart=1" "$File"; then echo "UART already enabled. Doing nothing." else echo "enable_uart=1" >> $File echo "UART enabled." fi #----------------------------------------------------------- #Step 3) Update repository---------------------------------- sudo apt-get update -y #----------------------------------------------------------- #Step 4) Install gpiozero module---------------------------- sudo apt-get install -y python3-gpiozero #----------------------------------------------------------- #Step 5) Download Python script----------------------------- cd /opt/ sudo mkdir RetroFlag cd /opt/RetroFlag script=SafeShutdown.py if [ -e $script ]; then echo "Script SafeShutdown.py already exists. Doing nothing." else wget "https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/SafeShutdown.py" fi #----------------------------------------------------------- #Step 6) Enable Python script to run on start up------------ cd /etc/ RC=rc.local if grep -q "sudo python3 \/opt\/RetroFlag\/SafeShutdown.py \&" "$RC"; then echo "File /etc/rc.local already configured. Doing nothing." else sed -i -e "s/^exit 0/sudo python3 \/opt\/RetroFlag\/SafeShutdown.py \&\n&/g" "$RC" echo "File /etc/rc.local configured." fi #----------------------------------------------------------- #Step 7) Reboot to apply changes---------------------------- echo "RetroFlag Pi Case installation done. Will now reboot after 3 seconds." sleep 3 sudo reboot #----------------------------------------------------------- |
스크립트 분석 추가 예정..................
그럼 Safeshutdown.py의 내용을 확인해 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/usr/bin/env python3 from gpiozero import Button, LED import os from signal import pause powerPin = 3 resetPin = 2 ledPin = 14 powerenPin = 4 hold = 1 led = LED(ledPin) led.on() power = LED(powerenPin) power.on() #functions that handle button events def when_pressed(): led.blink(.2,.2) os.system("sudo killall emulationstation && sleep 5s && sudo shutdown -h now") def when_released(): led.on() def reboot(): os.system("sudo killall emulationstation && sleep 5s && sudo reboot") btn = Button(powerPin, hold_time=hold) rebootBtn = Button(resetPin) rebootBtn.when_pressed = reboot btn.when_pressed = when_pressed btn.when_released = when_released pause() |
스크립트 분석 추가 예정......
'Review' 카테고리의 다른 글
Mini Vibration Motor Comparison - 미니 진동 모터 비교 (0) | 2020.07.19 |
---|---|
DIY Sanwa Arcade Joystick Kit - DIY 산와 아케이드 조이스틱 키트 (0) | 2020.04.09 |
DHU-4500 Joystick : 조이스틱 (4) | 2020.03.17 |
7 inch HD LCD Monitor (1024*600) - 7인치 모니터 (6) | 2020.03.09 |
HDMI Selector & Distributor : HDMI 선택기 & 분배기 (4) | 2020.03.09 |