티스토리 뷰

아두이노 프로 마이크로와 ESP8266 그리고 자이로 센서를 이용해서 드론을 만들려고 합니다.

그래서 그에 따른 공부 내용을 포스팅 하도록 하겠습니다.


일단 ESP8266은 아두이노 프로 마이크로와 시리얼 통신을 할 수 있습니다.

시리얼 통신이 무엇인지는 전에 포스팅한 링크에 들어가셔셔 확인하시면 되요


즉, 시리얼 통신을 할려면 서로 TX-RX 핀끼리 연결이 되어있어야 합니다.


TX(Tranmitter) : 송신부

RX(Reciver) : 수신부



결선 방법


  • 송신측 -> 수신측 [ TX-RX ]
  • 수신측 -> 송신측 [ RX-TX ]



여기서 드론을 핸드폰으로 조종하는거니까 ESP8266모듈은 Soft Ap Mode가 됩니다. 그렇게 하기 위해서는 ESP8266에다가 펌웨어를 업로드를 해야합니다. 


[시행착오]


저는 펌웨어를 업로드 할려고 할때 ESP8266 동작전압이 3.3V니까 당연히 아두이노 프로 마이크로에서 3.3V를 지원하니까 별로의 모듈이 없어도 작동이 될줄 알았습니다. 그러나 계속 해보니까 에러가 나더라고요.


error : espcomm_open failed
error : espcomm_uploadmem failed


그렇게 해서 계속 찾아보고 알아본 결과! 별도의 USB to serial 모듈이 필요하다는 결론이 나왔습니다.

아두이노 프로 마이크로가 3.3V에서 50mA까지 공급이 되는데 ESP8266은 펍웨어 업로드를 할 경우 60mA가 필요하며 동작을 할려면 300mA가 필요합니다. 그래서 별도의 모듈이 필요하다는걸 알게 되었어요. 저는 FTDI Basic 모듈을 구매했습니다.  



계속 이어서 설명을 하자면 드론에서 ESP8266은 TCP Transparent Server 역할을 하게 되는데 이 의미는 중간에서 데이터를 있는 그래도 몽땅 다 전달을 해준다는 의미입니다.



ESP8266보드 패키지 설치하기







추가적인 보드 매니저 URLs에다가 위와 같이 입력을 해줍니다.

http://arduino.esp8266.com/stable/package_esp8266com_index.json


이 방법은 Arduino 보드가 아닌 추가적인 외적인 보드를 Arduino IDE에 추가할때 사용하는 방법입니다.

위 과정은 IDE에다가 ESP8266 보드 개발환경을 추가하는 방법입니다.



그리고 [보드 매니저]로 들어가셔서 ESP8266에 대한 보드를 설치를 해주세요




저같은 경우에는 2.0버전으로 설치를 해주었습니다.






그렇게 하면 결과적으로 ESP8266개발 환경이 적용된 모습을 볼 수 있습니다.





펌웨어 업로드


위에서 설명을 했듯이 ESP8266은 3.3V 60mA가 필요하니까 USB to Serial에서 IO용 전압을 3.3V에 맞추어 사용합니다.







*펌웨어 업로드시 주의사항*


펌웨어 업로드시 기존에 있떤 펌웨어가 올라가 있을 경우를 대비해서 부트로더 모드로 설정을 해주어야 합니다.

부트로더 모드가 무엇이냐면 GPIO0핀을 GND(0V)로 연결을 시켜주어야 합니다.




아두이노 IDE로 가셔서 ESP8266예제에서 WiFiWebServer 예제를 열어주시기 바랍니다.

이 예제는 AP(공유기)에서 IP를 할당받아서 서비스를 수행하는 것 입니다. 쉽게 비유를 하자면 집에서 스마트폰으로 WiFi를 연결하는 것 입니다.


















WifiWebSerber를 열어주시면 예제가 보여지는데 거기서 윗 부분을 보게되면










이렇게 보여집니다. 이것은 SSID가 WiFi 이름이고 password는 WiFi 비밀번호 입니다.


저같은 경우에는 스마트폰의 테더리 기능(핫스팟)을 이용했습니다.


알맞게 입력을 해주고 컴파일 시켜주면






위와 같은 진행과정이 보이게 됩니다.


"closing bootloader"라는 메세지가 나오게 되면 펌웨어 업로드가 완료된 것 입니다.


이제 업로드가 되면 GPIO0은 GND에서 선을 떼버립니다. 그리고 esp8266 보드의 전원을 Reset 시켜줍니다.

이렇게 해야지만 스케지가 로드됩니다.








시리얼 모니터 창을 확인해주시면 위와 같이 공유기(스마트폰)에서 ESP8266에게 아이피를 할당해주었습니다.




웹 브라우저 창에 들어가셔서 할당 받은 아이피 뒤에 /gpio/0 이라고 입력을 하면 LED가 꺼지고 1이라고 하면 켜집니다.

























위와 같은 경우는 Station Mode 방법입니다. 

즉, 드론에서는 위와 같은 방법을 사용 안할겁니다.


드론에서 사용하는 방법인 Soft AP Mode에 대한 예제도 해보겠습니다.


Esp8266예제에서 WiFiAccessPoint 예제를 들어가주세요



여기서 SSID와 PAssword는 안건드려도 됩니다.


여기서도 부트로더 모드로 설정 한 후 펌웨어를 업로드 합니다.








GPIO0번 핀을 GND에서 뗴고 전원을 Reset 시키면 스케치가 로드됩니다. 그렇게 되면 스마트폰이나 PC상에서 ESP8266의  와이파이가 잡히게 됩니다.

Comments