'분류 전체보기'에 해당되는 글 35건

  1. 2017.04.05 LibrePilot 부트로더 버전 확인
  2. 2015.05.02 mraa 라이브러리 설치하기
  3. 2015.05.02 에디슨 시작하기
  4. 2015.05.01 QAV250 프롭가드
  5. 2015.04.24 CC3D setting
  6. 2015.04.24 Q900 first flight 1
  7. 2015.04.06 모터 구동
  8. 2015.04.06 트랜지스터 NPN? PNP?
  9. 2015.04.05 Ornithopter
  10. 2015.04.03 NAZE32 setting - CleanFlight

OpenPilot이 단종되고 LibrePilot이 출시되었다. 

LibrePilot 사용에 대한 내용 역시 사이트 주소가 바뀌었다.(다음 링크 참조)

http://opwiki.readthedocs.io/en/latest/index.html


먼저 OpenPilot을 찾다가 LibrePilot으로 바뀌게 된 것을 알게 된 사용자는 보드의 부트로더 버젼을 확인할 것(꼭 !)


rescue 모드로 확인하는 법이 개인적으로 쉬운 것 같다. 

먼저 LibrePilot을 설치하고 

http://opwiki.readthedocs.io/en/latest/user_manual/gcs_install_lp.html#downloading-the-gcs-installer


아래와 같이 BL version 을 확인할 수 있다.



Posted by J1Lee
,

Uploading mraa library to your edison

echo "src mraa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/mraa-upm.conf
opkg update
opkg install libmraa0


'인텔 에디슨' 카테고리의 다른 글

에디슨 시작하기  (0) 2015.05.02
Posted by J1Lee
,

가장 간단한 방법은 인텔 사이트에서 XDK 설치 프로그램을 다운로드 받아 설치

--> 필요한 각종 드라이버들이 자동으로 설치됨

--> 나중에 에디슨에 Linux올리게 되면 입출력을 PuTTY라는 프로그램을 사용하는데 XDK에는 이것이 내장되어 있음


인텔 사이트에서 XDK를 다운로드 받아서 설치하고 에디슨 확장보드를 연결하면 다음과 같이 두개의 포트가 생성됨(COM15, 16) -

XDK를 실행하고 아래부분을 보면 IoT Device 연결 및 업로드, 빌드, 실행, 디버그 등을 할 수 있는 부분이 다음 그림과 같이 구성되어 있다. 

먼저 에디슨 보드를 연결하기 위해서는 에디슨 보드의 wi-fi기능을 활성화하고 사용하는 PC와 같은 네트워크 상에 연결되도록 하여야 한다. 

그렇게 하기 위해서는 에디슨에 Linux를 설치하여야 하는데 Intel에서는 Yocto Linux 설치를 권장하고 있다. 인텔의 다운로드 사이트에서 무료로 다운로드 받은 후 압축을 풀고 에디슨 보드에 모든 파일을 복사한다. 

Wi-Fi 설정을 하기 위해서는 

Serial Terminal 탭을 눌러서

config_edison --setup     <-- 매우 중요함

를 실행한다. 

에디슨 보드의 이름을 정하라하고 패스워드를 정하라한다. 

패스워드는 꼭 정해야 하는 것 같음. 

그 다음 와이파이 스캐닝을 하고 리스트를 보여주는데 원하는 와이파이를 설정하고 와이파이 패스워드를 넣어주면 연결됨

해당 아이피 어드레스를 웹브라우저에 입력하면 

다음과 같이 잘 연결되었음을 확인할 수 있다.

이제 에디슨을 연결하려면 방금 입력한 아이피 어드레스를 입력하고 포트는 그냥 자동으로 생성된 값으로 놔두고(이게 뭔지 나중에 공부해봐야할듯) 사용자 ID와 패스워드를 입력하고 Connect를 누른다.

모든게 잘 되었다면 아래와 같이 연결되었다고 확인해 준다. 

아두이노에서처럼 13번 내장 LED 깜빡이 테스트를 해보자. 

XDK에 이미 예제로 들어있고 아두이노의 blink를 Arduino IDE(XDK 설치할때 에디슨 버젼 아두이노 IDE가 자동으로 설치됨)를 이용해서 아두이노와 동일하게 프로그래밍하고 업로드하여 실행할 수도 있다. 

XDK에서는 다음 동영상과 같이 실행할 수 있다. 









'인텔 에디슨' 카테고리의 다른 글

mraa 라이브러리 설치하기  (0) 2015.05.02
Posted by J1Lee
,

QAV250 프롭가드

항공우주 2015. 5. 1. 15:15

250급 기체들은 견적이 거의 프롭 수준이겠지만 무견적 기체를 만들어 볼까 하고 프롭 가드를 설치해보았어요. 

배송된 박스를 열어보니 역시 기대를 저버리지 않는 포장이... 


매뉴얼 따위는 없어도 워낙 직관적인 거라... 


모터 아래에 설치되게 되는데 당연히 프롭가드 두께(1.5mm)가 있으니 그 정도 더 긴 볼트가 필요합니다. 7.5mm 규격은 없으므로 M3x8로 체결했어요. 

프롭 세이브하는 것도 있겠지만 웬지 조금이나마 더 안전할 것 같은 느낌이랄까???

'항공우주' 카테고리의 다른 글

CC3D setting  (0) 2015.04.24
Q900 first flight  (1) 2015.04.24
Ornithopter  (0) 2015.04.05
NAZE32 setting - CleanFlight  (0) 2015.04.03
NAZE32 세팅  (0) 2015.04.03
Posted by J1Lee
,

CC3D setting

항공우주 2015. 4. 24. 18:28


CC3D 세팅 중 ESC 보정방법 부분입니다. 




OpenPilot 변속기 보정 절차

 

비행제어기에서 보내는 전체 쓰로틀 범위의 인식을 위해서 변속기들의 end point를 보정해야합니다. 이번 과정에서는 기체에 외부 전원을 입력해야하므로 반드시 모든 모터에서 프로펠러를 제거하세요 꼭!!!!.

 

보정 절차는 다음과 같습니다.

 

1. 아래의 안전과 관련한 질문들을 확인하세요. (부분 체크할 것)

2. 모든 체크박스가 체크되면 Start 버튼을 누릅니다.

3. 배터리를 기체에 연결합니다.

4. 변속기에서 삐 소리가 날때까지 기다립니다.

5. Stop 버튼을 누르세요. (~ 소리가 나면 바로 stop 버튼을 누르세요)

6. 변속기의 확인음을 확인하고(변속기마다 약간씩 다르나 대체적으로 삐~ 소리입니다.)

7. 배터리를 분리하세요

동영상으로 세팅방법을 확인합니다. 

firmware는 이미 올라가 있다고 보고 생략했습니다. 










'항공우주' 카테고리의 다른 글

QAV250 프롭가드  (0) 2015.05.01
Q900 first flight  (1) 2015.04.24
Ornithopter  (0) 2015.04.05
NAZE32 setting - CleanFlight  (0) 2015.04.03
NAZE32 세팅  (0) 2015.04.03
Posted by J1Lee
,

Q900 first flight

항공우주 2015. 4. 24. 10:41








'항공우주' 카테고리의 다른 글

QAV250 프롭가드  (0) 2015.05.01
CC3D setting  (0) 2015.04.24
Ornithopter  (0) 2015.04.05
NAZE32 setting - CleanFlight  (0) 2015.04.03
NAZE32 세팅  (0) 2015.04.03
Posted by J1Lee
,

모터 구동

전기전자 2015. 4. 6. 20:34

아두이노와 모터 드라이버를 이용한 모터구동


본 포스팅에서는 DC 모터, Servo 모터 및 BLDC모터를 아두이노와 모터드라이버를 이용하여 구동하는 예제를 다루도록 하겠습니다. 

우선 DC 모터는 L293B IC를 이용하여 구동해보도록 할게요. 

구성은 다음 그림과 같이 하면 되겠어요. 

필요한 준비물은 

아두이노 1ea

모터 1ea 

L293B IC

빵판

점퍼와이어



EN

IN1

IN2

기능

HIGH

LOW

HIGH

시계방향회전

HIGH

HIGH

LOW

반시계방향회전

HIGH

LOW

LOW

정지

HIGH

HIGH

HIGH

정지

LOW

무시

무시

정지

소스코드는 다음과 같아요.

const int in1Pin=5;

const int in2Pin=4;

void setup(){

  Serial.begin(9600);

  pinMode(in1Pin, OUTPUT);

  pinMode(in2Pin, OUTPUT);

  Serial.println("+ - to direction, any other key stops motor");

}

void loop(){

  if(Serial.available()){

    char ch =Serial.read();

    if (ch =='+')

    {

      Serial.println("CW");

      digitalWrite(in1Pin, LOW);

      digitalWrite(in2Pin, HIGH);

    }

    else if (ch =='-')

    {Serial.println("CCW");

         digitalWrite(in1Pin, HIGH);

      digitalWrite(in2Pin, LOW);

    }

    else

    {

      Serial.print("stop motor");

           digitalWrite(in1Pin, LOW);

      digitalWrite(in2Pin, LOW);

    }

  }

}

위 내용을 동영상으로 확인해 보아요~

좀 더 비싼 모터 드라이버... 

http://blog.naver.com/benzydad/220148285604

좀 더 더 비싼 모터 드라이버



서보모터 구동

서보 모터의 구조는 다음과 같이 DC 모터, 가변저항, 제어회로 및 기어박스로 구성되어 있습니다. 

<그림 1> 서보모터

첫번째 실험은 서보를 0~180도 구간으로 왕복운동을 시키는 거에요. 

하드웨어는 다음과 같이 설치하구요. 서보의 신호선(노란색 선)은 PWM입력을 받으므로 ~ 표시가 된 digital pin에 연결해야 합니다. 여기서는 ~9번에 연결했어요. 

아두이노 소스 코드는 다음과 같습니다. 

#include <Servo.h>   // Servo.h 라이브러리 불러옴

Servo myservo;         // myservo라는 이름으로 servo 지정

int angle=0;             // angle 이라는 정수를 0으로 초기화 함

void setup(){

  myservo.attach(9);   // 서보를 9번 핀에 연결함

}

void loop(){

  for(angle=0; angle<180; angle +=1)  // 0~180까지 1도씩 증가

  {

    myservo.write(angle);               // 계산된 각도를 servo에 입력

    delay(20);

  }

  for(angle=180; angle>=1; angle-=1)   //180~1까지 1도씩 감소

  {myservo.write(angle);                // 계산된 각도를 servo에 입력   

  delay(20);

  }

}



이번에는 가변 저항의 움직임과 연동해서 움직이는 예제를 볼게요. 

위의 하드웨어에 포텐셔미터 하나를 추가했고 중간핀을 아날로그 0번 핀에 연결했어요. 


#include <Servo.h>    // Servo.h 라이브러리 포함

 
Servo
myservo;         
   
int potpin = 0; // potpin(포텐셔미터 핀)을 아날로그 0으로 지정함

int val;     // val 이라는 정수를 선언함
 
void 
setup() 

 
myservo.attach(9);   

 
void 
loop() 

 
val = analogRead(potpin);  /* 포텐셔미터의 값을 아날로그 0번으로 읽어들여 val이라는 정수로 저장함*/
 
val = map(val, 0, 1023, 0, 179);    /*0~1023의 포텐셔미터 값을 0~179로 매핑함 */
 
myservo.write(val);                
  delay(15);                          

 }

여기서 0~1023의 범위가 어떻게 나왔는지 궁굼하죠?

아두이노에서 아날로그값 읽기는 ADC를 통해서 구현합니다. 아두이노에 내장된 ADC의 분해능은 2^10 = 1024 단계입니다. 그래서 0~1023이 되는거죠. 



<그림 1>에서 본 PWM파형을 실제로 보면 다음과 같아요. 


PWM에 대한 이야기는 다른 포스팅에서 좀 더 자세하게 다루어 보도록 할게요. 


BLDC모터는 DC모터와 다르게 브러쉬가 없어요. 그래서 BrushLess DC 모터인거죠. DC모터보다 수명이 길다는 장점이 있어요. 

또 한가지는 DC모터는 2가닥의 선을 가지고 있는데 BLDC는 3가닥의 선을 가지고 있어요. 


이 모터는 좀 복잡한 드라이버를 사용합니다. 


L293B 같은 드라이버는 저항, 다이오드, 트랜지스터로 이루어진 것과 달리 위의 드라이버는 마이크로프로세서를 포함하고 있어요. 위 사진에서 다리 많이 달린 까만 것이 마이크로프로세서인데 많은 드라이버들이 ATMega8과 같은 8bit 마이크로프로세서를 사용합니다. 

그만큼 제어가 복잡하다는 이야기겠죠?

좌측의 굵은 빨간선과 검정선은 주 전원선으로 이 ESC는 2S~4S Li-Po 입력(5.4~14.8VDC)을 받네요. 

그 아래의 주,적,갈색 3선은 RC 수신기와 연결하는 선인데 적, 갈색은 ESC에서 생성한 5VDC를 수신기로 보내주는 역할을 하고 오렌지색 선은 수신기에서 생성한 PWM신호를 ESC로 보내는 선입니다. 

우측의 검정색 3선은 BLDC 모터의 3선과 연결되는 선으로 구분없이 아무렇게나 연결하고 만약 모터가 원하는 방향과 반대로 돈다면 3선중 아무 2선을 분리해서 바꾸어 연결하면 방향이 바뀐답니다. 

'전기전자' 카테고리의 다른 글

트랜지스터 NPN? PNP?  (0) 2015.04.06
가변 저항  (0) 2015.03.21
저항기 - 전압배분  (0) 2015.03.21
LED 태우기  (0) 2015.03.21
오옴의 법칙- 직렬회로  (0) 2015.03.17
Posted by J1Lee
,

트랜지스터는 

규소나 저마늄(게르마늄)으로 만들어진 반도체를 세 겹으로 접합하여 만든 전자회로 구성요소이며 전류나 전압흐름을 조절하여 증폭, 스위치 역할을 한다. 가볍고 소비전력이 적어 진공관을 대체하여 대부분의 전자회로에 사용되며 이를 고밀도로 집적한 집적회로가 있다. 접합형 트랜지스터와 전기장 효과 트랜지스터로 구분한다.

[네이버 지식백과] 트랜지스터 [transistor] (두산백과)


우리가 자주 사용하는 트랜지스터는 NPN과 PNP형으로 구분이 되는데 생긴것이 거의 똑같아서 육안으로 구분이 어렵습니다. 사진에는 잘 안보이는데 평평한 면에 씌여져 있는 것을 보고 datasheet를 찾아서 확인하는 방법도 있습니다만 이번 포스팅에서는 멀티미터를 이용해서 체크하는 방법을 알아보도록 하죠. 



별로 어렵진 않습니다. 다이오드 심벌이 있는 멀티미터는 모두 측정이 가능하구요. 물론 저항값을 이용해서 하는 방법도 있지만 이번에는 다이오드 기능을 이용해서 해보도록 하겠습니다. 


멀티미터의 다이오드 측정 기능 이야기가 나온김에 Light Emitting Diode(LED)의 극성 측정에도 사용할 수 있답니다. LED도 다이오드의 일종이에요. 


트랜지스터는 위에서 증폭이나 스위치의 역할을 한다고 했죠? 스위치로 쓰이는 예를 볼게요. 



'전기전자' 카테고리의 다른 글

모터 구동  (0) 2015.04.06
가변 저항  (0) 2015.03.21
저항기 - 전압배분  (0) 2015.03.21
LED 태우기  (0) 2015.03.21
오옴의 법칙- 직렬회로  (0) 2015.03.17
Posted by J1Lee
,

Ornithopter

항공우주 2015. 4. 5. 13:12

로봇새

레오나르도다빈치의 스케치 이후 많은 사람들이 Ornithopter에 대한 연구를 하였으나 큰 성과를 거두지 못하고 있죠. 특히 사람이 탈 수 있는 유인 Ornithopter는 2006년 캐나다에서 약 14초 비행한 것이 최초의 비행으로 알려져 있을 정도로 쉽지 않은 과제인것 같아요. 


그에 비해 소형 로봇새들은 완구류로 나온 것들이 상당히 많이 존재하고 심지어 고무동력 Ornithopter도 집에서 손쉽게 만들 수 있답니다. 

호기심에 RC 로봇새를 하나 구매해 봤어요. 

뭐 값싼 중국산이라 퀄리티는 쫌 별로인듯 해요. 

그래도 근래 조립했던 쿼드콥터들과는 달리 무려 매뉴얼이 들어있더군요. 그것도 A3 한장으로... 근데 영어 공부좀 하던지 영어 잘하는 사람들한테 자문을 좀 구하던지 해야지 매뉴얼이 좀 어설펐어요. 

대부분 다 조립이 되어 있구요. 박스 뜯어보면 

본체가 이렇게 조립이 되어 있어요. 

본체 좌측에는 비행제어기가 달려있어요. 약간의 안정화와 조종을 위한 믹싱같은것들이 되어 있는 마이크로컨트롤러가 들어있어요.

본체 우측에는 BLDC모터와 드라이버가 달려있구요. 3단으로 구성된 기어가 감속기로 쓰이고 있습니다. 제일 큰 기어 윗쪽에는 주 날개가 달릴 힌지가 구성되어 있군요. 

뒷부분의 서보들은 롤, 피치, 요를 제어하기 위한 것들입니다. 

카울은 이런식으로 씌워지구요. 클립같은걸로 고정하게 되어 있어요. 


주 날개는 아래 사진과 같이 볼트를 관통해서 연결하고 기어에 연결된 connecting rod(금색)가 약간 거리를 두고 연결이 되어 날개짓을 할 수 있도록 되어 있습니다. 볼트로 연결되는 부분이 좀 구조적으로 아쉬워 보이지만 400g대의 무게로 만들려면 달리 방법이 없어보이긴 하네요. 

주 날개 뒷부분입니다. T자 형태로 되어있는 부분에 주 날개를 지지하는 지지대가 연결되고 원활한 회전운동을 할 수 있도록 볼링크 구조로 되어 있네요. 아래 사진에서는 아직 서보가 연결이 되지 않았으나 우측의 볼링크 뒷부분에 에일러론 서보가 연결되어 T자 구조가 좌우로 틸트가되어 롤 운동을 유도할 수 있도록 되어 있습니다. 

구조상 진동이 심하므로 모든 볼트, 너트류에 아래와 같은 락타이트를 시공합니다.

수신기 설치

러더 서보가 엘리베이터 서보에 연결되어 있네요. 


조종면의 구동은 다음 동영상을 참고하세요.

 


모든 조인트는 원활한 회전 운동을 위해 윤활처리를 해줍니다.

수신기에 비행제어기에서 나온 선들을 차례로 연결해 주고

배터리는 11.1V 1000mAh Li-Po를 달아봅니다. 

이렇게 설치 했구요. 

전체 무게(카울 제외)는 약 443g입니다. 



'항공우주' 카테고리의 다른 글

CC3D setting  (0) 2015.04.24
Q900 first flight  (1) 2015.04.24
NAZE32 setting - CleanFlight  (0) 2015.04.03
NAZE32 세팅  (0) 2015.04.03
ORCA 280 쿼드콥터 전자장비 설치하기  (0) 2015.04.03
Posted by J1Lee
,

'항공우주' 카테고리의 다른 글

Q900 first flight  (1) 2015.04.24
Ornithopter  (0) 2015.04.05
NAZE32 세팅  (0) 2015.04.03
ORCA 280 쿼드콥터 전자장비 설치하기  (0) 2015.04.03
ORCA 280 조립기  (0) 2015.04.03
Posted by J1Lee
,