|
하늘아래서 님께서 보신 결과는 정확히 맞습니다.
이왕이면 정리를 좀 했으면 하네요 ^^
현재 컴퓨터를 이용하여 시리얼 통신으로 데이터(좌표값)를 보내고 그 데이터를 받은 로봇이란 놈은 데이터를
이용하여 스텝모터를 움직여 위치를 이동하려고 하시는 거지요?
제가 이해 한것이 맞다면...
일단 예제 파일을 분석하실것을 권해드립니다.
실험 5-1에서 사용된 시리얼 예제를 이용하면 컴퓨터와 로봇간에 시리얼로 데이터를 주고 받는게 보일 겁니다.
기본적으로 마이컴이 사용될 때는 시리얼을 먼저 동작시키는게 중요하지요.
그리고 두번째 예제(ch7.c)를 이용하여 실행하면 모터가 돌다가 멈추게 되겠지요.
그리고 실행을 종료합니다.
이유는 프로그램 내에 무한루프가 되는게 없기 때문이겠지요
무한루프는 예제 5에서 보시면 for(;;) 구문이 있는게 보일겁니다.
제가 그 보드및 모터가 없어서 제대로 된 설명이 될진 모르겠지만 일단 소스만으로 본다면
실행하신 예제 7은 제대로 실행이 안된게 아니라 제대로 실행되고 프로그램은 종료되어 진걸로 생각됩니다.
일단 두개 구문을 짬뽕(?)을 제대로 시키면 결과는 이렇게 예상될 수 있겠지요.
시리얼 프로그램을 이용하여 전진 후진 버튼을 command로 만든다.
예) A Key => 전진
S Key => 후진
이렇게 만드시고 예제 7번에 사용된 함수를 이용하여 전진 및 후진 함수를 구현한다.
물론 무한루프를 만드셔야 합니다.
그리고 실행시켜본다.(음... 기본적으로 마이컴 공부할 때 사용하는 방법입니다만)
일단 그렇구요.
로봇은 볼랜드 C++로 작성하는게 아니라. Borland 사에서 나온 툴이 적합화되어 있어서 그렇답니다.
그리고 소스는 C로 다 만들어진거니 C 언어만 하셔도 무난할 듯 합니다.
볼랜드 C++ 외에 사용되는 툴로는 예전에 사용된 Turbo C 2.0이란 훌륭한 툴이 있으며, 요즘은
Paradigm이란 툴도 많이들 사용하는걸로 알고 있습니다.
P.S : 더 좋은 답변이 되었으면 합니다만 설명이 제대로 되었는지 모르겠네요 ^^;;; 그럼 열공하세요
하늘아래서 님이 쓰신 글 :
: 초음파 측위 센서를 이용해 측정한 로봇의 실시간 위치 정보(x,y축의 좌표값)와 사용자가 원하는 위치 정보(x,y축의 좌표값)를 로봇으로 전송해서 로봇이 현제의 위치에서 사용자가 원하는 위치로 이동하도록 하는 프로젝트를 하고 있습니다.
:
: 기본적인 알고리즘은 두 좌표값에서 x축값의 차를 계산해 그 차이만큼 x축 이동을 한 후 y축의 차를 계산해 y축 이동을 하는 방식입니다. 일단 이 방법이 가장 간단하게 해볼 수 있어서 이렇게 하고자 합니다.
:
: C언어도 그닥 잘하는 편이 아닌데...로봇은 볼렌드 C++로 코딩을 해야되더라구요.
:
: 그래서 기본으로 들어있는 시리얼통신 예제를 보고 하려고 로봇에 넣고 돌려봤는데 실행이 제대로 안됩니다.
:
: 워낙 프로그램에 무지해서 왜 안되는지 원인을 알 수가 없습니다.
:
: 현제 목표는 컴퓨터에서 보내오는 두 좌표값(로봇의 현제 위치값과 사용자가 입력한 목표점의 좌표값)을 수신해
:
: 앞에서 말씀드린 알고리즘대로 위치이동을 하는겁니다.
:
:
: 참고로 제대로 실행이 안되는 예제파일과 로봇의 모터제어 예제파일을 첨부합니다.
:
: 이 두 예제를 잘 믹스하면 될듯도 한데...생각처럼 쉽지 않네요... 코드 분석도 안되고...
:
: 조금이나마 도움을 주시면 정말 감사하겠습니다.
|