Naver
[simonk 30a] :: 문의 주셔도 됩니다.
[take off 코드 드론] : 요청하시면 도와드리겠습니다.
구매 및 (졸작)제작의뢰 원하시는분은 댓글이나 email주세요
부품이나 기타 문의도 환영합니다.
졸작의뢰 (▶LINK)
▼Controlling of a Single Drone
pitch(Φ) : Rotation around X-axis
roll(θ) : Rotation around Y-axis
yaw(ψ) : Rotation around Z-axis
Due to these four rotors,
the QuadRotor is known as an underactuated system because the QuadRotor has six degrees of freedom (=6-DOF).
Therefore, due to four outputs(=Actuator) and six inputs (=6-DOF),
the QuadRotor cannot give an acceleration at any time in a certain direction
without changing the current dynamic behavior in another degree of freedom,
as explained in [1].
Conventional helicopters [3] fly due to modifying the lift-force vector
in both magnitude and direction.
(Conventional helicopter : 전형적인 헬리콥터)
This is done by varying rotation speed, angle of blade attack (pitch angle)
and cyclic pitch angle
(single rotor helicopter with tail-rotor to oppose the induced moment).
For the quadrotor,
the pitch angle is fixed which means the only way to introduce lift-force besides varying rotor speed is by the possible deformation of the blades due to the air drag.
Drone의 Brushless Motor가 Floppy Disk Drive의 원리와 같다.
You need a Brushless motor, Potentiometer, Wires, Battery, Arduino and a Compiler.
Control Brushless Motor using Arduino.txt
▼ArduCopter Software Download Link
https://code.google.com/archive/p/arducopter/downloads
▼Firmware Download Link
http://firmware.ardupilot.org/
▼Mission Planner(90MB)
http://ardupilot.org/copter/docs/common-install-mission-planner.html
http://www.arducopter.co.uk/all-arducopter-guides/2connectingeverything-for-arducopter
http://download.ardupilot.org/epub/docs/traditional-helicopter-connecting-apm.html
▼일일히 Tester로 찍어보고 확인한 정보들
위쪽 (-)핀 라인 전체가 하나의 GND (단, 위쪽에서 13,14번째 핀은 제외)
위쪽(+)핀 라인 전체가 하나의 VCC, (단, 위쪽에서 13,14번째 핀은 제외) (AVcc=Vcc=5V)
(-)라인의 13번째 핀 : PB3(MISO)
(-)라인의 14번째 핀 : Vcc
(+)라인의 13번째 핀 : PB1(SCK)
(+)라인의 14번째 핀 : PB2(MOSI)
S1 : PF0 4
S2 : PF1 5
S3 : PF2
S4 : PF3
S5 : PF4
S6 : PF5
S7 : PF6 10
S8 : PF7
S9 : PK0 12
https://robu.in/product/apm-2-8-multicopter-flight-controller-2-5-2-6-upgraded-built-compass/
To use the built-in compass simply connect the jumper as shown below.
If the compass jumper is removed then the APM board will use the external compass
which is best for multirotor with a GPS/compass module mounted externally
http://www.instructables.com/id/APM-Quadcopter-Setup/
상단의 핀은 A0~A11까지 있다.
http://www.empirerc.com/motorwiring.htm
▲예를들어 11.1V 2200mAh 베터리를 사용할때
1시간에 약 2A를 소모한다.
그리고 ESC 스팩이 30A라면, Controller에서 PWM출력이 100%일때 30A를 소모한다는 뜻이다.
그럼 베터리 소모량이 급격히 줄어드는데
1시간 |
2A |
30분 |
4A |
15분 |
8A |
7.5분 |
16A |
3.75 |
32A |
최대 추진력을 쓸때 최대 비행시간이 약 3분이다.
여기서 드로무게로 인한 비행시간이 좀더 감소하게된다.
하지만 항상 최대 추진력으로 드론을 조종하는건 아니므로 조종하는 사람에 따라 좀더 길 수 있다.
드론 업체 관계자에 따르면 약 15분간 비행이 가능하다고 한다.
★
https://www.engineersgarage.com/contribution/controlling-bldc-motor-esc
ESC와 BLDC Motor간의 Connection
A to Yellow
B to Black
C to Red
the output section with 3 pins A, B and C. These pins correspond to the 3 pins of the BLDC motor. The motor in use comes with three wires with in colours: yellow, black and red. You need to connect A to yellow, B to black and C to the red one. In case you find your motor running in opposite direction of what you want, just interchange yellow and red wires.
리튬 폴리머 베터리가 쓰이며, 테스트시 최소11~12V를 인가해줘야 BLDC Motor의 회전 확인가능
I have used a Lithium Polymer battery (11.1V)
The ESc will be pulling from a higher voltage and lower current
ESC는 높은전압으로 끌어올려줘야 큰 양력을 발생시키고, 낮은 전류를 내보내서 드론을 오랫동안 떠있도록 돕는다. (▶LINK)
▼ESC 회로를 설계하고자하는 사람들을 위한 회로자료
ESC :: Elecronic Speed Controller
▲MOSFET의 Gate쪽에 Timer를 이용하여 Pulse를 넣어주면 Speed제어가 된다.
참고로 그림상의 MOSFET은 N-Channel이다.
▲ NE556은 NE555의 Dual Channel이다.
NIMH:5-12S LIPO:2-4S
3.5mm Female Connector
5V2A 출력
Cont Current: 30A
Burst Current: 35A
EMAX User Instruction for Simonk Series ESC.pdf
(★LINK)
If one or multiple motors are spinning the wrong direction, the quad will flip over at take off.
가변저항에 따른 Rotor Test Code (드론을 만들기전 Rotor가 정상인지테스트해볼 필요가 있다.)
http://mfurkanbahat.blogspot.com/2015/11/brushless-motor-control-with-arduino.html
const int potpin = A0;
const int escpin = 9;
int val;
void setup(){
pinMode(potpin, INPUT);
pinMode(escpin, OUTPUT);
}
void loop(){
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
analogWrite(escpin,val);
delay(15);
}
http://blog.owenson.me/build-your-own-quadcopter-flight-controller/
Introduction
The first shortcut is your choice of hardware.
I chose to build my own from scratch at a stage
when I knew nothing of RC or how to fly – this was a mistake.
So do yourself a favour and buy the ArduPilot 2.5 control board, wire up your copter, learn RC, and how to fly, and then come back here.
The board is essentially just an Arduino
with some sensors connected which we will program in this article with our own software
– by using it you have everything connected you’ll need to get flying
– you’ll also be able to play with the excellent ArduCopter software.
The ArduPilot project is sponsored by 3D Robotics
– this means that they build the hardware and sell it for a small profit, and then feed some of this profit back to the community.
The hardware and software is entirely open source
and anyone is free to copy it.
You can buy the original from them direct, or identical copies
from Hobbyking (named HKPilot) and RCTimer (named ArduFlyer).
In this article,
I am going to assume you have the ArduPilot hardware
which is essentially an Arduino with attached sensors.
If you choose to ignore my advice and build your own hardware,
or use the arduino board,
then you’ll need to replace the lower level code (the HAL library).
I’m also going to assume you have a quadcopter in X configuration
– although not a lot of work is required (just different motor mixing) to switch between +/X and octa/hexacopters,
they won’t be given it any substantial attention in the article.
난 또한 gonna 가정할것이다. 네가 갖고있다고 쿼드콥터를 in X 구성에서
- 비록 not a 많은 of 작업이 요구되지않더라고 (just 다른 모터 믹싱)
to 스위치하기위해 between +/X and octa/hexacopters,
Ideally, you’ve already flown your quad with the ArduCopter code loaded and hence you should have your motors connected as follows and spinning in the direction shown.
https://www.evansville.edu/majors/eecs/downloads/projects2016/CameronRobertsReport.pdf
Propellor Configuration
I’m also going to assume you have some experience with the arduino – or at least with C/C++.
The arduino libraries are not particularly brilliant or well suited,
so we’ll be using some of the ArduPilot libraries which are superior. However, we’ll be keeping their use to a minimum in favour of the DIY approach (which is why you’re here after all).
The first and main library that we’re going to use is the ArduPilot Hardware Abstraction Layer (HAL) library.
This library tries to hide some of the low level details
about how you read and write to pins and some other things
– the advantage is that the software can then be ported to new hardware by only changing the hardware abstraction layer.
- 이점은 that 이다. tha 소프트웨어가 can be 포트될수있다. to 새 하드웨어에 by only 바꿈으로써 the HAL을
In the case of ArduPilot, there are two hardware platforms,
APM and PX4,
each of which have their own HAL library
which allows the ArduPilot code to remain the same across both.
APM and PX4 각각 갖고있다. 그들 소유의 HAL 라이브러리를
which 허락하는 the ArduPilot 코드를 to 유지하는데 같게 서로간에.
If you later decide to run your code on the Raspberry Pi, you’ll only need to change the HAL.
The HAL library is made up from several components:
●RCInput – for reading the RC Radio.
●RCOutput – for controlling the motors and other outputs.
●Scheduler – for running particular tasks at regular time intervals.
●Console – essentially provides access to the serial port.
●I2C, SPI – bus drivers (small circuit board networks for connecting to sensors)
●GPIO – Generial Purpose Input/Output – allows raw access to the arduino pins, but in our case, mainly the LEDs
92MB짜리 파일....1시간 소요됨
WHAT TO DOWNLOAD:
You’ll need to download the ArduPilot version of the Arduino IDE.
Also grab the libraries which should be placed in your sketches folder.
Also make sure you select your board type from the Arduino menu like so:
Our flight controller is going to have to read in the radio inputs
(pilot commands), measure our current attitude (yaw/pitch/roll), change the motor speeds to orientate the quad in the desired way.
바꿔라. the 모터 스피드를 to 향하게하기위해 the quad를 in the 원하는방향으로.
So let’s start out by reading the radio.
Reading the Radio Inputs
RC Radios have several outputs, one for each channel/stick/switch/knob.
Each radio output transmits a pulse at 50Hz with the width of the pulse determining where the stick is on the RC transmitter.
각 radio 출력은 전송한다. a pluse를 at 50Hz로 with the 펄스복과함께
결정하며 where the stick이 있는지 RC 송신부에.
Typically, the pulse is between 1000us and 2000us long with a 18000us to 19000us pause before the next – so a throttle of 0 would produce a pulse of 1000us and full throttle would be 2000us. Sadly, most radios are not this precise so we normally have to measure the min/max pulse widths for each stick (which we’ll do in a minute).
.
.
.
Controlling the motors
Motors are controlled through the Electronic Speed Controllers (ESCs). They work on pulse widths between approximately 1000us and 2000us like the RC radio receiver – sending a pulse of 1000us typically means off, and a pulse of 2000us means fully on. The ESCs expect to receive the pulse at 50Hz normally, but most off the shelf ESCs average the last 5-10 values and then send the average to the motors. Whilst this can work on a quad, it behaves much better if we minimise the effect of this averaging filter to give near instantaneous response. Hence, the APM HAL library sends the pulse at 490Hz, meaning that the 5-10 pulses which are averaged occur very quickly largely negating the filter’s effect.
In setup(), let’s enable the outputs:
hal.rcout->set_freq(0xF, 490); hal.rcout->enable_mask(0xFF);
After your includes, let’s define a mapping of output number to motor name – this mapping is the same as the ArduCopter uses but the numbering starts from zero rather than one.
#define MOTOR_FL 2 // Front left #define MOTOR_FR // Front right #define MOTOR_BL 1 // back left #define MOTOR_BR 3 // back right
In your loop, after reading the radio inputs, let’s send the radio throttle straight to one of the motors:
hal.rcout->write(MOTOR_FR, rcthr);
You can now program your quad and try it, WITHOUT propellors. Slowly raise the throttle and the front right motor should spin up. By repeating the last line for the remaining three motors, all your motors would spin up although the quad will just crash if you have propellors on because we have to do stablisation – slight differences between the motors, props, ESCs, etc mean that slightly unequal force is applied at each motor so it’ll never remain level.
** Comment out the write line before proceeding for safety reasons **
450급 (mm단위, 모터축 기준으로 대각선으로 이웃한 모터축간의 길이를 의미함)
500~550급
600~680급
안녕하세요 .
아두이노 작품제작 관련 의뢰를 받아보고 싶어서 연락 드렸습니다.
작품을 쿼트 콥터 드론에다가 LED + 부저를 작동 시켜서 마차 경찰차 처럼 구동 되는 원리를 만드려고 하는데요.
지금 450급 드론 몸체, IPEAKA 40A esc 4개,
gps NEO -7M,
DEV -09873 [FTDI],
FC보드 CC3D (비행제어장치),
Zippy 배터리,
Brushless 모터 [D2826] 4개 (1400KV),
GR 16L 수신기(조종기),
Arduino UNO R3
esp 8266 wifi esp - 01s
요렇게 가지고 있습니다.
1. 드론이 떠서 경찰차 처럼 조종기로 조종을 하는것
2. 와이파이 모듈은 ip 수신을 받고 싶어서 cc3d에 아두이노 우노를 연결해서 그 우노에서 와이파이 신호를 받고 싶어서 입니다.
대략 견적이 어느 정도 나오는 가요?
▶LINK 로 와서 댓글로 의뢰해주세요
Brushless Motor에서 KV는 Konstant Voltage의 약자이다.
Konstant는 영어 Constant의 독일어식 표현이다.
KV는 1V당 rpm을 의미한다. (RPM/Volt)
예를들어 1000KV의 Brushless Motor에 5V를 인가하면 1000*5 = 5000rpm이 된다.
인가한 전압 크기에 따라 rpm이 커진다.
▼1000KV BLDC Motor Spec.
추력 :: 1.2kg (4개 사용시 약 4.8kg을 견딘다.)
https://fishpepper.de/2017/10/17/tutorial-how-to-measure-the-kv-of-a-brushless-motor/
▲BLDC Motor의 KV측정법 (Oscilloscope 사용)
Connect the ground and signal clamp of your scope to a random pair out of the three phases of your motor.
3개의 Phases중 랜덤으로 두개를 고르고, 한쪽을 GND에 다른쪽을 signal clamp(=Probe)에 연결한다.
Do not connect anything else, especially do not leave an ESC connected.
Now take a drill press or an electric screwdriver and attach it to your motor and let it spin at the maximum speed.
아무것도 연결하지말고 (특히 ESC도 연결하지말것),
스핀시킨다. 최대 스피드로.
위 SineWave가 뵈이면 ScreenShot을 찍는다.
The first step will be to calculate the rpm of your drill by measuring the period of the sine wave. In my example you can see a period of 9.7ms which equals
드릴의 RPM을 측정한다.
Freq = 1/T 공식에 따른다.
Mission Planner설치후 뜨는 화면
Altitude Angel을 가입해야한다.
우선 Fist Name, Family Name을 지정후 Email을 적어준다.
그리고 Email에 있는 PW설정 링크를 눌러준다.
그리고 다시 Misson Planner를 실행해주면 First Run이라는 메세지가 보인다.
Yes
Select you Vehicle to Begin에서 원하는 옵션을 선택후 Next버튼을 클릭.
여기선 Multi-Rotor, =Drone을 택한다.
각자 갖고있는 Frame Type이 다르므로 여기선 선택에 맞기겠다.
그리고 Next
Device Manager(=장치관리자)에서 연결된 Port를 확인후 COM단자를 setting한다.
그리고 Hub없이 가급적 직접 연결하도록 한다.
잠깐 위 메세지가 뜨지만 개의치 말고 OK를 누르고 넘어간다.
아까 선택했는데 또 선택합니다. Next
Next를 누르고 드론을 이미지에서 시키는대로 상,우,좌,하,뒤집기를 하며 KeyBoard의 Any key를 눌러준다.
다 끝났으면 다시 Next
나침반 보정할 차례이다.
라이브교정 버튼을 누르면 뜨는 Pop-Up창에서 OK를 눌러준다.
'D > 드론 자료' 카테고리의 다른 글
아두이노 드론키트 (Daduino) 코드 (8) | 2017.06.07 |
---|