이번에는 무진장 딱딱하고 재미없는 글을 올릴 차례입니다. 물론, 지금까지 재미있는 글은 없었지만 이번에는 더 딱딱한 이야기를 해보려 합니다.


많은 사람들은 아직도 리눅스를 엄청 딱딱하고 어려운 운영체제로 알고 있습니다. 원인이야 뻔하지만, 리눅스를 사용해본 사람들은 리눅스 자체가 어려운 것이 아니라 사용 방법이 틀렸다는 것을 알고 있습니다.


사실 리눅스를 데스크탑 운영체제로 사용하게 된 것은 그리 오래되지 않았습니다. 리눅스는 사실 서버 워크스테이션에 쓰이던 Minix의 카피였고(리누즈 토르발즈 자서전에 나와있습니다.) 그 리눅스라는 커널보다 사용자의 완전 분리라는 독특한 매력에 사람들이 빠졌다고 합니다. 즉, 한 컴퓨터에 여러사람이 달려들어도 서로 다른 환경을 쓰는 것 같은 느낌을 줬다고 합니다. 윈도 사용자분들은 1인 1PC시대에 살고 있는데다가 보통 관리자 모드로 사용하기 때문에 (UAC로 어느 정도 막고는 있지만)어떤 것인지 잘 모르겠지만, 관리자는 따로 있고 사용자들은 오로지 User모드만 사용하는 것이지요. 어떤 프로그램을 설치하고 싶으면 관리자에게 연락해서 설치해 달라고 해야 했고, 그 관리자의 계정은 언제나 root였기에 root계정이 해킹당하면 말그대로 시스템이 장악되었습니다.


무슨 소리인지 잘 모르겠다고요? 그냥 당시의 컴퓨터는 원격으로 접속해서 사용해야만 하는 컴퓨터였고(그래서 워크스테이션이라고 따로 지칭한 것입니다.) 이 때 관리자와 유저는 엄격히 구분되어야 했습니다. 사실 Unix시스템의 전반이 다 그러했습니다. 그런데 리눅스가 어렵다는 편견은 아마도 여기서 시작된 것 같습니다.


사실 윈도는 윈도XP시절부터 사용자를 제대로 분리하기 시작했습니다. 그전의 98시절에도 충분히 사용자분리 옵션은 있었지만 바탕화면이 공유되는 등(...) 말도 안되는 사용자 분리를 택했기 때문에 아무도 그런 기능이 있었는지도 몰랐습니다. 심지어 어떤 사용자모드를 쓰더라도 시스템의 근본까지 장악 가능했으니(리얼 도스모드 진입가능→ 하드웨어 직접 접근 가능)사용자 분리의 이점이라고 눈꼽만큼도 없었습니다. 대신 그만큼 개인이 신경 쓸 거리는 줄기는 했습니다. 그러다가 윈도NT계열이 가정용으로 들어오면서(즉, XP시절 이후를 말합니다.) 기존 NT가 했었던 것처럼 사용자 분리를 시도했는데 현실은 그냥 유저 구분없이 모두함께 관리자 모드로 사용... 윈도 비스타시절부터 UAC란 놈을 들고와서 관리자 권한이라도 경고를 한다던가 한번 필터링을 하는 방식도 취해봤지만 이미 전반적인 생태계가 관리자 권한을 요구하는 괴상한 형태로...


즉, 윈도 사용자들은 권한 분리가 익숙하지 않습니다. 그에비해 워크스테이션으로 시작된 OS인 리눅스는 이를 엄청 중요시 여깁니다. 관리자 권한 해킹당하면 해당 워크스테이션을 사용하는 모든 사람들의 정보가 전세계로 솟구칠테니까요.(혹은 삭제당하거나) 처음 리눅스란 것을 본 사람들은 여기서 짜증을 내기 시작했'었'습니다. 왜 과거형이냐면 기존 윈도 사용자들이 UAC덕에 관리자 권한으로 실행하는 것에 익숙해지기 시작했거든요. 물론 아직도 UAC가 뜨면 당황하는 사람들이 태반이기는 하지만 이제 좀 관리자 권한에 대해 이해를 하기 시작한 사람들이 보입니다. 그런 사람들에게 리눅스를 보여주고 su나 sudo 혹은 gksu같은 명령을 알려주면 그게 "관리자 권한으로 실행"이라는 것을 곧잘 이해하더군요.

(물론 아직도 이해 못하는 사람 많습니다. 왜 관리자 권한이 필요한 이유조차 모르기 때문이지만...)


그런데 우분투같은 사용자 편의를 중시한 배포판에서는 언제부터인가 관리자 권한 확인이 UAC 비스무리한 모습으로 만들어지더군요. 즉, 권한분리에 익숙치 않은 사용자들을 위해서인지 그냥 권한 분리를 윈도스럽게 해놓았습니다. 우분투가 쉽다고 하시는 분들 중에는 이러한 이유도 있습니다. 다른 배포판에서는 기본 세팅상태를 기준으로 유저모드로 sudo 명령을 쓰면 대부분 안 먹습니다!(데비안이나 페도라 기준) 우분투처럼 쓰고 싶으면 /etc/sudo내의 있는 설정파일을 수정해야만 하고 수정을 하려면 root로 로그온 해야합니다. 즉, 관리자의 손길이 필요하다는 것이지요. (이 이야기는 데비안 기준이고 페도라는 좀 다르다고 알고 있습니다.)아, 대신 우분투는 root권한 자체가 숨겨져 있습니다. 마치 윈도에서 Administrator계정이 안전모드에서만 나오는 것과 비슷합니다.


이쯤되면 리눅스는 어렵다는 것은 일부 배포판에 한정해서이기는 하지만 조금 완화 되었을 것이라고 생각이 듭니다. 자신의 정체성 중 일부를 수정하면서 까지 윈도스럽게 수정했으니까요. 소프트웨어의 부재는 전에도 말했듯이 wine이나 Virtualbox로 극복이 가능한데다가 전용 소프트웨어도 상당히 훌륭합니다.예전에는 제품개발은 어쩔 수 없이 윈도에서 했지만, 요즘은 제품개발도 리눅스에서 가능해져 가고 있습니다.(DraftSight와 CATIA의 wine 실행 - 이놈은 태생이 유닉스 용입니다.)

리눅스가 어렵다는 것은 편견이라고 했습니다. 리눅스의 대표적인 데스크탑 배포판인 우분투는 이미 윈도 사용자를 상당히 배려했습니다. 그런데도 많은 사람들은 리눅스를 어려운 운영체제로 믿고 있습니다. 일단 까더라도 사용해보고 깠으면 좋겠습니다.

,


이 놈이 바로 Arduino Mega. 포트가 많아서 출력이 많이 필요할 때 유용하게 쓰인다.


얼마 전에 아두이노 Mega 2560보드로 프로젝트를 잠시 진행한 적이 있었습니다.

캐릭터LCD를 붙여서 LCD에 글씨를 띄워야 하는데 자꾸 LCD에 글자가 깨지는 현상이 일어났습니다. 이유는 잘 모르겠는데 어찌어찌 하다 보니 글씨가 제대로 뜨기는 하더군요. 어쨌건 이후로는 정상적으로 작동하길래 그 날은 그냥 넘어갔습니다.


그런데 해당 문제가 다음날 또 터지더군요. LCD에서 글씨가 또 깨지더군요. 이유가 뭔지 잘 몰라서 난리를 치던 중에 프로그램 문제인가 싶어서 PC에 아두이노를 연결하자 정상적으로 LCD에 글씨가 뜨기 시작했습니다.


...사실 그동안은 전력 수급 문제로(LCD가 생각보다 전력을 많이 필요로 합니다. USB만으로는 좀 벅찰 정도입니다.)9V 어댑터를 연결해서 쓰고 있었는데 USB연결 없이 어댑터만 연결하자 LCD에 글씨가 깨지는 것이었습니다. 어댑터 문제인가 싶어서 어댑터 전압을 측정했더니 9V로 아주 쌩쌩하게 잘 돌아갔습니다. 사실 7V만 나와도 정상 작동 되어야 하는 것이기에(아두이노는 7~12V 어댑터를 연결하면 알아서 자체적으로 5V,3.3V로 알아서 낮춰서 잘 돌아갑니다.) 어댑터가 문제였을리는 거의 없습니다.


그래서 결국 아두이노 보드를 시험하던 도중 5V 출력단에서 전압이 이상하리만큼 낮은 것을 확인했습니다. 3.3V남짓 나오더군요. 그 옆에 있던 3.3V 출력단은 어떤가 봤더니 당연하게도 3.3V가 나오고 있었습니다. 즉 3.3V는 정상.


5V 출력 포트와 3.3V 출력 포트. 여기와 관련된 곳이 바로 어댑터 연결잭 근처에 있는 레귤레이터다. 즉 저놈이 전압 불안정의 원인

그래서 혹시나 하고 인터넷에 5V 출력 관련 이슈가 있나 해서 찾아보니 이슈가 있는 것인지는 모르겠지만 외국에도 사례가 있더군요.

http://www.instructables.com/id/Fix-a-fried-Arduino-Mega/#step1


Fried-Arudino...일명 날아간(튀겨진?) 아두이노 살리기.


아무래도 제 예상입니다만 LCD를 달면서 전류가 혀용량을 넘어섰고, 그에따라 레귤레이터가 맛이 갔는지도 모르겠습니다. 어쨌건 해당 글에는 레귤레이터를 아에 갈아버리더군요. 그것도 원래 아두이노에 달려있던 SOT-223대신 LM7805로 바꿔버렸습니다.


SOT-223도 괜찮은 칩이기는 한데, LM7805가 아무래도 신뢰도가 워낙 좋다 보니 이해가 가더군요.(LM시리즈는 전자상가에서 쉽게 구할 수 있는 데다가 실습 교재로 엄청 많이 쓰입니다.) 게다가 학교에서 수리 하다보니 LM7805는 워낙 남아돌아서(...) 저 사이트에 나온대로 바꿔보기로 했습니다.



그런데....

레귤레이터의 납이 안 떨어지네요...아무리 인두로 지져도 인두 온도가 낮은 것인지 저 칩을 뗄레야 뗄 수가 없었습니다. 그래서 그냥.... 


 해당 사이트를 참고해서 Vout부분인(즉, 원래 5V가 나왔어야 했지만 맛이 가서 3.3V가 나오는) 가운데 다리(*ㅡ_ㅡ*)를 잘랐습니다. 쉽게 말해서 그냥 보드에서 안 떨어지니 그냥 고자(...)로 만들어버리는 것으로 결정.


그리고 새로이 7805를 기존 레귤레이터 다리에 위치에 맞춰서 그대로 납땜을 했습니다.

SOT-223은

1pin GND

2pin Vout

3pin Vin

이지만,

LM7805는

1pin Vin

2pin GND

3pin Vout

입니다.

즉, 중간에 다리가 꼬이는데 혹시라도 있을 합선을 방지하기 위해 가운데 다리에 수축튜브를 끼워넣어서 절연을 해줍니다.

자세한 내용은 위의 링크가 걸린 사이트를 참조하시면 편하고, Vin의 위치가 1-3이니까 기존 레귤레이터와 LM7805가 서로 마주보게(...) 납땜 해주시면 편리합니다. 즉, LM7805의 2번 다리와 3번 다리를 서로 엇갈리게 꼬고 LM7805의 1번 다리와 기존 레귤레이터의 3번 다리가 만나도록 납땜 해주셔야 합니다. 혹시라도 잘못 연결하면 레귤레이터에서 연기가 피어오르는 것을 감상하실 수 있습니다.


7805를 아두이노에 납땜한 모습 테스터기로 찍어보자 딱히 합선은 없었다.

어쨌건 레귤레이터도 바꿨겠다. 어댑터 연결후에 5V포트의 전압을 측정하자 5V 칼전압이 나옵니다. Wow!


LCD를 연결하자 LCD에 글씨 엄청 잘 뜹니다. 역시 전압이 문제였다고 밖에는....일단 7805는 열이 많이 나오는 소자라서 방열판을 붙여줘야 합니다. 7805파는 가게에서 방열판도 같이 파니까 꼭 방열판을 달아놓으세요. 안 그러면 저 7805도 맛이 가는 수 있습니다. SOT-223은 잘 모르겠지만 7805는 그만큼 허용 전류량도 높으니 전류를 많이 뽑아먹어도 이제 큰 무리는 없을 겁니다. (못해도 1A는 버틴다고 하네요.)만세!




추가 이야기

아두이노에 가변저항 없이 LCD연결하기.


보통 아두이노 예제에서 LCD연결 회로는 다음과 같습니다.


저 가변저항이 무슨일을 하는가 봤더니 LCD 글씨의 대비를 조절하는 것이라고 합니다. 즉, 전압을 조절해서 LCD의 어두운 부분을 만드는 전압을 설정하는 것인데, 까놓고 말해서 가변저항 달기도 짜증나서 이를 간단히 하는 방법을 알려드리겠습니다.


우선 저 가변저항이 없으면 글씨가 무조건 까만 사각형으로 나오게 됩니다. 그리고 가변저항을 돌리다 보면 어느 순간 글씨가 보이는데 그 글씨가 보이는 수준은 LCD마다 제각각입니다. 기준전압이 지들 마음대로인데 보통은 5V짜리 기준으로 2.5V입니다. 즉 반정도 돌리면 보입니다. 그런데 가변저항을 달 생각하니까 그냥 짜증이 나더군요. 그래서 회로를 살짝 수정했습니다.




저 갈색선이 보이시나요? 아두이노의 6번핀과 LCD의 Contrast핀을 직접 이었습니다.


6번핀이 뭐냐하면 PWM지원 핀입니다.

analogWrite(~~,~~);

이 코드가 먹히는 핀이라는 것입니다. 물론 6번핀 말고도 PWM지원 핀이면 어디에 연결해도 상관은 없습니다.


analogWrite(6,120);//6은 6번핀이라는 의미 120은 듀티비가 120 즉, 출력 전압은 120/255 * 5V


위의 코드를 Setup()함수 내에 적어주시면 가변저항 없이도 LCD의 글씨가 보일 것입니다. 좀 까맣다 싶으면 120보다 낮은 수로 바꿔주시면 되고 너무 하얗다 싶으면 120보다 높이면 됩니다. 일부 LCD는 반대일 수도 있습니다. 어쨌건 저 숫자를 바꿔주면 조절이 됩니다. 심지어 머리를 조금만 더 쓰면 대비 조절을 별도의 스위치 조작이나 PC연결로 할 수도 있습니다.


보드가 깔끔한 것을 원하신다면 이 방법을 추천드립니다. 가변저항은 좀 불편하니까요. 디지털 방식도 나쁘지는 않다고 생각합니다.

,

여러분들은 어떤 게임을 좋아하시나요? 사실 저는 PC나 콘솔 게임은 그렇게 좋아하지 않습니다. Long Live The Queen에 대한 글이나 에뮬레이터에 관한 글을 올린 제가 할 소리는 아니긴 하지만 저는 오락실 게임들을 좋아합니다. 그 중에서도 몸 쓰는 게임을 참 좋아하는데요. 몸 쓰는 게임의 대표 주자라면 역시...


출처 : 위키피디아

이 물건이 아닐까 합니다. 첫 작품이 나온지 20년이 다 되가는 게임입니다. 바로 Pump it up!

저는 괴수는 아니라서 보통 남들 하는 레빌7~9 정도에서 놀지만 그것도 상당히 땀이 많이 납니다. 사실 이렇게 땀 빼는 것 감안하면 대략 2000원 정도의 게임을 하면(한 번에 500원 일 경우 - 3곡씩 하게 되니까 총 12곡)어마어마한 칼로리 소모 및 입에서 단내(...)가 날 정도의 느낌이 듭니다.


리듬게임의 시초는 잘 모르겠지만 이를 대중화 한 것은 일본의 코나미입니다. 사실 Pump it up도 DanceDanceRevolution(이하 DDR)의 카피캣이었는데 어쩌다보니 크로스 라이센스가 걸리게 되어서 둘이 공생하는 관계가 되었습니다. 오랜 시간이 지나면서 둘의 게임성이 확연히 달라지기도 했고, 오랜 기간동안 발전과정을 본 Pump it up과는 다르게 DDR은 정발판이 들어왔음에도 그렇게 썩 재미있지는 않더라구요.


(사실 DDR은 정 박을 밟는 것을 중요시 여긴다면 Pump it up은 그냥 몸을 배배 꼬게 만드는 것으로 어렵게 만듭니다. 문제는 몸이 날아다니는 수준이어야 할 정도로 미친 듯이 뛰어야 합니다. 그에비해 DDR은 몇몇을 제외하면 미친 듯이 뛸 일은 별로 없습니다.)


사실 이외에도 리듬게임같이 인간 한계를 시험하는 게임을(...) 상당히 좋아해서 오락실에 가면 유비트도 같이 하는데요.


출처 - 위키피디아 리듬게임 갖다놓은 오락실치고 이거 없는 오락실은 거의 없더라. 그만큼 인기 있는 리듬게임(이자 입문용 게임)


DDR이나 Pump it up이 발판형이면 이건 터치형입니다. 사실 투명한 버튼이라고 하는 것이 맞는 것 같기는 하지만 게임내에서 터치라고 하니까 터치라고 합시다.(터치라고 해서 스마트폰용 리듬게임하듯이 그냥 쓰다듬으면 인식 안됩니다. 버튼처럼 눌러야 합니다. 이게 무슨 터치야)


터치형의 특징은 화면에 보이는 것을 직접 누른다는 것이 있습니다. 그래서 화면을 보면서 버튼을 찾아 눌러야 하는 건반형이나 비슷하게 발판을 누르는 발판형과는 다르게 상당히 직관적입니다. 초보자들도 대충 넣고 튜토리얼도 없이 그냥 게임을 해도 어렵지 않을 수준이니까요.

무엇보다 터치형은 스마트폰이 대두되면서 Deemo나 탭소닉같은 모바일 리듬게임이 나오면서 사람들에게 익숙해진 방식이기도 합니다.



모바일용 리듬게임 중 하나인 Deemo 모바일게임이 그렇듯이 터치형이다. 출처 - 리그베다위키

터치형과 발판형(혹은 건반형) 리듬게임을 하다보면 한 가지 큰 차이가 느껴집니다. 가끔 내가 엉뚱한 곳을 두드릴때가 있다는 것! 눈이 화면에 고정되어있다보니 벌어지는 현상입니다. 눈은 화면을 봐야하다보니 손이나 발이 "이 정도만 움직이면 되겠지"하고 움직이는 것에 의존 할 수밖에 없습니다. 처음 가는 오락실에서 하다보면 거리 인식이 덜 되어서 Pump it up 발판에서 떨어지기도 합니다... EZ2DJ나 BeatmaniaIIDX같은 버튼식은 처음 했을때에는 멀쩡한 바닥을 누르기도 했고요.


하지만 터치형은 그럴일이 상당히 적습니다. 눈이 손의 위치를 보정해주니까요. 터치형 게임 중 제일 대부라 할 수 있는 (하지만 지금은 관에 들어간) Djmax Technika의 경우 리듬게임 치곤 쉽다는 소리를 많이 들었습니다. 사실 그리 쉬운 게임이 아니었는데도 "일단 눈에 보이는 대로 누른다.= 몸으로 익힐 시간이 줄어든다." 바로 이거입니다.


터치형 리듬게임의 대중화를 이룬 Djmax Technika시리즈. 지금은 그냥 사망처리... 그래도 이거 없었으면 지금의 유비트나 리플렉비트같은 터치형 리듬게임이 나오기는 힘들었을 거라는게 게이머들 생각이다.



....얼마 전에 유비트와 Pump it up을 하면서 느낀 것인데 이 둘을 섞으면 어떨까? 라는 생각을 했습니다. Pump it up이야 워낙 나온지 오래되었고 익숙해서 사람들이 곧 잘하기는 하지만 처음 하거나 오랜만에 하는 사람들은 발판 위치 잡는 것을 상당히 곤혹스러워 하는 것을 많이 봤습니다. (특히 철판 때리는 소리가 들리면 100%입니다. 혹은 우당탕 소리나면서 떨어지기도...)


그러면서 생각이 든건데 유비트 처럼 발판을 보면서 발판에 뜨는 마커에 맞춰서 발로 밟게 하면 어떨까? 라는 생각을 했습니다. 즉, 터치형+발판형인 것입니다. 아니면 그냥 유비트 컨트롤러를 크게 만든 다음 발로 밟게 만들어도 되겠네요. (..4x4니까 16개... 날아다니는 것이 아니라 그냥 분신술을 써야 하는 거 아닌가?)


물론 그 만큼의 큰 대형 화면을 바닥에 깔아버릴라면 돈이....들기야 하겠지만 대형 디스플레이 가격도 많이 떨어졌고 만들려면 충분히 만들 수는 있다는 생각이 듭니다.


그리고 무엇보다 유비트를 크게 만들어서 바닥에 깔아버린다면.........외계인 색출 게임 확정! 전 원래 인간한계에 도전하는 게임을 좋아하니까 있다면 한번 해보고 싶네요.


어찌되었건 생각뿐이기는 한데 압전소자가 제 손에 들어오면서 제 손으로 만들게 될 날이 올 수도 있습니다....어떻게 될 수 있을지는...으음...?

,