본문 바로가기

쿼드콥터(핵사콥터)

[버섯] OpenCM 보드에 헥사콥터 부트로더 올리기

bootAndFirm.zip


opencm9.04_boot_modified_by_baram_140111.bin


stm32ld.exe


STM32LD_GUI_V0.0.1.exe



안녕하세요 버섯돌이 유재성입니다.

 

Github에서 특정 파일을 직접 내려 받으면 도중에 중단되서 온전하게 내려받아지지 않는 문제가 있어서

가급적 프로젝트를 전체를 zip파일로 내려받아서 압축 해제후 사용하시기 바랍니다.

혹시 몰라서 금일 테스트했던 최종 파일들을 첨부하며 "SKYROVER2.bin" 파일은

일부 USB 버그가 수정된 펌웨어라고 하니 참고하시기 바랍니다.

 

드디어 OpenCM 보드에 헥사콥터용 부트로더와 펌웨어를 올려볼 차례인데

아래 두 개의 바람님이 작성한 글을 참고하시면 됩니다.

http://cafe.naver.com/openrt/5587 

http://cafe.naver.com/openrt/3626 

 

곧바로 Skyrover Nano의 부트로더와 펌웨어를 올려도 되지만 OpenCM 보드의 정상 유무 확인 및

OpenCM에 올리는 방법이 맞는지 확실하게 점검할 수 있어서 아래 절차를 진행했습니다.

 

가장 먼저 구비한 OpenCM 보드의 이상 유무 확인 및 드라이버 설치를 위해

http://cafe.naver.com/openrt/6385 글을 보고 간단한 테스트를 진행하시기 바랍니다.

 

STM32 Virtual COM Port Driver가 필요하니 아래 링크에서 다운로드 후 설치합니다.

http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF257938 

 

 

그리고, 바람님이 작성한 OpenCM 에 부트로더를 올리는 아래의 강좌를 따라서 진행합니다.

http://cafe.naver.com/openrt/3626 

 

잘 못 연결하면 사망(?) 할지 모르니 글과 그림을 열심히 보면서 조마조마 했었는데

IAP 등 일 부분에서 막혀서 이것저것 검색하며 포기하려는 순간 영상을 보니 한방에 해결되더군요.ㅜㅜ;;

 

OpenCM보드의 11번 핀은 Tx이고 12번 핀은 Rx입니다.

OpenCM의 11번 Tx 핀을 Usb2Serial(이하 U2S)의 Rx에 연결하고, 12번 Rx 핀은 U2S의 Tx에 서로 엇갈리게 연결합니다.

(스마트로봇 보드의 U2S의 경우 Rx,Tx의 순서가 2가지가 존재하는데 제가 신 버전의 라벨로 잘 못 붙여놨습니다.ㅜㅜ)

(혼선이 있을까 봐 빨간색으로 표시했으니 자신이 보유한 버전에 맞게 서로 엇갈려서 연결하시면 됩니다.)

 

이제 OpenCM의 USB 단자를 PC와 연결하고, U2S의 USB 단자도 PC와 연결합니다.

그러면 아래처럼 OpenCM과 U2S의 COM 포트가 인식됩니다.



제경우 U2S가 COM5로 잡혔습니다.

아래 글에 가셔서 stm32ld.exe 유틸과 테스트용 부트로더 파일을 내려받습니다.
http://cafe.naver.com/openrt/3626

 

부트로더를 올리기 위해 IAP 4핀중 1번(boot0)핀에 3.3v를 연결해야 한다는데 좌쪽에서 1번인지

우측에서 1번인지 몰라서 엄청 고생했는데 영상을 보니 핀 연결부터 위치까지 다 나와있더군요.^^;;;

 

1. 첫 번째 OpenCM 보드 사진을 참고로 OpenCM의 3.3v에 연결한 빨간 선을 IAP 쪽에 표시해 놓은 사각형에 연결합니다.

2. 빨간색으로 표시한 RESET 버튼을 눌렀다 떼고 잠시 후에 3.3v 전선도 뽑습니다.

    육안으로는 아무런 변화를 느낄 수 없습니다.^^

3. CMD 창에서 아래 내용을 실행합니다.

    반드시 stm32ld.exe ​파일과 테스트용 부트로더 파일이 존재하는 폴더에서 실행하셔야 합니다.

    자기 컴에 U2S가 인식된 COM포트 번호로 수정하시기 바랍니다.

    

    CMD 창에서 진행하는게 어려운 분들은 아래 URL에서 GUI 버전으로 진행하시기 바랍니다.

    http://cafe.naver.com/openrt/5943

결선 방법이나 부트로드 다운로드 방법을 잘 모르겠으면 아래 바람님이 만드신 영상을 참고하세요.

 

이제 정상적으로 동작하는지 간단한 테스트를 위해 로보티즈의 OpenCM IDE 프로그램을 구동합니다.

바람님이 하신것처럼 "파일>예제>03. Communication > a_SerialUSB_HelloWorld"를 선택합니다.



다운로드 아이콘을 클릭합니다.



하단의 상태 창에서 다운로드가 정상적으로 진행되는지 확인합니다.



동작을 확인하기 위해 "도구 > 시리얼 모니터"를 실행합니다.



시리얼 모니터 창에 "Hello World!!"가 정상적으로 출력되고 있습니다.



이젠 용기를 내어서~~~

아래 바람님의 글을 참고해서 Skyrover Nano용 부트로더와 펌웨어를 적용해봅니다~

http://cafe.naver.com/openrt/5587
 

위 글에서 "opencm_boot_v140711.bin" 첨부 파일을 내려받고 지금까지 했던 것처럼

IAP의 boot0 핀에 3.3v를 연결하고 RESET 스위치를 눌렀다 떼고 3.3v도 제거합니다.

 

이번엔 GUI 프로그램을 구동해서 UPDATE 버튼을 클릭한뒤 U2S의 COM포트를 선택합니다.

 

 

그리고 BootLoader 버튼을 클릭해서 다운로드한 "opencm_boot_v140711.bin" ​ 파일을 선택하면

OpenCM 보드에 해당 부트로더 파일을 다운로드합니다.

 

CMD 창을 이용하시려면 아래처럼 하시면 됩니다.

> stm32ld.exe COM5 115200 opencm_boot_v140711.bin 1

 

펌웨어 다운로드의 경우에는...

개발 환경을 설정해서 빌드 해야겠지만 제 경우에는 일단 아래에서 "SKYROVER.bin" 파일을 내려받았습니다.

https://github.com/oroca/SkyRover_Nano/tree/master/obj

위 링크에서 직접 받는경우 브라우저및 인터넷 특성에 따라서 100% 완벽하게 다운로드되지 않고

파일 사이즈를 보면 일부만 다운로드되는 경우가 있으니 프로젝트 폴더에서 전체 파일을

zip으로 내려 받아서 압축 해제후 사용하시거나 제 글에 첨부된 파일을 이용하시기 바랍니다.

 

1. OpenCM 보드의 USER_SW 버튼을 누른 상태에서 RESET 버튼을 눌렀다 떼고 USER_SW 버튼도 뗍니다.

    초록색 LED가 점멸합니다.

 

2.  "Firmware" 버튼을 클릭해서 다운로드할 펌웨어를 선택하면 됩니다.

     초록색 불이 멈췄다가 빠르게 깜빡거린 후 천천히 깜빡 거리다가 꺼집니다.

 

    GUI 대신 CMD 창에서 진행하시려면 아래처럼 하시면됩니다.

    > stm32ld.exe COM5 115200 SKYROVER.bin  2

 

세부내용은 아래 바람님의 글과 영상을 참고 하시기 바랍니다.

http://cafe.naver.com/openrt/5587

 

제 경우 장치 관리자에서 살펴보면 U2S는 COM5에 할당되고, Virtual COM은 COM11이 할당되었네요.

 

 

OpenCM과 U2S모두 PC에 USB로 연결 하셔야 멀티위 콘피그에서 테스트가 가능합니다.

 

제 경우 센서는 아래처럼 GY-521를 사용했습니다.

 

 

Vcc는 OpenCM의 3.3v에 연결하고, GND는 OpenCM의 GND에, SCL은 24번, SDA는 25번에 연결 후

정상 동작을 확인하기 위해 U2S를 PC와 연결하신 후 테라텀 등을 실행해서 U2S 포트에 접속합니다.(제 경우 COM5)

그 뒤 OpenCM의 USB 포트를 연결하시면 부팅 과정을 보실 수 있습니다.

(테라텀 실행전에 OpenCM의 전원이 미리 연결되어있다면 OpenCM의 전원을 다시 연결하세요)

 

 

 

위처럼 Booting.. 다음에 MPU6050이 정상적으로 인식되는 걸 확인할 수 있습니다.

확인이 끝났으면 반드시 테라텀을 종료 해주세요.

 

정상적으로 진행되었으면 센서 배치를 참고하셔서 아래의 멀티위콘피그 프로그램으로 테스트를 진행하시기 바랍니다.

http://cafe.naver.com/openrt/4605 

 

멀티위 콘피그 프로그램을 실행 후 좌측 상단의 PORT COM 목록에서 U2S에 할당된 COM 포트를 선택하시면 됩니다.

COM 포트와 연결되면 COM 포트 영역이 초록색으로 바탕색이 바뀝니다.



그 뒤 "START" 버튼을 클릭하시면 좌측 상단의 "multiwii.com V0" 부분이 "multiwii.com V230" 처럼​ 바뀌면서

비행기 그림도 나오고 상단의 탭 영역도 3개로 늘어 나는 걸 볼 수 있습니다.


 

 

참고로, 위 테스트 글에서는 OpenCM 보드의 핀번호가 나와있지만...

다른 글에서는 핀 번호 대신 PA??, PB?? 형태로 나와있는데 해당 핀맵의 경우 아래 글을 참고하시면 도움이 되리라 봅니다.

http://cafe.naver.com/openrt/4563 

 

이제 부트로더와 펌웨어를 다운로드하는 방법 및 테스트 방법을 알았으니 기초 길라잡이는 어느 정도 끝난 것 같습니다.^^

남은 건 이클립스 개발 환경을 설정해서 편하게 적용하면 되겠습니다.

 

개발 환경 설정은 아래 글을 참고하시기 바랍니다.

http://cafe.naver.com/openrt/6016 



흠.. 이상하게 유튜브 영상이 Copy&Paste가 안되는군요.

부득이 유튜브로 이동해서 태그를 복사하려해도 유튜에서 보기를 클릭해도 반응이 없네요-_-;;;;

영상이 포함된 글은 아래 원문을 참고하시기 바랍니다.

http://blog.naver.com/dev4unet/220115740328