Talk with Hani

로망은, 실현되리라!

Archive for the 'software' Category


[아두이노 프로젝트#2] 아두이노에 모터 달기

Monday, January 2nd, 2012

모터 구동 하드웨어를 제작할까,하다가 그냥 이번에도 모터 쉴드를 샀다. 귀찮아서,란 말로 회로를 만들지 않은 이유를 설명하고 넘어가고자 한다. 재적층 핀을 모터 쉴드에 붙이고 와이파이 쉴드에 올린 다음 모터 선만 연결하니 하드웨어 구성은 바로 끝났다.

p5.JPG
모터 구동을 위한 하드웨어 구성이 끝난 아두이노

모터 방향 제어 코드하고 모터 속도 제어 코드만 붙이니 바로 아두이노가 움직인다. ㅎ 정말 간단하다. 시각적인 눈은 다다음에 붙여 보고 다음엔 초음파 눈을 붙여 봐야겠다. 이건 간단하게라도 회로를 만들어야 할지도 모르겠다.

p1.JPG
신나게 회전하고 있는 아두이노

[아두이노 프로젝트#1] 아두이노에 와이파이 올리기

Thursday, December 29th, 2011

아두이노에 WiFly shield를 붙여서 무선랜을 올리려고 했다. 아두이노 버전이 R3여서 그런지, 쉴드가 딱 맞지 않았다. 그래서 어쩔 수 없이 보드 일부를 잘라냈다. 재적층 핀을 사용했기 때문에 아두이노에 쉽게 붙일 수 있었다. 아두이노 IDE1.0버전으로 시도했는데, WiFly 라이브러리가 컴파일 안 됐다. 아직 1.0버전과 라이브러리가 호환이 안 된다고 한다. 그래서 IDE는 0022버전을 사용했다. WebClient 예제를 불러서 집에서 사용하는 공유기 이름하고 비번만 설정해 줬더니 바로 무선랜이 붙었다.

아두이노 무선랜

쓰고 나니까 간단한데 아침에 일어나서 뛰엄뛰엄 했지만, 지금에서야 제대로 돌아간다. 아두이노에 입을 달아 줬으니까, 이제 다리를 달아줄 차례다. 다리로는 요놈을 쓸 것이다.

아두이노 로봇

최신 아이폰 게임 리뷰

Thursday, December 15th, 2011

아이폰4S로 바꾸고 나서 한동안 끊었던 게임을 다시 했다. 확실히 같은 게임이라도 3GS와 4S로 할 때 느낌이 다르다. 한 달 동안 즐긴 게임 가운데 주목할 만한 것들을 초간단으로 리뷰해 봤다. 혹시 이 가운데서 다운로드해 즐길 분들은 참고하시길 바란다.

미니 모터

내 취향에 딱 맞는 게임이다. 중학교 때 이 게임과 비슷한 게임을 즐겼다. 게임 이름이 잘 기억나지 않지만 RC카와 같은 작은 차를 조작하는 느낌을 주는 게임이었다. 게임 요소로 필살기인 니트로가 있어서 위기 순간에 전세를 한 번에 역전할 수 있었다. (기약할 수 없지만) 내가 아이폰 게임을 만들어 본다면, 그 게임을 만들어 보고 싶다고 생각했는데, 그 게임이 아이폰으로 나왔다. 3D 기반의 레이싱 게임이기에 간혹 지형에 걸려서 버벅 거리는 게 조금 아쉽지만, 예전에 즐긴 레이싱 게임의 몰입감을 준다. 이 작은 차로도 드리프팅도 가능하다. 참 재미있다.

mini_motor.PNG

비쥬얼드

작년 말부터 올해 초까지 PC버전의 비쥬얼드3를 참 재미있게 했다. 바로 그 버전을 아이폰으로 만든 것이다. PC 버전에 있는 몇 개 모드가 빠진 게 아쉽지만, 환상적인 비주얼을 이제 아이폰에서도 즐길 수 있다. 비쥬얼드를 좋아하는 분들이라면 머스트 해브 아이템이다(무슨 패션 프로 멘트 같다).

bejeweled.PNG

어메이징 브레이커

블록 격파의 새로운 해석이다. 다양한 종류의 폭탄을 사용해서 여러 오브제(사물)를 격파하는 게임이다. 이런 격파 류의 게임에서 핵심은 연쇄이듯이, 이 게임에서도 오브제의 적절한 위치에 폭탄을 장착한 후 한 번에 터트리는 게 핵심이자, 재미다. 무언가 파괴하고 싶은 본능이 내재 되어 있다면 이 게임을 추천한다. 적절한 폭발 이펙트와 사운드가 효과적이다. 한 번에 다 격파했을 때 나오는 멘트가 상당히 기분 좋게 한다.

amazing_breaker.PNG

워터

파이프를 사용해서 물을 지정된 위치로 옮기는 게임은 참 많기도 하고 상당히 역사가 깊다. 이 게임은 물 이동 게임을 현대적으로 잘 해석한 게임이다. 악어가 목욕하는 데 필요한 물을 공수하는 게 핵심인데, 처음에 땅만 파서 도랑을 만들지만, 점점 다양한 장애물이 나오기 때문에, 다양한 물? 아이템을 사용해야 한다. 이 게임도 머리를 조금 써야 하지만, 아이큐 80만 넣으면 누구나 엔딩을 볼 수 있다. 하지만 고전 게임의 해석이 신선해서 재미있다.

water.PNG

배트맨 아캄시티

콘솔로 나와서 인기 몰입를 했던 배트맨 아캄시티를 아이폰으로 옮겨 놓은 게임이다. 간단한 조작이지만 스토리가 있어서 몰입하기 좋다. 뒤에서 소개하는 인티니티 블레이와 비슷한 칼 썰기류의 게임이다. 칼 썰기 게임은 닌자 프루이츠가 최고봉이다. 물론 이 게임은 닌자나 블레이드처럼 정신 없지 않지만 타이밍을 맞춰서 입력하는 게 재미있다. 하지만 이런 3D 비주얼을 좋아하지 않기 때문에 선호도가 조금 떨어진다.

batman.PNG

인피니티 블레이드2

워낙에 유명한 게임이어서 굳이 설명이 필요없다. 정신없이 칼질을 해야 하는 면에서 보자면 닌자와 쌍벽을 이룬다. 가끔 아이템 발에서 밀리면 현질을 부추기는 악마?의 게임이다. 팔목이 안 좋아서 칼질을 많이 하는 게임을 그렇게 선호하지 않기 때문에 자주 즐기지 않는다. 하지만 스토리 라인을 따라서 흘러가는 전투신은 몰입도를 극대화한다. 비디오 씬마다 금을 숨겨 놓았기 때문에, 스킵하지 않게 한 것도 몰입도를 높였다. 다만 환생이라는 개념에 따라서 이미 한 것을 또 다시 되풀이하는 건 별로다. 개인적으로 한 번 깬 게임은 다시 하지 않기 때문에, 그런 구성은 마음에 들지 않는다.

infinity_blade_2.PNG

좀비 빌2

그냥 화면에 나오는 좀비를 모두 처리해야 하는 게임이다. 별 거 없는데, 이상하게 빠져들게 하는 매력이 있는 게임이다. 아이패드로 즐기면 아이폰으로 즐길 때보다 그 재미가 배 이상이다. 이 게임의 묘미는 잔인하지만 좀비가 처리될 때 그 묘한 사운드에 있는 것 같다. 계속 연타를 해야 하는 게 손목에 부담을 주기 때문에 자주하지 않는다.

zombie_ville2.PNG

소닉1

3D 버전의 소닉 팬이기 때문에, 소닉이라는 이름만을 보고 구매한 게임이다. 그런데 플레이하고 보니 소닉1이다. 세가가 낚지 않았지만 개인적으로 낚인 셈이다. 2D 소닉은 그다지 좋아하지 않는다. 내가 가장 정을 붙이기 어려운 게임은 마리오 류의 게임이다. 2D 소닉을 하면 마리오가 생각나기 때문에 그다지 좋아하지 않는다. 하지만 소닉을 좋아했던 팬이라면 충분히 즐길 수 있을 것이다.

sonic1.PNG

UML만 쓰면 설계는 끝나는가?

Wednesday, December 14th, 2011

IMF가 터지고 나서 대학원에 입학했다. 회사들이 비용을 줄이다 보니까 자연스럽게 아주 시급한 것 아닌 곳에는 돈을 쓰지 않았다. 그래서 연구실에서 수행하는 프로젝트가 많이 줄었다. 신입생으로서 적응하느라 정신 없던 학기 초, 지도해 주는 박사님이 불렀다. 일을 주기 위해서였다. 뒤에 들은 이야기지만, 연구실에 운영자금이 부족해지자 다른 연구실에서 과제를 따 온 것이었다고 한다. 딱히 할 일이 없던 나에게, 그 일이 떨어진 셈이었다.
 
과제는 매우 간단했다. 터빈에 들어가는 블레이드를 가공하는 일이었다. 간단히 설명하자면 선풍기 날개 같은 것을 3D CAD로 모델링하고 이것을 제작하기 위한 가공 데이터(3축 밀링 머신)를 만드는 일이었다. 당시에는 3D CAD는 무척 희귀한 것이었다. 지금 3D CAD를 학부 때도 배우겠지만, 그때는 오토 캐드 조차도 배우지 않는 게 일반적이었다. 아무튼 나에게 첫 번째 맡겨진 과제는, 3D CAD를 알고 설계 지식과 가공 지식이 있는 사람에게 쉬운 것이었지만, 초짜 대학원생에게 상당한 난이도의 과제였다.
 
UG라는 3D CAD사용법은 어떻게 해서 스스로 터득했지만 3D CAD를 사용해서 블레이드를 만드는 것은, 엄연한 설계 영역이었기 때문에 혼자 터득할 수 있는 게 아니었다. 그렇다고 다른 사람들도 경험이 없었기 때문에 지도 박사님이 도와 주기 전까지 혼자서 처리해야 하는 문제였다. 며칠을 고민하고 시행착오를 겪자 3D CAD의 노하우가 쌓였다. 그러고 나서 나름의 방법으로 블레이드를 그릴 수 있었다. 나름 성취감을 느끼면서 지도 박사님께 결과를 보여 드렸다. 모니터에 있는 블레이드 3D 데이터를 보면서 박사님이 웃었다. 그리고 이렇게 말했다.
 
“쉽지가 않죠?”
 
박사님의 말 뜻은 이거였다. 얼추 3D CAD를 사용해서 블레이드를 근사하게 모델링했지만, 그 데이터를 가지고 가공 데이터를 뽑기에는 많은 문제가 있었다. 모델링 기술도 익숙하지 않고 설계 지식도 부족했기 때문에 설계라 부르기에는 많이 부족하고 겉만 번드르르한 것을 만든 셈이었다. 지도 박사님의 친절한 가이드 덕분에 블레이드 모델을 전면적으로 다시 만들었다.
 
소프트웨어를 설계할 때 이런 이야기를 들을 때가 있다. “우리는 UML로 설계합니다”란 말이다. 이 말을 들으면 예전에 3D CAD로 블레이드를 처음 모델링한 경험이 생각난다. 당시 난 3D CAD로 (블레이드)를 설계한다고 생각했기 때문이다. UML이나 CAD의 데이터는 모두 설계 결과이자 표현 방법이다. 하지만 그것들이 설계의 전부라 할 수 없다. 극단적으로 말해서 CAD와 UML을 사용하지 않고도 설계는 할 수 있다. 물론 설계의 편의성을 높이자면 당연히 CAD와 UML을 사용하게 될 것이다.
 
이렇게 이야기하는 이유는 간단하다. UML이나 CAD를 사용하더라도 설계적인 고민을 하지 않고 겉만 설계처럼 보이는 것을 했을 때, 그것들을 사용해서 개발이나 가공을 할 수 없기 때문이다. 물론 “우리는 UML로 설계합니다”란 말을 할 때 표기법에 한정 지어서 이야기하고 다른 설계 기법이나 방법을 사용할 때도 있지만, 개발하는 분들과 이야기하다 보면 UML만 쓰면 설계를 한다고 믿는 경우도 많았다. UML은 설계가 아니다, 도구이자 표기법이다.
 
UML