'쿼드콥터'에 해당되는 글 10건
- 2011.08.12 첫 가공으로 쿼드프레임을 만들어보다.
- 2010.12.10 ArduinoIMU #2. 보드 제작
- 2010.12.09 ArduinoIMU #1. 소스 수정..
- 2010.08.03 쿼드... 최소 비용으로 시작해보자!
- 2010.07.21 Micro quad - wii copter 만들기 #2 schematic & 준비물
- 2010.07.21 Micro quad - wii copter 만들기 - 센서 샘플링에 대한 discuss
- 2010.07.21 micro qaud - wii copter 를 만들기 시작.#1
- 2009.12.30 미크로 콥터 소스 컴파일...
- 2009.12.30 PWM TO PPM 소스
- 2009.12.30 쿼드 콥터..재료비
첫 가공으로 쿼드프레임을 만들어보다.
첫 가공으로 선택한 것은 쿼드 콥터용 프레임이었다.
일단 마캠을 이용하여 툴패스를 뽑은 후에..
G 코드를 뽑아냈다.
이 G코드를 EMC2 에 사용하기 위해서는 포스트 작업이 몇가지 필요한데..
문서편집기를 이용할 수 있다.
첫번째는 O## 로 시작하는 첫번째 줄 삭제
그리고 공구와 관련된 명령어들 삭제 T###, H### (통째로 라인을 날리면 된다)
마지막으로 우리는 A축을 사용하지 않으므로 해당 구문을 삭제하는 것이다.
이 때에는 라인 전체를 삭제하지 않고 A0. 만 삭제해준다.
전 라인에 걸쳐 단 두번 나오니 어렵지 않다.
이렇게 편집해서 emc2 로 읽어들였을 때에, 저 그림이 그대로 뜨면 성공...아니면 실패..
어쨌든 피드도 무시하고 스핀들의 RPM 도 무시하고 돌려봤다. 재질은 폴리카보네이트3T 짜리 패널이다.
밀링 진행 도중에 패널에서 발생한 칩이 엔드밀에 덕지 덕지 달라붙는다.
피드와 RPM을 조금씩 바꿔보지만 나아지지 않는다. 칩 엔드밀에 안들러붙게 하는 것...이게 노하우겠지..
어쨌든 재질이 부드러운지 손으로 쉽게 떨어지고 엔드밀에도 크게 무리가 안가는 거 같아서 그냥 진행..
그러나, 미래를 생각하려면 개선해야한다.
현재는 다용도 2날짜리 엔드밀을 썼는데, 아무래도 아크릴 전용 외날로 바꿔주는게 좋을듯 하다.
또한, 절단면도 고르지 않다...
그러나 첫 가공물이니 만족하기로 했다.
저 프레임을 이용하여 멀티 콥터를 만들어봤다. 보드는 전에 인터보드의 주병규님께서 무료로 뿌리신 PCB 이다.
아직 한번도 써본적이 없어 이제 처음으로 써보려 한다...
어쨌든 위 나사를 쪼이는 순간이 가장 보람찬 순간이다.
빈틈없이 짜맞춤되어 딱 들어맞을 때의 그 기분...
뚝딱 뚝딱 완성했다. 세팅이 남아있는데.. 어떻게 하더라??
ArduinoIMU #2. 보드 제작
ArduinoIMU #1. 소스 수정..
쿼드... 최소 비용으로 시작해보자!
Micro quad - wii copter 만들기 #2 schematic & 준비물
구상한 회로도이다.
Micro quad - wii copter 만들기 - 센서 샘플링에 대한 discuss
micro qaud - wii copter 를 만들기 시작.#1
미크로 콥터 소스 컴파일...
Q. avrstudio 에서 첫 컴파일이 안됩니다.
A.
Project 메뉴 -> configuration Options -> General 탭
Use external Makefile 을 체크한 후에, 같은 폴더 내의 Makefile 을 선택
* 참고로, Makefile 에서 hex 파일의 출력을 소스 폴더 내로 지정하였기에,
더이상 hex가 dep 폴더 밑으로 가지 않는다.(에러처럼 나타나지만 에러아님)
PWM TO PPM 소스
#include <avr/io.h>
#define sbi(PORT,BIT) PORT|=_BV(BIT) //set bit
#define cbi(PORT,BIT) PORT&=~_BV(BIT) //clear bit
// use 20MHz clock for high resolution..
void send_100us()
{
register unsigned char i;
for(i=0;i<11;i++)
{
asm volatile("PUSH R0");
asm volatile("POP R0");
asm volatile("PUSH R0");
asm volatile("POP R0");
}
}
int main()
{
unsigned char pd;
unsigned char pb;
// out port : PB4
// input port : PB,PD except PD4
DDRB =0x10;
DDRD = 0x00;
// asm volatile("cli");
// asm volatile("sei");
PORTB = 0xef; // for internal pull up
PORTD = 0Xff;
pb = PINB;
pd = PIND;
while(1) {
if(pd != PIND) {
sbi(PORTB,4);
send_100us();
cbi(PORTB,4);
pd = PIND;
} else if(pb != PINB) {
sbi(PORTB,4);
send_100us();
cbi(PORTB,4);
pb = PINB;
}
}
return 1;
}