Quadrotor20152015. 8. 31. 20:19


오늘은 윙윙이를 변신시키는(다이어트?) 과정을 포스팅해보려 합니다~ 편안하게요 ㅋㅋ


음.. 갑자기 생각난건데 최근 밴드 혁오의 윙윙 이라는 노래가 음원차트 상위권에 랭크되어있던데.. 


비슷하네요 ㅋㅋ 저도 쿼드로터가 날 때 윙윙거려서 윙윙이라고 지었는데 ㅋㅋ


어쨌든! 경량화 해야지 해야지 하면서 미루다가 이제서야 하네요.. ㅜ


먼저 다이어트 전 윙윙이입니다.



프롭가드 빼니까 좀 허술해보네요 ㅋㅋㅋ 물에 빠진 강아지마냥..


이왕 하는김에 어느 파츠가 몇 그램인지 측정하기위해 완전 분해를 결심했습니다~!


(그래놓고 측정한거 써놨던 종이 잃어버림 ㅜㅜ)


완전 산산조각났을 때는 정신이 없어서 사진을 못찍었네요 ㅠㅠ 


작업중에 건진 사진은 달랑 이거 하나..




프레임이 무거울줄 알았는데 오히려 모터가 꽤 무겁더라구요..


무게를 1/3정도 줄이는걸 목표로 삼았는데 무리라는 생각이 들었습니다.ㅜㅜ



아두이노 배선이 지저분하죠? 


직접 PCB를 뜨지않는 이상 전선은 어쩔 수 없다고 생각하고.. 최대한 무게를 줄여보자는 마음에!


전선은 좀 더 얇고 가벼운 걸로 싹 교체하고! 


저 검은 소켓을 비롯해 전원소켓, USB소켓까지 필요없는건 다 없애버렸습니다.




USB소켓은 프롭가드랑 닿아서 연결이 힘들길래 아예 선으로 빼서 늘어뜨려 놨어요~!


음.. 지금보니 무식하게 선을 납땜해놨는데.. 


전자과나 고수분들이 보시면 욕할지도 모르겠네요ㅜㅜ





아크릴판으로 층을 만들어서 따로 장착했던 센서도 한 층에 몰아넣었습니다ㅋㅋ


이왕 하는거 스펀지+양면테이프로 방진 효과도 노려 보고!


프롭가드도 프롭에 닿을랑 말랑해서 불안했는데


새로 만들어서 안쪽을 칼로 도려냈습니다~! 무게도 줄일겸 ㅋㅋㅋ




짠~! 진짜 뭔가 새로워진 것 같아서 개발 의욕도 솟더라구요


무거움 -> 더 많은 추력 필요 -> 더 많은 모터 회전 필요 -> 더 많은 진동 -> 센서로 전달


이런 식일까봐 무게를 줄여봤는데 잘한 것 같네요


줄인김에 +콥터에서 x콥터로 바꾸니까 자세제어도 더 잘되고..


컴퓨터 폴더 살펴보다가 사진이 보이길래 지나가는 포스팅을 해봤습니다~


기술적인 부분은 다음 포스팅에..






Posted by 너를위한노래
Quadrotor20152015. 7. 24. 23:55

포스팅이 뜸한 사이 윙윙이(쿼드로터)에 많은 변화가 있었습니다~


점프선으로 복잡하게 얽혀있던 선을 모두 자르고 컴팩트하게 납땜해서 보기좋고 가볍게 해놨고, 센서에 방진장치로 양면테이프+스펀지를 대서 방진효과를 기대할 수 있게 해놨고, 불량 모터 교체, 라즈베리파이에서 오드로이드C1로 개선, 개발환경 구축, 시리얼 통신 비용 감소, +콥터에서 x콥터로 변경, 조종 어플 개선 등등 많이도 했네요.


그리고 그 동안은 게인값 튜닝에 많은 시간 투자를 했었는데.. 홧김에 제어기를 추가하니까 확실히 성능이 개선됐습니다.


아래 영상은 수동 조종 모드로 호버링을 시도한 영상입니다.



고도는 80cm로 고정시켜 놓았고 tack-off 버튼과 landing버튼으로 이륙과 착륙을 할 수 있게 해봤습니다. yaw각도 고정입니다.


이제 시작이네요! 이걸로 뭘 하느냐가 중요한 것 같습니다.


부셔먹지 말고 조심히 잘 해야지..


------------------------------------------------- 2015.07.29 추가 -------------

위 영상의 사용된 하드웨어는 아두이노Mega2560 + 오드로이드C1 + 갤럭시s4입니다. 오드로이드 운영체제는 RTOS가 아닌 하드커널에서 제공하는 우분투를 사용했고, 갤럭시s4는 안드로이드 KitKat(4.4.2)입니다. 

무선통신은 Wifi를 사용해 UDP통신을 하는 중이고(가끔 딜레이가 생기던데 원인 파악중..), 안드로이드 쪽에서 핫스팟을 켜두면 오드로이드에서 붙는 방식을 취하고 있습니다~







Posted by 너를위한노래
Linux2015. 7. 16. 12:52

임베디드 시스템으로 뭔가를 하시려는 분들은 요즘 라즈베리파이 시리즈나 오드로이드 시리즈의 리눅스를 많이 쓰시니까 보드를 키자마자 프로그램을 자동실행하게 하는 경우가 많을 것 같습니다.


저도 쿼드콥터 위에 오드로이드C1를 올려서 자동주행 알고리즘 연구를 하고있는데, 리눅스 고급유저가 아닌지라 많이 헤메게 되네요 ㅠㅠ


보통 자동실행은 /etc/rc.local 파일에 실행시킬 프로그램 경로를 써서 하게됩니다.


/root/hsPi/wing &


이런 식으로 써두는데 &는 백그라운드로 실행하라는 의미입니다. 백그라운드로 실행시키지 않으면 부팅 중간에 저 프로그램을 실행했다가 부팅과정을 마저 못끝내는 현상이 발생하더라구요 (저 프로그램은 loop구조라 끝나지 않는 프로그램..)


보통 이렇게 자동실행을 등록해서 사용해왔습니다. 그런데!


오드로이드C1에 올린 리눅스 우분투에서 위처럼 자동실행을 등록해놨는데 두 번 실행되는 문제가 발생했습니다.


아두이노와 Serial통신을 일정 주기마다 일정 크기만큼 주고받는데, 프로그램 두개가 한번에 보내니 아두이노에서 못받는 현상이 생기더라구요


부팅 과정을 짚어봐도 도저히 고칠수가 없길래 그냥 프로그램이 이미 실행중이면 실행하지 말라는 쉘 스크립트로 해결했습니다. ㅜ 뭔가 찜찜한 기분..


리눅스 중복실행 방지로 검색하니까 좋은 소스가 있어서 사용중입니다.


#load date
date=$(date +%y/%m/%d-%H:%M:%S)

#해당되는 프로세스 ID 읽어오기 (read process id with file name 'takeOriginImage.php').
pid=`ps -ef | grep "takeOriginImage.php" | grep -v 'grep' | awk '{print $2}'`

#프로세스ID가 있을 경우, 즉 실행 중일 경우, 메시지를 출력하고 종료.
#If the process ID - that means if it is running, a message and exit.
if [ -z $pid ]
then
/usr/local/php/bin/php /home/jdk/takeOriginImage.php > /home/jdk/_log/takeOriginImage.txt
else
echo $data "can not dual exec process!!!\r\n";
fi


도움 - http://breezymoon.blogspot.kr/2013/09/shell-script-to-avoid-duplicate-runs.html





'Linux' 카테고리의 다른 글

OpenCV 2.4.9 on Ubuntu 14.04  (0) 2015.06.15
Posted by 너를위한노래