Tag Archives: 프로젝트

[PXA270] 임베디드 시스템 프로그래밍 기말 프로젝트

사용자 삽입 이미지
예전에 임베디드 시스템 프로그래밍 수업시간에 제작했던 기말 프로젝트를 기록해둘까 한다. 당시에 몇가지 주제가 있었는데 Dot Matrix를 이용한 레이싱 게임을 만들기로 하였다.

PXA270이라는 장비는 교육용 장비로써 등치는 중국집 배달원의 철가방만하지만 요즘 나오는 안드로이드만 못한 성능을 보여주는 장비이다. 하지만 교육용으로는 최고의 느낌이다. 무언가 다루기 쉽다고나 할까. 직접 커널을 수정후에 올려서 돌려볼 수 있다는 점은 재미있는 경험이었던것 같다.

당시에 레이싱 게임을 만들기 위해 정해진 세부 구현 사항은 다음과 같았다.


– Dot Matrix 에 레이싱 트랙을 출력하고, 키를 이용하여 차를 조정
– 차의 진행에 따라 트랙이 아래로 스크롤
– 차는 한개의 점으로 표시
– 키를 이용하여 좌우로 장애물 회피(Key Matrix 혹은 GPIO키를 활용)
– 충돌하면 어디까지 갔는지 표시
– 트랙의 움직이는 속도는 적절히 결정

우리팀은 프로젝트가 다음과 같은 특성을 가지도록 개발하기로 하였다.


– 레벨은 끝이 없는 무제한
– 맵은 5개의 패턴을 이용하여 계속 이어붙여 끝없는 레이싱이 가능토록 함
– FND를 활용하여 현재 레벨과 점수를 표기
– 자동차를 단순한 한점으로 표기해야 하는 단점이 있어 벽과 구별이 어려워 깜빡이도록 함
– Character LCD에는 제작자 이름을 지속적으로 출력하도록 함
– 시작 및 자동차 충돌시 화려한 에니메이션 효과 추가

그렇게 해서 다음과 같은 작품이 탄생하였다. (Thanks to 5DMK2)



제작하였던 소스를 첨부하였다. 하지만 왜인지 리눅스 개발 환경도 UTF-8이었는데 인코딩이 죄다 깨져있는 문제가 있다. 수정을 할려다가 어차피 앞으로 돌릴수도 없을꺼 같아 그냥 올려둔다.

1006931823.zip
어떤분이 디바이스 드라이버를 요청하여 겸사겸사 딸려있던 파일들 다 올려둡니다.

1158138039.tgz

[Redmine] 프로젝트 관리 시스템 레드마인 설치하기

사용자 삽입 이미지
중소규모 프로젝트를 운영중인 회사라면 Trac을 쓰는것을 추천한다는 글을 쓴적이 있습니다. 하지만 레드마인을 몇일 경험해본 결과 Trac과는 비교할 수 없을정도로 심플하고 강력하다는것을 느꼈습니다. 레드마인 역시 Trac에 견줄만큼 다양한 플러그인을 지원하고 꽤 괜찮은 한글화를 지원합니다. (단, 일감이라는 말이 조금 거슬리네요)

지금 부터 레드마인의 설치에 대해 알아보도록 합시다.

1. Ruby on Rails 설치

우선 시스템에 Ruby&Rails 프레임워크가 설치되어있어야 합니다.  해당 사이트에 방문하셔서 소스를 다운받아 설치하도록 합시다. 우선 Ruby부터 설치해 보겠습니다.

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
tar -zxvf ruby-1.8.7-p174.tar.gz
cd ruby-1.8.7-p174
./configure --prefix=/usr/local/ruby
make;make install

설치후에는 /usr/local/ruby/bin 위치를 PATH에 잡아주도록 합시다. 다음으로는 Rails 프레임워크를 설치할 것인데 RubyGem이라는것을 이용하면 정말 쉽게 설치할 수 있습니다.

ruby setup.rb
gem install rails

자 위와 같이 간단하게 Rails 프레임워크를 설치할 수 있었습니다. 잘 설치가 되었는지 테스트를 해봅니다.

ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

2. Redmine (+MySQL) 설치

우선 RubyGem을 이용하여 MySQL 플러그인을 설치해 줍시다.

gem install mysql

이제 MySQL에 데이터베이스를 생성해 줍니다.

CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password'

[이곳]에서 redmine을 다운받아 적절한 위치에 설치하도록 합니다.

tar -zxvf redmine-0.9.3.tar.gz
cd  redmine-0.9.3

config/database.yml.example 파일을 config/database.yml로 변경한 후 production 설정을 변경합니다.

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: password

이제 다음의 마이그레이션 명령을 수행하여 관리자 계정을 생성하도록 합니다.

rake generate_session_store
RAILS_ENV=production rake db:migrate

이제 기본설정을 데이터베이스에 로드하는 명령을 수행합니다. 언어를 물어볼 시 ko를 선택합니다.

RAILS_ENV=production rake redmine:load_default_data

다음의 디렉토리의 권한을 바꾸어 줍니다. 이때 아파치 웹서버의 쓰기 권한이 가능하도록 owner를 설정합니다.

chmod -R 755 files log tmp public/plugin_assets

3. 실행

다음과 같은 명령을 통해 바로 실행해 볼 수 있습니다. 포트는 기본적으로 3000이 사용됩니다.

ruby script/server webrick -e production

4. 아파치 연동

아파치 웹서버에 연동하는 방법은 여러가지가 있지만 심플한 방법으로는 Phusion Passenger를 사용하는 방법을 추천합니다. Proxy Balancer등을 사용하는 mongrel의 경우에는 아파치 버젼의 제약이 있지만 이건 자유롭게 사용할 수 있습니다. 사내 인트라넷 목적으로 사용하는 이상 부족함도 없고요. 다음과 같은 명령을 사용하여 설치하고 아파치에 연동시킬 수 있습니다.

gem install passenger
passenger-install-apache2-module

사용자 삽입 이미지
설치마지막엔 위와같은 메시지가 뜨는데 저기에 모든 설치방법에 대해 나와있습니다. 다음과 같이 아파치에 설정을 추가하도록 하겠습니다. /var/www/redmine 에 레드마인이 설치되어있다고 가정하겠습니다.

LoadModule passenger_module /usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/local/ruby/bin/ruby

<VirtualHost *:80>
  ServerName redmine.theeye.pe.kr
  DocumentRoot /var/www/redmine
  <Directory /var/www/redmine>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

이제 웹브라우저를 이용하여 접속하셔서 레드마인을 즐기시면 됩니다^^