본문 바로가기

Robot/Robot Program - ROS

Visual C++ 2008에서 시리얼 통신 정말 간단히 하기

아실지 몰라도, 통신중에서 무쟈게 간단한 축에 들어가는 시리얼통신을 저는 꽤 많이 다루었습니다. 아두이노에서 시리얼 통신을 이용해서 데이터를 받는 예제를 다루었구요[바로가기] 그리고 제가 제일 좋아하는 MATLAB에서도 시리얼 통신으로 데이터를 주고 받는 법을 이야기했습니다.[바로가기] 그 후 Python을 소개하면서 그 예제로도 시리얼 통신을 이야기했구요.^^.[바로가기] 또한, 프로세싱(Processing)이라는 언어가 재미있다고 소개하면서 역시 그 예제로 시리얼 통신을 다루었습니다.[바로가기] 이렇게 MATLAB, Python, Processing에 걸쳐 시리얼 통신만 줄줄이 이야기를 했는데 또 시리얼 통신이네요^^

사실 저는 Visual Studio를 학부 2-3학년때 본격적으로 시작할 수 있는 기회가 있었는데요. 그냥 술먹고 노느라 날려버렸죠.ㅠㅠ. 그 후 쭈~욱 만날 일이 없었는데, 요~ Visual Studio의 C++을 이제 만나야하네요. 근데 뭐~ MATLAB이나 Processing보다는 좀 초반 접근이 짜증나지만, 그래도 재미있네요.^^. 먼저 미리미리 참조한-이라고 적고 거의 배꼈다라고 읽는-자료를 미리 이야기를 해야죠.^^

먼저 Visual C++에서 초~ 간단하게 시리얼 통신이 된다는 것을 알려준 곳은 [바로가기]입니다. 이곳의 다른 글들도 읽어보세요. 꽤 좋더라구요^^. 그리고 글 후반부에 아두이노와 통신을 할 텐데 거기서는 아두이노의 공식 배포 예제중 blink예제를 일부 가져다 사용했습니다.^^ 이제 시작하죠^^

먼저 새로운 프로젝트를 만드는데, CLR->Windows Forms Application으로 가죠. 묻지마세요. 저도 CLR이 뭔지 잘 모른답니다.^^

일단 Visual C++에서 위와 같이 하고 뭐 이름이야 원하는데로~~^^

그리고 Form1.h[Design]의 Form에서 저렇게 버튼 세 개와 텍스트를 놓죠. 그냥 글 그대로 입니다. 초반에 연결하고, 또, 글자를 보내는 걸 해보는 거에요. 스트링도 아니고 그냥 문자 하나~~~ 이야기 했자나요.. 초 간편, 간단, 심플~~^^

그리고 serialPort도 Form에 하나 추가해야합니다.^^

원래대로 하면 몇 번 포트인지, 속도는 얼마인지 등등을 설정하는 Config 화면도 있으면 좋겠지만, 그냥 간편히 가기 위해 serialPort1의 Properties에서 그냥 다 수정해 버리죠.^^. 전 COM4에 아두이노를 연결했거든요^^

그리고 버튼을 더블 클릭하면 들어가지는 저 곳에서 딱 저렇게 각 버튼마다 한 줄 씩 입력했습니다. 포트 열고, 1이라는 글자 전송... 2라는 글자 전송~~^^

이제 저 문자 받는 쪽 예제도 만들어야죠. 요런 간편 예제에 어울리는 파트너가 바로~ 아두이노입니다.^^.

아두이노 우노 보드의 13번 핀과 그라운드에 저렇게 LED를 하나 연결했습니다. 당연히 저항도 하나 필요하죠^^. 대충 10mA정도면 LED는 딱 보기 좋은 밝기의 불빛이던데(제 경우엔^^) 그냥 귀찮아서 굴러댕기는 아무 저항 주워서 달았습니다. 그래도 300옴이니... 뭐 구분 되더군요^^

그리고 아두이노 측은 저렇게 13번 핀에 High/Low 신호를 문자 1과 2에 대해 대응하도록 아~주 쉽게 구현되어 있습니다.^^

저렇게 PC에서 버튼을 누르면 꺼지고, 또 다른걸 누르면 껴지는 거죠~~^^ 너무 간단했나요? 뭐 그래도 간편한게 좋자나요^^. 처음 익힐떄는 말이죠^^.

반응형