Category Archives: 개발프로젝트

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

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

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

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


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

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


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

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



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

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

1158138039.tgz

[TC/TT] SyntaxHighlighter 2.0 – Google Code Prettify

– Example of Lua syntax highlighting
[code lang-lua]os=require(“os”)
math=require(“math”)
 
— Some comments that demonstrate long brackets
double_quoted = “Not a long bracket [=[“
–[=[ quoting out
 [[ foo ]]
 [==[does not end comment either]==]
]=]
past_end_of_comment
–]=]
 
— Example code courtesy Joseph Harmbruster
#
do
  local function ssgeneral(t, n, before)
    for _, h in ipairs(incs) do
      for i = h + 1, n do
        local v = t[i]
        for j = i – h, 1, -h do
          local testval = t[j]
          if not before(v, testval) then break end
          t[i] = testval; i = j
        end
        t[i] = v
      end
    end
    return t
  end
 
  function shellsort(t, before, n)
    n = n or #t
    if not before or before == “<” then return ssup(t, n)
    elseif before == “>” then return ssdown(t, n)
    else return ssgeneral(t, n, before)
    end
  end
  return shellsort
end[/code]
SyntaxHighlighter 2.0입니다. 1.x대에서 2.0으로의 발전은 많은것이 바뀌었음을 뜻합니다.

이 코드강조 플러그인의 자세한 설명은 이전 글을 참고하세요. [1.0] [1.3]

이번 버젼의 가장 큰 변화는 하이라이팅 될 언어가 자동으로 선택 되던것뿐만 아니라 임의로 지정할 수 있습니다.

– 기존의 자동 언어 선택 하이라이팅
[code]…[/code]

– 임의 지정 하이라이팅
[code lang-c]…[/code]

지원하는 언어는 다음과 같습니다. (괄호안이 임의 지정할때 사용되는 코드)



  • bash(lang-sh)
  • C(lang-c)
  • C++(lang-cc)
  • C#(lang-cs)
  • Java(lang-java)
  • Javascript(lang-js)
  • Perl
  • Python(lang-py)
  • SQL(lang-sql)
  • XML
  • (X)HTML(lang-html)
  • PHP
  • XSL
  • Lua(lang-lua)
  • VBScript(lang-vb)
  • Haskell(lang-hs)
  • Ocaml & F#(lang-ml)
  • Lisp(lang-el)
  • Protocol Buffers(lang-proto)
  • Wiki Syntax(lang-wiki)
  • CSS(lang-css)
  • VHDL(lang-vhdl)

버그나 기능개선 문의는 블로그에 댓글 달아주시거나 메일주세요^^

* 2010년 2월 10일 버그 수정판(2.1)
– 특정 호스팅 서버에서 코드 부분이 사라지는 문제 해결
– PHP5의 경우 code태그 대소문자 구분없이 사용가능하도록 수정

1375262287.zip