2016년 10월 2일 일요일

두번째 레이싱 드론 제작기 - 4. Naze 보드 firmware upgrade

오늘은 Naze의 firmware를 최신버전으로 upgrade 해보도록 하겠습니다. Upgrade 하다가 실패했을 경우 어떻게 해결하는 지도 같이 알아보도록 하지요.

Cleanflight을 실행하고 왼쪽 아래에 'Firmware Flasher' tab을 선택합니다. 아래와 같은 창을 보실 수 있습니다.


Naze 보드를 USB line을 이용하여 컴퓨터와 연결해둡니다. 'Choose a board' 메뉴에서 Naze를 선택합니다. Cleanflight는 multi-platform configurator이기 때문에 Naze 이외의 다른 flight controller에도 연결하여 설정을 할 수 있습니다. 'Choose a firmware version for Naze' 메뉴에서 가장 최신의 (stable)이라고 되어 있는 version을 선택합니다. 그 아래 다른 스위치들이 보이는데 모두 비활성화 해둡니다.


여기까지 해주시면 창 맨 아래 오른쪽에 보이는 세개의 버튼들 중에서 가운데 것이 활성화되어 있습니다. 'Load firmware [online]' 이 버튼인데요. 눌러줍니다. 선택한 보드와 firmware version을 online으로 upgrade를 하겠다는 뜻입니다. 해당 firmware의 release info가 보이면서 'Flash Firmware' 버튼이 초록색으로 활성화 되는 것을 보셨을 것입니다.


마지막으로 'Flash Firmware' 버튼을 눌러줍니다. 'Programming: SUCCESSFUL' 메시지가 뜨고 firmware가 최신 version으로 upgrade 되었습니다.







위의 과정처럼 아무런 문제 없이 upgrade가 완료되면 매우 좋겠지만 가끔 예외적인 상황이 벌어지기도 합니다. Cleanflight에서 upgrade 과정에서 error가 발생할 경우 몇 가지 대처 방법을 알려드리겠습니다.

1. Upgrade 진행 중 에러가 발생한다면 USB 라인을 다른 것으로 교체해서 upgrade를 진행해 봅니다.

2. 이전 posting에서 알려드렸던 usb driver가 모두 설치되었는지 확인해 봅니다. 만일 설치하지 않았다면, Usb driver의 link는 아래 그림을 참고하시어 일일히 접속해서 설치하시면 됩니다.


3.  이상의 두 가지 조치에도 정상적으로 upgrade가 되지 않는다면 다음 방법을 이용해 봅니다. 다음 방법은 Flash Loader Demonstrator라는 프로그램을 이용하여 cleanflight의 Naze용 최신 firmware를 upgrade하는 방법입니다.

3-1. 아래 링크를 따라가서 Flasher-stm32를 다운로드하여 설치합니다.

http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html


3-2. 설치된 program 목록에서 stmicroelectronics라는 folder 아래 demonstrator gui가 생겼을 것입니다. 아래 링크로 접속 하여 .hex 확장자의 naze용 firmware를 직접 다운로드해서 찾기 쉬운 곳에 저장해 둡니다.

https://github.com/cleanflight/cleanflight/releases

3-3. Naze board 위에 boot라고 표시된 두 개의 단자(아래 그림의 빨간 동그라미 두 개)가 있습니다. 이 두 단자를 short 시킵니다. 알루미늄 호일을 얇게 잘라서 스카치테입으으로 붙여두는게 제일 간단합니다. (주의할 점은 이 두개의 단자 옆에 5V 단자가 있는데, 이것이 boot 단자와 연결되면 안됩니다.)



3-4. USB line으로 Naze를 컴퓨터와 연결합니다.

3-5. demonstrator gui를 실행합니다. Port name에서 COM port를 찾아 선택합니다. USB로 Naze가 연결되어 있다면 하나가 보일 것인데 그것을 선택하면 됩니다.


그리고, next 버튼을 눌러줍니다. 다른 설정은 건드릴 필요가 없습니다.

3-6. 아래와 같은 창이 보일텐데 이제 boot 단자를 연결하던 알루미늄 호일을 제거해도 됩니다.


3-7. 아래 창에서도 역시 next 버튼을 눌러줍니다.


3-8. 아래 창에서 Download to device를 선택하고 아까 download 했던 hex file을 선택합니다. 그리고 next 버튼을 누릅니다.


3-9 Naze 보드로 firmware를 복사하기 시작하고 완료되면 아래와 같이 다운로드가 완료되었음을 알려줍니다.


지금까지 Flash Loader Demonstrator를 이용하여 최신 cleanflight의 naze용 firmware를 upgrade 하였습니다. Cleanflight에서 잘 연결이 되지 않아 firmware upgrade에 실패할 경우나 Naze 보드가 벽돌이 되었을 때 사용할 수 있는 방법입니다.



2016년 9월 29일 목요일

두번째 레이싱 드론 제작기 - 3. Cleanflight 설치 및 Naze 연결하기

Naze 보드에 전원, motor, rc receiver를 물리적으로 연결한다고 바로 동작을 하는 것은 아닙니다. Flight controller에 들어있는 firmware의 설정 값들을 바꿔주는 작업을 해주어야 합니다. 그러한 작업을 쉽게 해주는 configuration tool의 하나가 바로 Cleanflight입니다. Cleanflight은 구글 Chrome browser의 app 형태로 개발되었습니다. 즉, Cleanflight을 구동하기 위해선 우선 Chrome 브라우저를 설치하셔야합니다. Chrome 브라우저는 설치했다는 가정하에 cleanflight을 설치해 보도록 하겠습니다. 구글에서 'cleanflight'으로 검색을 합니다.


Cleanflight configurator link를 선택하면 크롬의 웹스토어로 접속이되고 아래와 같이 앱 소개 화면이 뜹니다. 설치를 눌러서 해당 앱을 설치합니다. 저는 이미 설치를 해두었기 때문에 설치 버튼 대신에 앱 실행 버튼이 보입니다.


설치가 완료되었으면 한 번 실행을 해보도록 하겠습니다.


아직 Naze는 usb 라인을 이용해 컴퓨터에 연결된 상태가 아닙니다. 그리고 위 화면에서 빨간 박스로 표시해둔 곳을 보시면 세 개의 link가 있는데 flight controller의 USB driver들입니다. 세 가지 모두 설치하시는게 좋겠습니다.

여기서 잠깐! USB driver들을 모두 설치하셨다면 cleanflight을 종료하시고, 컴퓨터도 재부팅을 해줍니다. Naze 보드를 연결했을 때 문제없이 컴퓨터가 인식하게끔 하기위해서입니다.

컴퓨터가 새로 켜졌다면 이제 usb 라인을 이용하여 Naze 보드를 컴퓨터에 연결해 봅니다. 파란색 led가 항시 켜져 있고 잠시 빨간불이 번쩍거리다가 금새 분홍색 led가 1초 간격으로 켜졌다 꺼지길 반복하면 정상적으로 연결된 것입니다. 한번 더 확인을 위해서 장치관리자로 가시면 아래 그림의 빨간색 항목과 같은 COM port가 보입니다. 이제 Naze용 usb 드라이버가 정상적으로 설치되었고, 컴퓨터가 Naze를 인식했습니다.

이제 다시 크롬을 열고 cleanflight을 실행해 보겠습니다. 그리고 이번에는 오른쪽 상단의 connect 버튼을 눌러서 cleanflight이 Naze에 연결되도록 해보겠습니다.


연결이 되고나서 아무런 문제가 없다면 아마 아래와 같은 창이 보일 것입니다.


짜잔! 화면안에 드론의 모습이 보일테고요 보드를 회전함에 따라서 cleanflight 창의 드론도 같이 움직일 것입니다. 오늘은 여기서 포스팅을 마치도록 하겠습니다. 다음시간에는 오늘 포스팅에서와 같은 연결이 되지 않을 때 어떻게 해결을 할 수 있는지 알아보도록 하겠습니다.



2016년 9월 28일 수요일

두번째 레이싱 드론 제작기 - 2. Flight controller NAZE32 full version rev5 간략한 설명

Flight controller NAZE에 대해 알아보겠습니다. Flight controller(이하 fc)란 드론 기체를 control하는 중앙 처리 장치라고 보시면 됩니다. 지상의 pilot이 보내는 RC 조종기의 신호를 받아 pilot이 의도한 대로 기체를 움직이게끔 모터의 speed를 조정합니다. 또한 별 다른 조종 신호가 감지되지 않더라도 항상 기체가 balancing을 유지하도록 자이로 센서의 값을 가지고 스스로 기체를 제어하기도 합니다. 한마디로 정의하자면 pilot의 조종신호와 fc에 내장된 센서들의 측정치를 이용하여 기체를 pilot이 원하는 대로 비행하게 해주는 장치라고 할 수 있습니다. 이 fc는 quadcopter만을 위해 사용되는 것은 아닙니다. 모든 RC 비행기, 헬리콥터, 심지어는 RC car에도 사용 가능한 것입니다.

제가 첫번째 드론을 만들 때에 fc는 CC3D라는 것을 사용했었습니다. 제작 kit를 구매했을 때 들어있던 것이 CC3D라 그것을 쓴 것 뿐이지요. 인터넷 forum을 돌아다니다 보면 최고의 fc는 무엇이냐에 대해서 갑론을박 논란이 많은데, 결국 개인취향이고 각자가 필요에 맞게 사용하는 것이 좋은 것 같다는 결론입니다. 예전에는 fc도 고가의 제품이었기 때문에 RC 비행기나 헬리콥터를 하려면 꽤 많은 비용이 들어갔었다고 합니다. 그러나 요즘에는 fc를 비롯한 모든 부품들이 중국에서 저가에 공급되기 때문에 대중적인 취미로 거듭났다고 할 수 있겠습니다. 물론 DJI사의 commercial한 취미용 드론이 대성공을 거둔 것도 있었고요. 또한 기존의 RC 비행기 및 헬리콥터보다는 quadcopter의 조종이 매우 쉽기 때문에 진입장벽이 낮은 것도 무시 못할 원인으로 보입니다.

다시 fc 얘기로 돌아와서 그래도 많이 언급되고 사람들이 많이 사용하는 fc가 NAZE이기 때문에 그것을 이번 제작에 사용할 것입니다. NAZE의 경우 현재 revision 6까지 나와 있는데, 저는 revision 5를 이용할 것입니다. 35mm 정사각형의 PCB 보드위에 여러개의 chip들이 장착되어 있고 네 귀퉁이에는 mounting을 위한 구멍이 뚫려 있습니다. 보드의 중간쯤에서 우상향에 위치한 하얀색 화살표가 가리키는 곳이 앞이 됩니다. 즉 드론의 머리 방향과 보드의 화살표 방향이 일치하도록 탑재를 해야합니다.

Naze 32 full version flight controller

여러 개의 NAZE copy fc들이 인터넷을 통해 유통되고 있는데 크게 두 가지로 분류가 됩니다. Funfly version과 Full version입니다. Full version의 가격이 조금 더 비쌉니다. 이유는 두가지의 센서가 추가로 달려있기 때문입니다. Funfly version의 feature들을 먼저 말씀드리면 8개의 input과 6개의 output 단자가 있습니다. 보드 자체에 telemetry FrSky circuitry가 내장되어 있고, battery voltage warning 기능이 있습니다. 32 bit processor를 갖추고 있고 microusb connector가 하단에 위치해 있습니다. Sbus를 지원하고 3축 자이로 센서와 3축 가속 센서가 있습니다. Full version의 경우는 funfly version의 모든 feature를 가지고 있고 추가로 3축 자기장 센서와 기압 센서가 달려있습니다. 이 두가지 센서와 GPS antenna가 있다면 미리입력된 좌표와 고도에 따라 자동 운항이 가능할 것입니다. 이 모든 센서들과 feature들을 갖추고도 이 fc의 무게는 고작 5.1g 정도입니다.



자기가 산 NAZE가 full version인지 아닌지 가장 쉬운 방법은 barometer sensor가 달려있는지 확인하는 것입니다. 다른 chip들에 비해 barometer sensor가 다소 독특한 모양을 가지고 있기 때문입니다. 위 그림은 EMAX사의 Skyline 32라는 flight controller입니다. 역시 NAZE32 보드인데 회사별로 자기들 만의 모델 이름을 붙여 파는 것입니다. 빨간색 동그라미 안에 은색 커버의 chip이 보이는데 대각선 두 귀퉁이에 동그란 홈이 파져 있습니다. 이 barometer sensor가 있다면 그것은 full version입니다.

Naze 32의 barometer sensor

레이싱 드론의 경우는 fc의 응답속도가 매우 중요한 인자가 되는데 보드의 처리속도가 점점 빨라지는 추세라고 합니다. 앞으로는 어떤 fc들이 대세가 될 지는 모르겠지만, 일단 저의 제작기에서는 NAZE32 rev.5 full version으로 시작할 것입니다. 오늘은 간단히 flight controller란 무엇인가를 알아보았고 그 중 하나인 NAZE의 몇가지 제원에 대해서 알아보았습니다. 다음 시간에는 software를 이용하여 NAZE의 안에 어떤 설정 값들이 들어있는지 알아보고 NAZE platform의 firmware를 upgrade 하는 방법에 대해서 알아보도록 하겠습니다.

2016년 9월 27일 화요일

두번째 레이싱 드론 제작기 - 1. Prologue

이번 포스팅부터는 다시 레이싱 드론 제작기를 연재해 보려고 합니다. 작년에 만들어서 한참을 재미있게 날리던 첫번째 드론이 비행중 추락하면서 프레임이 크게 부서졌습니다. 이참에 구매해 두었던 프레임과 각종 부품들을 이용해서 다시 만들어 보려고 합니다.

멀쩡할 때 찍어둔 저의 첫번째 250mm 드론입니다. 왼쪽팔과 왼쪽다리가 부러지는 사고를 겪었습니다.

첫번째 드론을 제작할 때는 완전히 아무것도 모르는 상태에서 시작했었기 때문에 인터넷에 있는 튜토리얼을 참고해서 만들었습니다. 구색을 맞추어 뚝딱뚝닥 만들어내기에 급급했다고나 할까요? 또한 저가의 부품들로 채워진 kit를 구매해서 만들었었기 때문에 조금 높은 급의 part를 이용해서 조립을 해보고 싶은 마음도 있습니다. 물론 그렇게 한들 조종기술이 눈에 띄게 늘어나지 않을 꺼에요. 그냥 장비병인 거에요.

첫번째 레이싱 드론이 망가진 후로 한동안 DJI사의 Phantom과 Inspire를 띄워서 경치나 찍고 있었더랬습니다. 그런데, 최근에 레이싱 드론을 날리던 아재 파일럿의 모습을 보고 다시 레이싱 드론을 향한 열정이 불붙었습니다.

이번 제작에 있어서 두가지 원칙을 가지고 제작하려고 합니다. 조종이 서툴러서 추락할 때마다 떨어지고 망가진 부품을 다시 교체하고 수리했었는데요. 이번에는 왠만한 충격에는 부품들이 떨어져 나가거나 망가지지 않도록 만들 것입니다. 그리고 각각의 부품들의 작동원리를 십분 이해하고 제작을 할 것입니다. 공부할 것이 늘어나고 제작이 더뎌지긴 하겠지만, 제 블로그를 보시고 직접 제작을 시도하시는 분들에게 조금 더 도움을 드릴 수 있을 것입니다.



2016년 9월 17일 토요일

DJI Inspire1 공룡알화석지

경기도 화성시의 공룡알화석지입니다.


주차장 근처에서 띄운 후 공룡알화석지를 두루 비행하시면 됩니다. 전깃줄이 꽤 있으니 주의하셔야합니다.


DJI Phantom4 3km long range flight 경안천습지생태공원

경안천 습지 생태공원 비행입니다. 습지 위에서 날린 건 아니고요. 지도를 보고 장소를 알려드리도록 하겠습니다.


찾아가시려면 위의 지도를 참고하시면 되겠습니다. 도착하신 다음에 공원안으로 들어가시면 습지 밖에 없습니다. 드론을 띄울만한 공간도 없고요. 대부분 나무 다리로 이어진 길이거나 편편한 흙바닥의 길이 나오더라도 좌우의 나무들 때문에 날릴 수가 없습니다.

주차장에서 공원으로 들어가셔서 오른쪽으로 외곽 길을 따라 쭉 갑니다. 직선으로 이어진 길이 끝날 무렵 비닐하우스 들이 보이고 폭 5m 정도의 큰 길이 보이는데요. 그곳에서 드론을 띄우면 됩니다.





2016년 9월 16일 금요일

경기도 양평 강하체육공원(강하예술공원) Phantom3 advanced 비행

남한강 위로 드론을 날리며 염통이 쫄깃쫄깃 해지고 싶은 분들을 위한 드론 스팟을 알려드립니다. 경기도 양폄의 강하체육공원입니다. 강하예술공원이 바로 옆에 있습니다. 구글링을 했을 때 강하예술공원에 몇 가지 조형물이 있었던 것 같습니다만, 전 드론 비행을 위해 간 곳이므로 주차장에 주차를 하고 바로 드론을 날렸습니다.

9월에 접어들었으나 여전히 더운 날씨였는데, 적당한 그늘을 찾지 못해서 주차한 차 뒤에 쪼그리고 앉아서 뙤약볕을 피해 조종을 했었습니다.



강하체육공원은 경기도 양평 강하면에 위치한 작은 공원입니다. 한적한 시골마을을 산책하고픈 분들에게도 적극 추천합니다. 체육공원 산책로를 따라 전원의 풍경을 한 껏 누릴 수 있습니다. 몇 장의 사진 올려드리겠습니다. 동네를 걸으면서 폰으로 찰칵찰칵한 사진들이에요.




비행코스는 일단 강을 한번 가로질러 날라갔다가 오는 것으로 했습니다. 강을 횡단했다가 선회하면서 돌아와도 배터리가 좀 남아서 강반대편으로 좀 더 들어갔다 나왔습니다.


비행 경로를 보니 오리대가리 같습니다. 저의 애용품 signal booster를 이용해서 2.5km 까지 멀리 비행이 가능했습니다. 사람도 별로 없고 한적한 곳이라 편한 마음으로 비행을 즐길 수 있는 장소였습니다.




경기도 화성시 궁평항에서 DJI Phantom4 3.8km 장거리 비행

Phantom 4를 이용한 장거리 비행에 한 번 도전을 해보았습니다. 넓게 트인 곳에서 장거리 비행을 해볼 만한 위치를 지도를 보고 찾아갔습니다. 경기도 화성시에 위치한 궁평항으로 원정비행을 나가기로 했습니다.

궁평항의 위치입니다. 경기도 화성시에 위치하고 있습니다. 해질녘에 도착해서 바람이 어느정도 불기는 했으나 비행에 크게 무리가 갈 정도는 아니었습니다. 추석연휴에는 일단 그랬다는 것이지만, 계절따라 바람이 얼마나 부는지는 모르겠습니다.



아래의 파란 선을 따라 궁평항 근처에서 넓게 펼쳐진 지역을 따라 직선으로 비행하려합니다.


장거리 비행을 위해 아래와 같은 signal booster를 사용했습니다. Aliexpress에서 5$내외의 가격으로 구매를 할 수 있습니다.

가성비 개쩌는 아이템

약 50m 이상으로 이륙한 후 해안을 따라 냅다 날렸습니다. P mode에서 8m/s의 속력으로 쭉 날아갔습니다. Remote control signal 및 video signal 모두 안정적으로 끊김없이 3.8km 정도를 날아갔습니다. 3.8km 지점에서는 video signal이 오락 가락 했구요. RC signal은 여전히 full로 채워져 있었습니다.

Video signal이 끊기니 다소 마음이 초조해져서 그냥 홈버튼을 눌러버렸습니다.

추락하면 찾지도 못해... 할부도 아직 안 끊났다구!

기체를 돌리는 것을 영상을 통해 확인할 수가 있었고, 다시 안정적으로 영상이 보였습니다. 그리고는 그냥 영상 감상하면서 기다렸습니다. 돌아오는데 약 6분 30초 정도가 걸렸고 대충 계산해보니 9~10m/s의 속력으로 돌아온 것 같습니다.

콜라와 팝콘이 있었더라면 기다리느라 무료하지 않았겠죠?

도심지역에서는 1km 정도 날아가면 신호가 끊기는 일이 허다한데, 아마 다른 전자기파들에 의한 전파혼신 때문에 발생하는 문제 같습니다. 도심지역을 벗어나 외곽에서는 늘 2km 이상의 장거리 비행에 문제가 발생하지 않더라구요. Phantom 3, 4, Inspire 1 모두 동일합니다. 단, 앞서말한 signal booster는 필수!

아래 영상은 돌아오면서 Phantom 4가 찍은 영상입니다.