Compare commits
163 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fec4859cfe | ||
|
|
63ecc3b713 | ||
|
|
d3a08c60d7 | ||
|
|
322eb1e255 | ||
|
|
22d4f3c3e7 | ||
|
|
008750b1d9 | ||
|
|
506767f32f | ||
|
|
aaa673de92 | ||
|
|
43237d8ff4 | ||
|
|
9681fc9a87 | ||
|
|
76c3e96f76 | ||
|
|
1e66afa6a4 | ||
|
|
41c59e8e49 | ||
|
|
225e3d7936 | ||
|
|
8cdb131a19 | ||
|
|
c9042588f0 | ||
|
|
342eaec49a | ||
|
|
77b3d28e3b | ||
|
|
357b38b5e7 | ||
|
|
a99a1c7540 | ||
|
|
6742ba332a | ||
|
|
c5916fea7c | ||
|
|
7a4958f8e9 | ||
|
|
b71a96faee | ||
|
|
24e79f0169 | ||
|
|
76e887407a | ||
|
|
0d0c8e54f4 | ||
|
|
06a01f7e32 | ||
|
|
f564d20c5b | ||
|
|
85afded6b4 | ||
|
|
7e84853c37 | ||
|
|
c3c324158f | ||
|
|
1e2fd40c05 | ||
|
|
6a7f78a218 | ||
|
|
0b637e56d7 | ||
|
|
63f44a5a3f | ||
|
|
83ce14e31b | ||
|
|
8162357ce6 | ||
|
|
ba0e9cf9c5 | ||
|
|
8d1072d97d | ||
|
|
ffd4fdf2dc | ||
|
|
d279f04a1f | ||
|
|
77e8c858a0 | ||
|
|
f6edf15011 | ||
|
|
b50c34b19c | ||
|
|
874f206e2a | ||
|
|
fd262fdb6a | ||
|
|
2cb17985d4 | ||
|
|
2daa6f108a | ||
|
|
2e0d92c0d5 | ||
|
|
1a0d61af7c | ||
|
|
eb9fc6140b | ||
|
|
b0d72030fa | ||
|
|
db27d422ae | ||
|
|
d6ec597fe2 | ||
|
|
0fe319f430 | ||
|
|
2616b49e82 | ||
|
|
c2fd26db56 | ||
|
|
71bd59fe3d | ||
|
|
5b84fe63dd | ||
|
|
40782063c4 | ||
|
|
580eb2400c | ||
|
|
4666e443cb | ||
|
|
d52c1701e4 | ||
|
|
4a543c75f7 | ||
|
|
0b15f4ffd5 | ||
|
|
0f6e24d07f | ||
|
|
7110ef1420 | ||
|
|
a56cef65d5 | ||
|
|
f58be1ff6f | ||
|
|
b1a788864c | ||
|
|
fe468d911b | ||
|
|
ef8e1c0478 | ||
|
|
710c4fb33e | ||
|
|
3ef8656bcd | ||
|
|
251e15f503 | ||
|
|
eb2f9d9c2b | ||
|
|
dfcd3ea693 | ||
|
|
7260128dfd | ||
|
|
d4e783c96f | ||
|
|
c57a342053 | ||
|
|
9ed9af2d04 | ||
|
|
295b9c98d1 | ||
|
|
8f4de0e08f | ||
|
|
8f53301b79 | ||
|
|
6372ef8c22 | ||
|
|
a91f9e5a6b | ||
|
|
6b74f75616 | ||
|
|
9cd9babb83 | ||
|
|
380c14da56 | ||
|
|
32c1c18af2 | ||
|
|
b7077339a1 | ||
|
|
52fd505ffc | ||
|
|
b911b7a3dd | ||
|
|
9b38d5135e | ||
|
|
0346c48546 | ||
|
|
212c6ca5ac | ||
|
|
361c89d016 | ||
|
|
b0cbc67799 | ||
|
|
18cfb08054 | ||
|
|
66121e6d5d | ||
|
|
a4841de17e | ||
|
|
84aef97e37 | ||
|
|
f14e1976e7 | ||
|
|
8c9acc98fb | ||
|
|
bd36428bd4 | ||
|
|
7f7276e34a | ||
|
|
460761ef68 | ||
|
|
9fefc6428e | ||
|
|
ffe4423c10 | ||
|
|
3f02919cd9 | ||
|
|
3075badf33 | ||
|
|
29d66ee264 | ||
|
|
846ec3a430 | ||
|
|
a65a50ffd3 | ||
|
|
c945bb9d03 | ||
|
|
3dc9575c9e | ||
|
|
f901167009 | ||
|
|
8519a6c6a4 | ||
|
|
d8fc2c088f | ||
|
|
679cd37ec6 | ||
|
|
40be77f9c3 | ||
|
|
1a0d762c4e | ||
|
|
a7e0032225 | ||
|
|
0b9df02faa | ||
|
|
0dcf7d1520 | ||
|
|
b146057ca7 | ||
|
|
68a32e036e | ||
|
|
dba5b63230 | ||
|
|
26efccb110 | ||
|
|
e0516663aa | ||
|
|
d737d91bc2 | ||
|
|
1b10d59188 | ||
|
|
a9ca13c55d | ||
|
|
57fbe9cc09 | ||
|
|
061b225690 | ||
|
|
27189d559a | ||
|
|
60b22d0df8 | ||
|
|
0072bf8330 | ||
|
|
f36b4546a9 | ||
|
|
c0a97fd263 | ||
|
|
46932e4adf | ||
|
|
0c2675ec28 | ||
|
|
f4e5d7978a | ||
|
|
cc7ba566c5 | ||
|
|
d47e3f6bbf | ||
|
|
2335c74b55 | ||
|
|
ca4bab7bf8 | ||
|
|
d4d84ea422 | ||
|
|
f985e07be4 | ||
|
|
bab62cf374 | ||
|
|
4eb988c34d | ||
|
|
3006d7e32e | ||
|
|
3e9b7426bf | ||
|
|
e8f93782e0 | ||
|
|
910b24c460 | ||
|
|
5dc580c76b | ||
|
|
c0705222f5 | ||
|
|
b51e8add55 | ||
|
|
86211df4b3 | ||
|
|
5ef5c6b641 | ||
|
|
5b96253146 | ||
|
|
54111504ac |
13
.editorconfig
Normal file
@@ -0,0 +1,13 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
|
||||
[*.{py,cpp,h,swift,launch}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.{js,html}]
|
||||
indent_style = tab
|
||||
@@ -4,16 +4,15 @@
|
||||
|
||||
CLEVER is an educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixhawk/Pixracer autopilot running PX4 firmware, Raspberry Pi 3 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
|
||||
|
||||
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: [automated pizza delivery](https://www.youtube.com/watch?v=hmkAoZOtF58) in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, [autonomous quadcopter with charging station](https://www.youtube.com/watch?v=RjX6nUqw1mI) for site monitoring and security, winning drones on [Robokross-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU) and [Robokross-2017](https://youtu.be/AQnd2CRczbQ) competitions and many others.
|
||||
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: [automated pizza delivery](https://www.youtube.com/watch?v=hmkAoZOtF58) in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, [autonomous quadcopter with charging station](https://www.youtube.com/watch?v=RjX6nUqw1mI) for site monitoring and security, winning drones on [Robocross-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU) and [Robocross-2017](https://youtu.be/AQnd2CRczbQ) competitions and many others.
|
||||
|
||||
**The main documentation in Russian is available on our Gitbook:**
|
||||
**https://copterexpress.gitbooks.io/clever/content/**
|
||||
**The main documentation in Russian is available [on our Gitbook](https://clever.copterexpress.com/).**
|
||||
|
||||
Use it to learn how to assemble, configure, pilot and program autonomous CLEVER drone.
|
||||
|
||||
## Preconfigured RPi 3 image
|
||||
|
||||
Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available [here](https://copterexpress.gitbooks.io/clever/content/docs/microsd_images.html).
|
||||
**Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available [in the Releases section](https://github.com/CopterExpress/clever/releases).**
|
||||
|
||||
Image includes:
|
||||
|
||||
@@ -24,7 +23,7 @@ Image includes:
|
||||
* mavros
|
||||
* CLEVER software bundle for autonomous drone control
|
||||
|
||||
API description in Russian for autonomous flights is available [here](https://copterexpress.gitbooks.io/clever/simple_offboard.html).
|
||||
API description (in Russian) for autonomous flights is available [on GitBook](https://copterexpress.gitbooks.io/clever/simple_offboard.html).
|
||||
|
||||
## Manual installation
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0920;
|
||||
LastUpgradeCheck = 0920;
|
||||
LastUpgradeCheck = 0930;
|
||||
ORGANIZATIONNAME = "Copter Express";
|
||||
TargetAttributes = {
|
||||
7C51653C20139237004D1F4D = {
|
||||
@@ -294,6 +294,7 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
@@ -301,6 +302,7 @@
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
@@ -351,6 +353,7 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
@@ -358,6 +361,7 @@
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,95 +1,111 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "cleverrc40.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "clever60.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "clever58.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "clever87.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "clever80.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "clever120.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "cleverios180.png",
|
||||
"filename" : "clever120-1.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "cleverios180-1.png",
|
||||
"filename" : "clever180-1.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever20.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever40.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever29.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever58-1.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever40-1.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever80-1.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever76.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever152.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "clever167.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "clever1024.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
|
||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 659 B |
|
After Width: | Height: | Size: 867 B |
|
After Width: | Height: | Size: 867 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 867 B |
@@ -5,7 +5,7 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Clever RC</string>
|
||||
<string>CLEVER RC</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -19,7 +19,7 @@
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<string>3</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
|
||||
@@ -10,12 +10,13 @@ import UIKit
|
||||
import WebKit
|
||||
import SwiftSocket
|
||||
import NotificationBannerSwift
|
||||
import AudioToolbox.AudioServices
|
||||
|
||||
class ViewController: UIViewController, WKScriptMessageHandler {
|
||||
@IBOutlet weak var webView: WKWebView!
|
||||
let impactGenerator = UIImpactFeedbackGenerator(style: .medium)
|
||||
let notificationGenerator = UINotificationFeedbackGenerator()
|
||||
let udpSocket = UDPClient(address:"255.255.255.255", port: 35602)
|
||||
let udpSocket = UDPClient(address: "255.255.255.255", port: 35602)
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@@ -24,6 +25,7 @@ class ViewController: UIViewController, WKScriptMessageHandler {
|
||||
UIApplication.shared.isIdleTimerDisabled = true
|
||||
|
||||
// Setup webview event handlers
|
||||
webView.scrollView.bounces = false;
|
||||
webView.configuration.userContentController.add(self, name: "control")
|
||||
webView.configuration.userContentController.add(self, name: "controlStart")
|
||||
webView.configuration.userContentController.add(self, name: "lowBattery")
|
||||
@@ -56,7 +58,7 @@ class ViewController: UIViewController, WKScriptMessageHandler {
|
||||
} else if (message.name == "lowBattery") {
|
||||
// Got low battery notification
|
||||
print("Low battery notification")
|
||||
notificationGenerator.notificationOccurred(.warning)
|
||||
tapticNotify()
|
||||
} else if (message.name == "notification") {
|
||||
// Got notification message
|
||||
print(message)
|
||||
@@ -71,4 +73,22 @@ class ViewController: UIViewController, WKScriptMessageHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func tapticNotify() {
|
||||
if let feedbackSupportLevel = UIDevice.current.value(forKey: "_feedbackSupportLevel") as? Int {
|
||||
switch feedbackSupportLevel {
|
||||
case 2:
|
||||
// 2nd Generation Taptic Engine w/ Haptic Feedback (iPhone 7/7+)
|
||||
notificationGenerator.notificationOccurred(.warning)
|
||||
case 1:
|
||||
// 1st Generation Taptic Engine (iPhone 6S/6S+)
|
||||
let peek = SystemSoundID(1519)
|
||||
AudioServicesPlaySystemSound(peek)
|
||||
case 0:
|
||||
// No Taptic Engine
|
||||
break
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,10 @@ html, body {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
* {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.stick {
|
||||
border-radius: 50%;
|
||||
width: 5cm;
|
||||
|
||||
@@ -65,8 +65,8 @@ new ROSLIB.Topic({
|
||||
name: '/rosout_agg',
|
||||
messageType: 'rosgraph_msgs/Log'
|
||||
}).subscribe(function(message) {
|
||||
var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED'];
|
||||
if(message.level >= 4) {
|
||||
var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED', 'Clock skew detected', 'MANUAL CONTROL LOST'];
|
||||
if (message.level >= 4) {
|
||||
if (BLACKLIST.some(function(e) {
|
||||
return message.msg.indexOf(e) != -1;
|
||||
})) {
|
||||
|
||||
@@ -4,13 +4,16 @@
|
||||
"author": "Copter Express",
|
||||
"language": "ru",
|
||||
"root": "docs/",
|
||||
"plugins": ["youtube", "richquotes", "disqus", "versions"],
|
||||
"plugins": ["youtube", "richquotes", "versions", "yametrika"],
|
||||
"pluginsConfig": {
|
||||
"disqus": {
|
||||
"shortName": "coex-clever"
|
||||
},
|
||||
"versions": {
|
||||
"type": "tags"
|
||||
},
|
||||
"yametrika": {
|
||||
"id": 49359238
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<arg name="fcu_ip" default="127.0.0.1"/>
|
||||
<arg name="gcs_bridge" default="tcp"/>
|
||||
<arg name="viz" default="true"/>
|
||||
<arg name="respawn" default="false"/>
|
||||
<arg name="respawn" default="true"/>
|
||||
|
||||
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="3" output="screen">
|
||||
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="5" output="screen">
|
||||
<!-- UART connection -->
|
||||
<param name="fcu_url" value="/dev/ttyAMA0:921600" if="$(eval fcu_conn is None or fcu_conn == 'uart')"/>
|
||||
|
||||
@@ -17,9 +17,12 @@
|
||||
|
||||
<!-- gcs bridge -->
|
||||
<param name="gcs_url" value="tcp-l://0.0.0.0:5760" if="$(eval gcs_bridge == 'tcp')"/>
|
||||
<param name="gcs_url" value="udp://@192.168.11.14:14550" if="$(eval gcs_bridge == 'udp')"/> <!-- TODO: fix -->
|
||||
<param name="gcs_url" value="udp-b://192.168.11.1:14550@" if="$(eval gcs_bridge == 'udp-b')"/>
|
||||
<param name="gcs_url" value="udp://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp')"/>
|
||||
<param name="gcs_url" value="udp-b://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp-b')"/>
|
||||
<param name="gcs_url" value="udp-pb://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp-pb')"/>
|
||||
<param name="gcs_url" value="" if="$(eval not gcs_bridge)"/>
|
||||
<param name="gcs_quiet_mode" value="true"/>
|
||||
<param name="conn/timeout" value="10"/>
|
||||
|
||||
<!-- default px4 params -->
|
||||
<rosparam command="load" file="$(find mavros)/launch/px4_config.yaml"/>
|
||||
|
||||
@@ -188,7 +188,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
|
||||
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
|
||||
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
|
||||
position=setpoint,
|
||||
yaw=euler_from_orientation(current_nav_finish.pose.orientation)[2] - math.pi / 2,
|
||||
yaw=euler_from_orientation(current_nav_finish.pose.orientation, 'szyx')[2] - math.pi / 2,
|
||||
yaw_rate=req.yaw_rate)
|
||||
return position_pub, msg
|
||||
|
||||
@@ -207,7 +207,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
|
||||
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
|
||||
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
|
||||
position=pose_local.pose.position,
|
||||
yaw=euler_from_orientation(pose_local.pose.orientation)[2] - math.pi / 2,
|
||||
yaw=euler_from_orientation(pose_local.pose.orientation, 'szyx')[2] - math.pi / 2,
|
||||
yaw_rate=req.yaw_rate)
|
||||
return position_pub, msg
|
||||
|
||||
@@ -225,7 +225,7 @@ def get_publisher_and_message(req, stamp, continued=True, update_frame=True):
|
||||
PT.IGNORE_AFX + PT.IGNORE_AFY + PT.IGNORE_AFZ +
|
||||
(PT.IGNORE_YAW if yaw_rate_flag else PT.IGNORE_YAW_RATE),
|
||||
velocity=vector_local.vector,
|
||||
yaw=euler_from_orientation(pose_local.pose.orientation)[2] - math.pi / 2,
|
||||
yaw=euler_from_orientation(pose_local.pose.orientation, 'szyx')[2] - math.pi / 2,
|
||||
yaw_rate=req.yaw_rate)
|
||||
return position_pub, msg
|
||||
|
||||
@@ -348,6 +348,7 @@ def get_telemetry(req):
|
||||
'z': float('nan'),
|
||||
'lat': float('nan'),
|
||||
'lon': float('nan'),
|
||||
'alt': float('nan'),
|
||||
'vx': float('nan'),
|
||||
'vy': float('nan'),
|
||||
'vz': float('nan'),
|
||||
@@ -368,11 +369,9 @@ def get_telemetry(req):
|
||||
res['x'] = p.pose.position.x
|
||||
res['y'] = p.pose.position.y
|
||||
res['z'] = p.pose.position.z
|
||||
# Get yaw in the request's frame_in
|
||||
_, _, res['yaw'] = euler_from_orientation(p.pose.orientation)
|
||||
# Calculate pitch and roll as angles between the pose and fcu_horiz
|
||||
attitude_pose = tf_buffer.transform(pose, 'fcu_horiz', TRANSFORM_TIMEOUT)
|
||||
res['roll'], res['pitch'], _ = euler_from_orientation(attitude_pose.pose.orientation)
|
||||
|
||||
# Calculate roll pitch and yaw as Tait-Bryan angles, order z-y-x
|
||||
res['yaw'], res['pitch'], res['roll'] = euler_from_orientation(p.pose.orientation, axes='rzyx')
|
||||
|
||||
if velocity:
|
||||
v = Vector3Stamped()
|
||||
@@ -383,11 +382,15 @@ def get_telemetry(req):
|
||||
res['vx'] = linear.vector.x
|
||||
res['vy'] = linear.vector.y
|
||||
res['vz'] = linear.vector.z
|
||||
# TODO pitch_rate, roll_rate, yaw_rate
|
||||
|
||||
res['yaw_rate'] = velocity.twist.angular.z
|
||||
res['pitch_rate'] = velocity.twist.angular.y
|
||||
res['roll_rate'] = velocity.twist.angular.x
|
||||
|
||||
if global_position and stamp - global_position.header.stamp < rospy.Duration(5):
|
||||
res['lat'] = global_position.latitude
|
||||
res['lon'] = global_position.longitude
|
||||
res['alt'] = global_position.altitude
|
||||
|
||||
if state:
|
||||
res['connected'] = state.connected
|
||||
|
||||
@@ -6,8 +6,8 @@ def orientation_from_quaternion(q):
|
||||
return Quaternion(*q)
|
||||
|
||||
|
||||
def orientation_from_euler(roll, pitch, yaw):
|
||||
q = t.quaternion_from_euler(roll, pitch, yaw)
|
||||
def orientation_from_euler(roll, pitch, yaw, axes='rzyx'):
|
||||
q = t.quaternion_from_euler(roll, pitch, yaw, axes)
|
||||
return orientation_from_quaternion(q)
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@ def quaternion_from_orientation(o):
|
||||
return o.x, o.y, o.z, o.w
|
||||
|
||||
|
||||
def euler_from_orientation(o):
|
||||
def euler_from_orientation(o, axes='rzyx'):
|
||||
q = quaternion_from_orientation(o)
|
||||
return t.euler_from_quaternion(q)
|
||||
return t.euler_from_quaternion(q, axes)
|
||||
|
||||
|
||||
def vector3_from_point(p):
|
||||
|
||||
@@ -7,8 +7,9 @@ string mode
|
||||
float32 x
|
||||
float32 y
|
||||
float32 z
|
||||
float32 lat
|
||||
float32 lon
|
||||
float64 lat
|
||||
float64 lon
|
||||
float32 alt
|
||||
float32 vx
|
||||
float32 vy
|
||||
float32 vz
|
||||
|
||||
@@ -26,18 +26,14 @@
|
||||
* [Визуализация с помощью rviz](rviz.md)
|
||||
* [Работа с SITL](sitl.md)
|
||||
* [Подключение GPS](gps.md)
|
||||
* [Автозапуск ПО](autolaunch.md)
|
||||
* [Использование 3G-модема](3g.md)
|
||||
* [Устройство сети RPi](network.md)
|
||||
* [Работа с логами PX4](flight_logs.md)
|
||||
* Учебник
|
||||
* [Урок 1](lesson1.md)
|
||||
* [Урок 2](lesson2.md)
|
||||
* [Урок 3](lesson3.md)
|
||||
* [Урок 4](lesson4.md)
|
||||
* [Урок 5](lesson5.md)
|
||||
* [Урок 6](lesson6.md)
|
||||
* [Урок 7](lesson7.md)
|
||||
* [Урок 8](lesson8.md)
|
||||
* [Урок 9](lesson9.md)
|
||||
* [Урок 10](lesson10.md)
|
||||
* [Теория и видеоуроки](lessons.md)
|
||||
* [Учебно-методическое пособие](metod.md)
|
||||
* [Контрольные и проверочные материалы](tests.md)
|
||||
* [Другое](drugoe.md)
|
||||
* [CopterHack-2017](copterhack2017.md)
|
||||
* [Прошивка ESC контроллеров с помощью Arduino](esc_firmware.md)
|
||||
|
||||
@@ -110,7 +110,7 @@ _Примечание_: указанное выше определение пр
|
||||
|
||||
Для правильной работы Vision Position Estimation необходимо \(через [QGroundControl](gcs_bridge.md)\) убедиться, что:
|
||||
|
||||
* Для PixHawk: Установлена прошивка с LPE \(local position estimator\). Для PixRacer: параметр `SYS_MC_EST_GROUP` установлен в `local_position_estimator, attitude_estimator_q`.
|
||||
* Для PixHawk: Установлена прошивка с LPE \(local position estimator\). Для PixHawk необходимо [скачать прошивку `px4fmu-v2_lpe.px4`](https://github.com/PX4/Firmware/releases). Для PixRacer параметр `SYS_MC_EST_GROUP` должен быть установлен в `local_position_estimator, attitude_estimator_q`.
|
||||
* В параметре `LPE_FUSION` включены **только** флажки `vision position`, `vision yaw`, `land detector`. Итоговое значение _28_.
|
||||
* Выключен компас: `ATT_W_MAG` = 0
|
||||
* Вес угла по рысканью по зрению: `ATT_W_EXT_HDG` = 0.5
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||

|
||||
|
||||
|
||||

|
||||
[Техника безопасности при пайке](tb.md)
|
||||
|
||||
Порядок сборки
|
||||
--------------
|
||||
@@ -127,7 +127,7 @@
|
||||
* Лучи с моторами необходимо расположить согласно схеме. Стрелками указано направление вращения моторов.
|
||||
|
||||

|
||||
//указать стрелками направление вращения на моторах
|
||||
|
||||
|
||||
#### Залудить три контактные площадки регулятора
|
||||
* Нанести флюс
|
||||
@@ -146,7 +146,7 @@
|
||||
* Повторить данную операцию для оставшихся трех регуляторов
|
||||
|
||||
### Монтаж разъемов питания
|
||||

|
||||
[Статья про силовые и управляющие цепи](powerConnection.md)
|
||||
|
||||
#### Подготовка проводов для силовых разъемов XT60
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
#### Подготовка силовых разъемов питания XT60 pin и XT60 socket
|
||||
|
||||

|
||||
[Статья про силовые разъемы и их обозначения](connectortypes.md)
|
||||
|
||||

|
||||
|
||||
@@ -176,7 +176,6 @@
|
||||
8. Повторить процедуру для разъема XT60 socket.
|
||||
|
||||
#### Подготовка разъема питания управляющей цепи 5В
|
||||
 // *почему используется именно 3х контактный разъем, почему шина питания посередине
|
||||
|
||||
1. Обрезать/вытащить все пины из одного из разъемов. Отсоединить его.
|
||||
2. Поддеть канцелярским ножом фиксатор на оставшемся разъеме, чтобы освободить 3-й провод.
|
||||
@@ -187,11 +186,9 @@
|
||||
|
||||
### Монтаж платы распределения питания
|
||||
|
||||

|
||||
|
||||
#### Предпаячная проверка
|
||||
|
||||

|
||||
[Статья про прозвонку](testConnection.md)
|
||||
|
||||

|
||||
|
||||
@@ -205,7 +202,7 @@
|
||||
* “BAT+”, с каждым контактом, обозначенным “+”
|
||||
|
||||
#### Залудить контактные площадки платы питания
|
||||
1.  контактные площадки платы питания.
|
||||
1. [Залудить*](zap.md) контактные площадки платы питания.
|
||||
2. С помощью мультиметра проверить отсутствие контактного замыкания на плате (прозвонить)
|
||||
|
||||

|
||||
@@ -294,15 +291,17 @@
|
||||

|
||||
|
||||
#### Включение радиопульта
|
||||
1. На пульте зажать кнопку BIND KEY.
|
||||
2. Включить пульт (перещелкнуть POWER, BIND KEY не отпускаем).
|
||||
3. Ждем синхронизацию.
|
||||
4. Отсоединить джампер.
|
||||
5. Светодиод горит непрерывно.
|
||||
1. Вставить джампер в B/VCC радиоприемника (замкнуть "землю" и "сигнал")
|
||||
2. На пульте зажать кнопку BIND KEY.
|
||||
3. Включить пульт (перещелкнуть POWER, BIND KEY не отпускаем).
|
||||
4. Подключить аккумулятор к коптеру.
|
||||
5. Ждем синхронизацию.
|
||||
6. Отсоединить джампер.
|
||||
7. Светодиод горит непрерывно.
|
||||
|
||||

|
||||
|
||||

|
||||
[Мануал по неисправностям радиоаппаратуры](radioerrors1.md)
|
||||
### Проверка направления вращения моторов
|
||||
1. Наклеить наклейки на АКБ 18650.
|
||||
2. Установить 18650 в отсек АКБ, соблюдая полярность.
|
||||
@@ -329,7 +328,7 @@
|
||||
2. Разъем питания 5В продеть в прорезь.
|
||||

|
||||
|
||||
3. Приемник прикрепить к , используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
|
||||
3. Приемник прикрепить к нижней дополнительной раме, используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
|
||||
|
||||

|
||||
|
||||
@@ -341,8 +340,7 @@
|
||||

|
||||
|
||||
##### ВАЖНО
|
||||
Направление стрелок на плате питания и на раме дополнительной совпадают
|
||||
|
||||
Направление стрелок на плате питания и на дополнительной раме совпадают
|
||||
|
||||
### Монтаж полетного контроллера
|
||||
#### Переворачиваем сборку
|
||||
@@ -438,7 +436,4 @@
|
||||
2. При подключении (отключении) аккумуляторов держаться только за разъёмы, тянуть или дергать за провода запрещается.
|
||||
3. В случае обрыва разъемов, обнаружения нарушений целостности изоляции или корпуса аккумулятора, не трогая его, немедленно сообщить преподавателю.
|
||||
|
||||
|
||||
|
||||
|
||||
## 
|
||||
## [ТЕХНИКА БЕЗОПАСНОСТИ ПРИ ПАЙКЕ И ЛЁТНОЙ ЭКСПЛУАТАЦИИ КОПТЕРОВ](safety.md)
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 MiB After Width: | Height: | Size: 1.3 MiB |
BIN
docs/assets/balance.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/assets/banana.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/assets/bridge_udp.png
Normal file
|
After Width: | Height: | Size: 363 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 751 KiB |
|
Before Width: | Height: | Size: 6.5 MiB After Width: | Height: | Size: 3.3 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 901 KiB |
|
Before Width: | Height: | Size: 363 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 257 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 467 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 404 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 62 KiB |
BIN
docs/assets/download-log.png
Normal file
|
After Width: | Height: | Size: 644 KiB |
|
Before Width: | Height: | Size: 475 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 848 KiB |
BIN
docs/assets/flightplot.png
Normal file
|
After Width: | Height: | Size: 320 KiB |
|
Before Width: | Height: | Size: 518 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 70 KiB |
BIN
docs/assets/listener.png
Normal file
|
After Width: | Height: | Size: 444 KiB |
|
Before Width: | Height: | Size: 332 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 414 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 552 KiB After Width: | Height: | Size: 126 KiB |
BIN
docs/assets/oscillRoll.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 425 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 408 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 294 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 329 KiB After Width: | Height: | Size: 71 KiB |
BIN
docs/assets/setupSwitch.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
docs/assets/solderConsist.gif
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 848 KiB After Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 310 KiB |
|
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 243 KiB |
BIN
docs/assets/t-plug.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 334 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 103 KiB |
BIN
docs/assets/xt60.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
59
docs/autolaunch.md
Normal file
@@ -0,0 +1,59 @@
|
||||
Автозапускаемое ПО
|
||||
===
|
||||
|
||||
systemd
|
||||
---
|
||||
|
||||
Основная документация: [https://wiki.archlinux.org/index.php/Systemd_(Русский)](https://wiki.archlinux.org/index.php/Systemd_(Русский)).
|
||||
|
||||
Все автоматически стартуемое ПО Клевера запускается в виде systemd-сервиса `clever.service`.
|
||||
|
||||
Сервис может быть перезапущен командой `systemctl`:
|
||||
|
||||
```bash
|
||||
sudo systemctl restart clever
|
||||
```
|
||||
|
||||
Текстовый вывод ПО можно просмотреть с помощью команды `journalctl`:
|
||||
|
||||
```bash
|
||||
journalctl -u clever
|
||||
```
|
||||
|
||||
Для того, запустить ПО Клевера непосредственно в текущей консольной сессии, вы можете использовать `roslaunch`:
|
||||
|
||||
```bash
|
||||
sudo systemctl stop clever
|
||||
roslaunch clever clever.launch
|
||||
```
|
||||
|
||||
Вы можете выключить автозапуск ПО Клевера с помощью команды `disable`:
|
||||
|
||||
```bash
|
||||
sudo systemctl disable clever
|
||||
```
|
||||
|
||||
roslaunch
|
||||
---
|
||||
|
||||
Основная документация: http://wiki.ros.org/roslaunch.
|
||||
|
||||
Список объявленных для запуска нод / программ указывается в файле `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch`.
|
||||
|
||||
Вы можете добавить собственную ноду в список автозапускаемых. Для этого разместите ваш запускаемый файл (например, `my_program.py`) в каталог `/home/pi/catkin_ws/src/clever/clever/src`. Затем добавьте запуск вашей ноды в `clever.launch`, например:
|
||||
|
||||
```xml
|
||||
<node name="my_program" pkg="clever" type="my_program.py" output="screen"/>
|
||||
```
|
||||
|
||||
Запускаемый файл должен иметь *permission* на запуск:
|
||||
|
||||
```bash
|
||||
chmod +x my_program.py
|
||||
```
|
||||
|
||||
При использовании скриптовых языков вначале файла должен стоять [shebang](https://ru.wikipedia.org/wiki/Шебанг_(Unix)), например:
|
||||
|
||||
```bash
|
||||
#!/usr/bin/env python
|
||||
```
|
||||
17
docs/calibratePID.md
Normal file
@@ -0,0 +1,17 @@
|
||||
### Как настраивать PID
|
||||
|
||||
|
||||
На практике самая распространенная проблема это быстрые осцилляции, возникающие из-за слишком большого значения параметра P.
|
||||
В данной ситуации следует уменьшить его значение (все параметры выставляются экспериментальным путем, исходя из поведения аппарата).
|
||||
|
||||
Также стоит проверить чтобы осцилляций не было при резком спуске (в противном случае уменьшить P)
|
||||
Медленные раскачивания коптера из стороны в сторону при попытке удержания заданной точки связаны с перебором значения I.
|
||||
В случае если при движении коптер раскачивается следует поднять это значение
|
||||
В случае если коптер плохо держит заданное положение следует увеличить параметр D при переборе или недостатке параметра D возникают осцилляции
|
||||
|
||||
#### ВАЖНО настройку D следует начинать с минимальных значений , в 3-4 раза меньше значений по умолчанию, если таковые присутствуют
|
||||
|
||||
Параметры для Rate Pitch and Rate Roll должны быть одинаковыми
|
||||
По YAW параметры следует менять отдельно, согласно вышеуказанной инструкции (как правило рысканье не требует серьезной настройки, можно оставить по умолчанию)
|
||||
|
||||

|
||||
@@ -57,3 +57,54 @@ image_pub.publish(bridge.cv2_to_imgmsg(cv_image, 'bgr8'))
|
||||
```
|
||||
|
||||
Получаемые изображения можно просматривать используя [web_video_server](web_video_server.md).
|
||||
|
||||
### Примеры
|
||||
|
||||
#### Работа с QR-кодами
|
||||
|
||||
> **Hint** Для высокоскоростного распознавания и позиционирования лучше использовать [ArUco-маркеры](aruco.md).
|
||||
|
||||
Для программирования различных действий коптера при детектировании нужных [QR-кодов](https://ru.wikipedia.org/wiki/QR-код) можно использовать бибилиотеку [ZBar](http://zbar.sourceforge.net). Ее нужно установить в помощью pip:
|
||||
|
||||
```bash
|
||||
sudo pip install zbar
|
||||
```
|
||||
|
||||
Распознавание QR-кодов на Python:
|
||||
|
||||
```python
|
||||
import cv2
|
||||
import zbar
|
||||
from cv_bridge import CvBridge
|
||||
from sensor_msgs.msg import Image
|
||||
|
||||
bridge = CvBridge()
|
||||
scanner = zbar.ImageScanner()
|
||||
scanner.parse_config('enable')
|
||||
|
||||
# Image subscriber callback function
|
||||
def image_callback(data):
|
||||
cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') # OpenCV image
|
||||
gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY, dstCn=0)
|
||||
|
||||
pil = ImageZ.fromarray(gray)
|
||||
raw = pil.tobytes()
|
||||
|
||||
image = zbar.Image(320, 240, 'Y800', raw) # Image params
|
||||
scanner.scan(image)
|
||||
|
||||
for symbol in image:
|
||||
# print detected QR code
|
||||
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
|
||||
|
||||
image_sub = rospy.Subscriber('main_camera/image_raw', Image, image_callback, queue_size=1)
|
||||
```
|
||||
|
||||
Скрипт будет занимать 100% процессора. Для искусственного замедления работы скрипта можно запустить [throttling](http://wiki.ros.org/topic_tools/throttle) кадров с камеры, например, в 5 Гц (`main_camera.launch`):
|
||||
|
||||
```xml
|
||||
<node pkg="topic_tools" name="cam_throttle" type="throttle"
|
||||
args="messages main_camera/image_raw 5.0 main_camera/image_raw/throttled"/>
|
||||
```
|
||||
|
||||
Топик для подписчика в этом случае необходимо поменять на `main_camera/image_raw/throttled`.
|
||||
|
||||
27
docs/connectortypes.md
Normal file
@@ -0,0 +1,27 @@
|
||||
Типы силовых разъемов
|
||||
=====================
|
||||
XT-60
|
||||
-----
|
||||
Один из самых надёжных силовых разъёмов, которые стараются применять на силовых аккумуляторах. Именно такие аккумуляторы используются на Li-Po аккумуляторах для коптеров.
|
||||
|
||||

|
||||
|
||||
T-plug
|
||||
------
|
||||
Аналог XT-60. Имеет различные вариации для упрозщения разъединения.
|
||||
|
||||

|
||||
|
||||
JST-XH или балансировочный разъем
|
||||
-----------------------------
|
||||
Разъёмы данного типа часто применяются для балансировки отдельных элементов в составе сборки из нескольких литий-полимерных (Li-Pol), литий-ионных (Li-ion) или литий-фосфатных (LiFePO4) аккумуляторов.
|
||||
Подобные разъёмы с разным количеством штырьков устанавливаются в большинство современных зарядных устройств для балансировки литиевых элементов при заряде.
|
||||
Может использоваться в сочетании с Buzzer (пищалкой) для контроля заряда аккумулятора.
|
||||
|
||||

|
||||
|
||||
Gold bullet Conector или "Бананы"
|
||||
-----------------------------
|
||||
Существует великое множество штырьковых разъёмов типа Gold bullet Conector. Разъёмы данного типа отличаются друг от друга диаметром и размером. Наиболее распространены разъёмы с диаметром коннектора 2 мм, 3 мм и 4 мм.
|
||||
Часто используется для создания беспаечных соединений на PDB и моторах.
|
||||

|
||||
55
docs/flight_logs.md
Normal file
@@ -0,0 +1,55 @@
|
||||
Логи и топики PX4
|
||||
===
|
||||
|
||||
Для детального анализа поведения прошивки PX4 можно просмотреть полетные логи. Полетные логи представляют собой сообщения в [uORB-топиках](https://dev.px4.io/en/middleware/uorb.html), записанные в файл с раширением `.ulg`. Лог-файл можно скачать с помощью QGroundControl по Wi-Fi или USB во вкладке *Log Download*:
|
||||
|
||||

|
||||
|
||||
Также необходимые `.ulg`-файлы можно скопировать непосредственно с MicroSD-карты, находившейся в полетном контроллере.
|
||||
|
||||
Анализ
|
||||
---
|
||||
|
||||
Лог-файл можно анализировать с помомщью программы FlightPlot. Актуальную версию программы можно [скачать](https://github.com/PX4/FlightPlot/releases) на GitHub.
|
||||
|
||||
В программе можно просмотреть полный список записанных топиков (*Fields List*). В нем нужно выбрать необходимые топики, после чего они появятся на графике:
|
||||
|
||||

|
||||
|
||||
Основные топики в PX4
|
||||
---
|
||||
|
||||
[uORB](https://dev.px4.io/en/middleware/uorb.html) представляет собой pubsub механизм, аналогичный ROS-топикам, однако сильно упрощенный и подходящий для embedded-среды.
|
||||
|
||||
Полный список топиков можно узнать в исходном коде проекта [в каталоге `msg`](https://github.com/PX4/Firmware/tree/master/msg).
|
||||
|
||||
Список некоторых топиков:
|
||||
|
||||
* **vehicle_status** – состояние коптера (режим и т. д.);
|
||||
* **vehicle_local_position** – локальная позиция коптера;
|
||||
* **vehicle_attitude** – ориентация коптера;
|
||||
* **vehicle_local_position_setpoint** – целевая точка (setpoint) коптера по позиции;
|
||||
* **vehicle_global_position** – глобальная позиция коптера;
|
||||
* **vehicle_vision_position** – полученная визуальная позиция коптера, аналог MAVLink пакета `VISION_POSITION_ESTIMATE` или MAVROS-топика `/mavros/vision_position_estimate/pose`;
|
||||
* **att_pos_mocap** – полученная MOCAP-позиция коптера, аналог MAVLink пакета `ATT_POS_MOCAP` или MAVROS-топика `/mavros/mocap/pose`;
|
||||
* **actuator_controls** – сигналы на моторы;
|
||||
* **vehicle_land_detected** – статус Land-detector'а;
|
||||
|
||||
Мониторинг топиков в режиме реального времени
|
||||
---
|
||||
|
||||
Для более новых версий платы PixHawk (`px4fmu-v3`), а также для плат PixRacer, в прошивку включен модуль `topic_listener`, который позволяет просматривать значения топиков в режиме реального времени (в том числе в полете).
|
||||
|
||||
Для ее использования нужно выбрать вкладку Mavlink Console в QGroundControl:
|
||||
|
||||

|
||||
|
||||
Команда `list_topics` выводит список топиков, доступных для просмотра (включена только в [SITL](sitl.md)).
|
||||
|
||||
Команда `listener <название топика>` выводит текущее значение в топике. Существует третий опциональный параметр, который определяет количество сообщений, которые необходимо вывести.
|
||||
|
||||
Примеры команд:
|
||||
|
||||
`listener vehicle_local_position`
|
||||
|
||||
`listener vehicle_attitude 5`
|
||||
@@ -1,51 +1,70 @@
|
||||
Использование QGroundControl через Wi-Fi
|
||||
===
|
||||
|
||||
Возможен контроль, управление и настройка полетного контроллера квадрокоптера с помощью программы QGroundControl по Wi-Fi. Для этого необходимо подключиться к Wi-Fi сети `CLEVER-xxxx`.
|
||||

|
||||
|
||||
Возможны контроль, управление, калибровка и настройка полетного контроллера квадрокоптера с помощью программы QGroundControl по Wi-Fi.
|
||||
Для этого необходимо подключиться к Wi-Fi сети `CLEVER-xxxx`.
|
||||
|
||||
После чего в launch-файле Клевера `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch` выбрать один из преднастроенных режимов бриджа.
|
||||
|
||||
После изменения launch-файла необходимо перезагрузить сервис clever:
|
||||
|
||||
```(bash)
|
||||
sudo systemctl restart clever
|
||||
```
|
||||
|
||||
TCP-бридж
|
||||
---
|
||||
|
||||
Необходимо убедиться с в launch-файле Клевера (`~/catkin_ws/src/clever/clever/launch/clever.launch`) включен TCP GCS Bridge:
|
||||
|
||||
Изменить параметр `gcs_bridge` в launch-файле:
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="tcp"/>
|
||||
```
|
||||
|
||||
При изменени launch-файла необходимо перезагрузить сервис `clever`:
|
||||
|
||||
```bash
|
||||
sudo systemctl restart clever
|
||||
```
|
||||
|
||||
Затем в программе QGroundControl нужно выбрать Application Settings -> Comm Links -> Add. Создать подключение со следующими настройками:
|
||||
Затем в программе QGroundControl нужно выбрать Application Settings > Comm Links > Add. Создать подключение со следующими настройками:
|
||||
|
||||

|
||||
|
||||
Затем необходимо выбрать в списке подключений "Clever" и нажать "Connect". После этого можно будет настраивать, калибровать и просматривать состояние квадкоптера без проводов:
|
||||
Затем необходимо выбрать в списке подключений "Clever" и нажать "Connect".
|
||||
|
||||

|
||||
|
||||
UDP broadcast-бридж
|
||||
UDP бридж (с автоматическим подключением)
|
||||
---
|
||||
|
||||
Для использования UDP broadcast-бриджа необходимо установить параметр `gcs_bridge` в значение `udp-b`:
|
||||
|
||||
Изменить параметр gcs_bridge в launch-файле:
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="udp-b"/>
|
||||
```
|
||||
|
||||
При изменени launch-файла необходимо перезагрузить сервис `clever`:
|
||||
При открытии программы QGroundControl соединение должно установиться автоматически.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart clever
|
||||
```
|
||||
|
||||
При использовании UDB broadcast-бриджа достаточно подключиться к Wi-Fi сети Клевера. QGroundControl должен подключиться к коптеру автоматически.
|
||||
|
||||
> **Note** UDP broadcast-бридж работает быстрее, чем TCP-бридж, но связь в нем менее стабильная: иногда могут возникать проблемы при загрузке миссии на коптер, а также при калибровке сенсоров.
|
||||
|
||||
UDP-бридж
|
||||
UDP-бридж (без автоматического подключения)
|
||||
---
|
||||
|
||||
TODO
|
||||
Изменить параметр `gcs_bridge` в launch-файле:
|
||||
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="udp"/>
|
||||
```
|
||||
|
||||
Затем в программе QGroundControl нужно выбрать Application Settings > Comm Links > Add. Создать подключение со следующими настройками:
|
||||
|
||||

|
||||
|
||||
Затем необходимо выбрать в списке подключений "CLEVER" и нажать "Connect".
|
||||
|
||||
|
||||
|
||||
UDP broadcast-бридж
|
||||
---
|
||||
|
||||
> **Hint** Особенностью UDP broadcast-бриджа является возможность просмотра телеметрии дрона одновременно с нескольких устройств (например с телефона и компьютера). Также он хорошо подходит для организации сети из устройств при помощи роутера.
|
||||
|
||||
Изменить параметр `gcs_bridge` в launch-файле:
|
||||
|
||||
```xml
|
||||
<arg name="gcs_bridge" default="udp-pb"/>
|
||||
```
|
||||
|
||||
При открытии программы QGroundControl соединение должно установиться автоматически.
|
||||
|
||||
15
docs/gps.md
@@ -2,8 +2,21 @@
|
||||
===
|
||||
|
||||
При подключении GPS появляются следующие возможности:
|
||||
|
||||
* Удерживание коптером позиции при полете на улице
|
||||
* Программирование автономных миссий в программе QGroundControl
|
||||
* Полеты на глобальные точки в автономном режиме при помощи модуля [simple offboard](simple_offboard.md).
|
||||
|
||||
TODO
|
||||
Полезные ссылки:
|
||||
* https://docs.px4.io/en/assembly/quick_start_pixhawk.html
|
||||
* http://ardupilot.org/copter/docs/common-pixhawk-wiring-and-quick-start.html
|
||||
* http://ardupilot.org/copter/docs/common-installing-3dr-ublox-gps-compass-module.html
|
||||
|
||||
Подключение
|
||||
---
|
||||
|
||||
GPS-модуль подключается к разъемам "GPS" и "I2C" (компас) полетного контроллера.
|
||||
|
||||
При подключении GPS, необходимо заново откалибровать магнитометры в программе QGroundControl, подключившись по [Wi-Fi](wifi.md) или USB.
|
||||
|
||||
Далее, необходимо включить GPS в параметре `EKF2_AID_MASK` (при использовании EKF2) или `LPE_FUSION` (при использовании LPE).
|
||||
|
||||
51
docs/lessons.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Теория
|
||||
|
||||
[**Урок №1** «Знакомство. Принципы проектирования и строение мультикоптеров»](https://github.com/CopterExpress/clever/blob/master/docs/lesson1.md)
|
||||
|
||||
[**Урок №2** «Основы электричества»](https://github.com/CopterExpress/clever/blob/master/docs/lesson2.md)
|
||||
|
||||
[**Урок №3** «Теория пайки»](https://github.com/CopterExpress/clever/blob/master/docs/lesson3.md)
|
||||
|
||||
[**Урок №4** «Аэродинамика полета. Пропеллер»](https://github.com/CopterExpress/clever/blob/master/docs/lesson4.md)
|
||||
|
||||
[**Урок №5** «Бесколлекторные двигатели и регуляторы их хода»](https://github.com/CopterExpress/clever/blob/master/docs/lesson5.md)
|
||||
|
||||
[**Урок №6** «Основы электромагнетизма. Типы двигателей»](https://github.com/CopterExpress/clever/blob/master/docs/lesson6.md)
|
||||
|
||||
[**Урок №7** «Принцип работы, типы и устройство аккумуляторов»](https://github.com/CopterExpress/clever/blob/master/docs/lesson7.md)
|
||||
|
||||
[**Урок №8** «Управление полётом мультикоптера. Принцип функционирования полётного контроллера. ПИД регуляторы»](https://github.com/CopterExpress/clever/blob/master/docs/lesson8.md)
|
||||
|
||||
[**Урок №9** «Основы радиосвязи. Принцип работы радиоаппаратуры управления»](https://github.com/CopterExpress/clever/blob/master/docs/lesson9.md)
|
||||
|
||||
[**Урок №10** «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики иприёмники»](https://github.com/CopterExpress/clever/blob/master/docs/lesson10.md)
|
||||
|
||||
## Видеоуроки
|
||||
|
||||
Немного о видах коптеров
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/LFOmZZwg-PE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 1
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/e9Z1pjW0vQU" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 2
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/jWMGSgiLD_E" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 3
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/WhxxXD4b1MY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 4
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/jkA9F9lSWDM" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 5
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Cz7EbJ1-xMw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
|
||||
Часть 6
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/v00oNVzwICg" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
|
||||
53
docs/metod.md
Normal file
@@ -0,0 +1,53 @@
|
||||
Методические материалы
|
||||
======================
|
||||
|
||||
Здесь представлены методические материалы для ознакомления с основами БПЛА,
|
||||
которые помогут грамотно организовать процесс как самостоятельного изучения, так и в группах.
|
||||
|
||||
Учебно-методическое пособие
|
||||
---------------------------
|
||||
|
||||
[Урок 1. «Знакомство. Принципы проектирования и строение мультикоптеров»](https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 2. «Основы электричества»](https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 3. «Теория пайки»]( https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 4. «Аэродинамика полета. Пропеллер»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 5. «Основы электромагнетизма. Типы двигателей»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 6. «Бесколлекторные двигатели и регуляторы их хода»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 7. «Принцип работы, типы и устройство аккумуляторов»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 8. «Управление полётом мультикоптера. Принцип функционирования полетного контроллера. ПИД регуляторы»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 9. «Основы радиосвязи. Принцип работы радиоаппаратуры управления»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 10. «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики и приёмники»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 11. «Техника безопасности при сборке и настройке коптеров, при подготовке к вылету. Техника безопасности при работе с аккумуляторами»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 12. «Теория ручного визуального пилотирования»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 13. «Техника безопасности при летной эксплуатации коптера»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 14. «Обучение лётному мастерству»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 15. «Основы радиоэлектроники, схемотехники и макетирования электрических схем»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 16. «Основы работы с аналоговым и цифровым сигналом»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 17. «Основы работы с лабораторным оборудованием»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 18. «Теория FPV полетов»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 19. «История автономных полетов. Развитие автопилотов в авиации»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 20. «Основы программирование на языке Python»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 21. «Знакомство с компьютером Raspberry Pi»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
[Урок 22. «Управление автономным дроном: теория»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
|
||||
|
||||
400
docs/metodmaterials.md
Normal file
@@ -0,0 +1,400 @@
|
||||
Введение
|
||||
========
|
||||
|
||||
Данное методическое пособие призвано помочь преподавателю в обучении людей, желающих освоить сферу применения беспилотных летательных аппаратов и получить практические навыки в конструировании, пилотировании, настройке и программировании беспилотных летательных аппаратов.
|
||||
|
||||
Предполагаемый возраст обучающихся - не менее 12 лет (ожидается, что учащийся в этом возрасте уже имеет минимальный опыт работы с инструментом, компьютером и осознанно подходит к процессу обучения, с соблюдением всех правил техники безопасности).
|
||||
|
||||
**Целью** обучения является формирование компетенций в области беспилотных авиационных систем, развитие творческого и научно-технического потенциала учащихся, путем организации проектной деятельности, в рамках создания собственного беспилотного летательного аппарата.
|
||||
Предметными результатами изучения данного курса является формирование следующих знаний и умений:
|
||||
|
||||
**Знать:**
|
||||
* об истории и тенденциях развития беспилотных летательных аппаратов; о том как можно улучшить их характеристики;
|
||||
* правила техники безопасности при эксплуатации БПЛА;
|
||||
* основные компоненты коптеров;
|
||||
* конструктивные особенности различных моделей, сооружений и механизмов;
|
||||
* компьютерные среды для настройки полетных контроллеров;
|
||||
* основы аэродинамики полета;
|
||||
* основы электричества, радиоэлектроники;
|
||||
* основы программирования на языке Python;
|
||||
* основы программирования автономных полетов коптеров;
|
||||
* теорию FPV полетов;
|
||||
* применение компьютерного зрения;
|
||||
* конструктивные особенности различных БПЛА и их применение;
|
||||
* способы настройки и подготовки коптера к полету;
|
||||
|
||||
**Уметь:**
|
||||
* настраивать и калибровать полетные контроллеры разных производителей с применением специализированного ПО;
|
||||
* осуществлять визуальное пилотирование беспилотного летательного аппарата и посредством FPV аппаратуры;
|
||||
* создавать недостающие для реализации проектов элементы в средах 3D моделирования и осуществлять их печать на 3D принтере;
|
||||
* взаимодействовать с микрокомпьютером Raspberry, обладать основами администрирования Linux;
|
||||
* планировать и прописывать полетные задания и миссии;
|
||||
* программировать и осуществлять автономные полеты. Проводить предполетную подготовку.
|
||||
|
||||
**Перечень используемого оборудования и материалов:**
|
||||
1. Компьютеры с установленным необходимым ПО.
|
||||
2. Наборы конструкторов для сборки программируемого квадрокоптера “Клевер”.
|
||||
3. Лаборатория, оснащенная паяльными станциями, вытяжками и необходимыми инструментами.
|
||||
4. Полетная зона или разрешение на полеты в открытом воздушном пространстве.
|
||||
|
||||
Данное методическое пособие опирается на следующие материалы:
|
||||
- [Учебное пособие.](lesson1.md)
|
||||
- [Инструкция по сборке.](assemble.md)
|
||||
- [Инструкция по настройке.](setup.md)
|
||||
- [Проверочные задания.](tests.md)
|
||||
- Информационные материалы на сайте https://copterexpress.gitbooks.io/clever/content/.
|
||||
|
||||
**Промежуточный контроль**
|
||||
|
||||
Промежуточный контроль знаний проводится путем проверки теоретических знаний с использованием контрольных вопросов и тестирования по каждой теме. Тестирования проводятся наравне с опросами по пройденным темам в начале занятия. Контрольные вопросы направлены на оценку степени освоения учащимися материала, пройденного на текущем занятии и задаются в конце занятия по каждой теме. Все контрольные вопросы и тесты собраны в отдельном модуле “«Клевер». Проверочные задания. Доп. материалы ”
|
||||
|
||||
**Подведение итогов**
|
||||
|
||||
Ниже предложен один из вариантов подведения итогов курса.
|
||||
|
||||
Финальное мероприятие включает 3 раздела:
|
||||
|
||||
1. Итоговый тест (см. [проверочные задания](tests.md)).
|
||||
2. Финальная гонка.
|
||||
3. Программирование танца коптера.
|
||||
|
||||
Финальная гонка коптеров: проводится среди всех учащихся, освоивших курс. Победителем становится участник, набравший наибольшее количество баллов.
|
||||
|
||||
**Задача:** необходимо пролететь 2 круга по трассе с флагами и воротами за наименьшее время, не задев элементы трассы.
|
||||
|
||||
| № | Начисление баллов | Штрафные очки |
|
||||
| -- |:----------------------------------:| :----------------------------------:|
|
||||
| 1 | Наименьшее время прохождения трассы 1 место (7 баллов) | Касание флага ( - 1 балл) |
|
||||
| 2 | Наименьшее время прохождения трассы 2 место (5 баллов) | Касание ворот ( - 1 балл) |
|
||||
| 3 | Наименьшее время прохождения трассы 3 место (3 балла) | Касание пола ( - 1 балл) |
|
||||
| 4 | Облет флага с нужной стороны (2 балла, количество флагов не менее 3) | Поломка защиты коптера (- 5 баллов) |
|
||||
| 5 | Пролет сквозь ворота (2 балла, количество ворот не менее 3) | Поломка электронных компонентов коптера (- 10 баллов) |
|
||||
|
||||
Программируемый танец коптера:
|
||||
|
||||
Учащемуся необходимо запрограммировать автономный полет коптера над полем меток под музыку.
|
||||
Оценивается попадание движений коптера в такт и зрелищность представления (участники могут использовать светодиодную ленту и любые украшения коптера).
|
||||
|
||||
Методика проведения занятий
|
||||
---------------------------
|
||||
|
||||
## Урок №1. Тема: «Знакомство. Принципы проектирования и строение мультикоптеров»
|
||||
|
||||
**Цель урока:** познакомить учеников с предстоящим курсом, сформировать учебную мотивацию, познакомить учеников с историей создания и развития коптеров, сформировать представления о функциях и возможностях современных коптеров, наглядно продемонстрировать виды и конфигурации коптеров, дать теоретические знания об управлении коптером и его составных частей, обучить основным терминам для качественного усвоения новых знаний.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Знакомство | В начале занятия необходимо представиться классу, для удобства общения с новым коллективом будет правильно на первые занятия приходить с бейджиком. |
|
||||
| 2 | Представление курса | Опрос учеников с какими ожиданиями они пришли на первое занятие, чего они хотят узнать и чему научиться в ближайшее время. Это поможет лучше познакомиться с классом, понять мотивацию детей. Необходимо прокомментировать их ответы, поддержать если ожидание ученика совпадает с программой курса. Дополнить ответы, перечислив интересные темы и практические занятия, которые ждут учеников в данном курсе. |
|
||||
| 3 | Демонстрация современных коптеров | Чтобы ещё больше заинтересовать учеников, необходимо продемонстрировать им видео с современными коптерами, кадры с гонок, научных выставок, демонстраций. |
|
||||
| 4 | История коптеров | Опрос учеников, как давно, по их мнению, появились первые беспилотные летающие аппараты. Отметить учеников, которые были ближе всего в своих догадках, добавив что первые беспилотники появились ещё в 1890-х годах, например радиоуправляемая лодка Теслы(В 1899 году на выставке в Мэдисон-Сквер-Гарден инженер и изобретатель Никола Тесла продемонстрировал миниатюрное радиоуправляемое судно.), так же в качестве прообраза беспилотников могли выступать птиц. Продемонстрировать ученикам развитие беспилотных технологий: * Kettering Bug («Жук» Каттеринга») (Экспериментальная беспилотная «воздушная торпеда», один из первых проектов предшественников современных крылатых ракет) * Вертолет Ботезата (Один из первых квадрокоптеров (англ. quadcopter, четырехроторный вертолет), который реально оторвался от земли и мог держаться в воздухе, был создан Георгием Ботезатом и испытан в 1922 году). Спросить учеников, какие недостатки, по их мнению, были у этих моделей и с какими трудностями сталкивались люди используя их. Показать ученикам современный беспилотник и современный коптер на фото или видео. Можно показать коптер, который учащиеся будут собирать во время обучения, чтобы у них сформировалось представление о результате, к которому они должны прийти после освоения курса. |
|
||||
| 5 | Применение БПЛА самолетного типа | Спросить у учеников, какие примеры использования БПЛА самолетного типа в современном мире они знают. Рассказать про преимущества применения БПЛА самолетного типа, особенно, про съемку с воздуха и мониторинг лесов и полей. Рассказать о сферах использования: * Аэрофотосъемка местности (при необходимости отснять рельеф поверхности земли на протяженном расстоянии); * Военная сфера (тяжёлые БПЛА большой продолжительности полёта – взлётная масса более 1500 кг, дальность действия около 1500 км); * Сельское хозяйство (распространение удобрений, мониторинг полей); * Охрана и мониторинг местности Продемонстрировать свои примеры на фото и видео. Предложить ученикам привести ещё варианты, где могут применяться БПЛА самолетного типа. |
|
||||
| 6 | Применение коптеров | Спросить у учеников, какие примеры использования коптеров в современном мире они знают. Постараться прокомментировать и дополнить каждый ответ. После чего задать ученикам вопросы, как, по их мнению, коптеры могут быть полезны в следующих областях: * Телекоммуникационная сфера (использование двусторонней видео/аудио связи); * Транспортная сфера (транспортировка грузов); * Спасательные работы (исследование труднодоступных зон при стихийных бедствиях, терактах, поиск находящихся под завалами людей, транспортировка медикаментов, оказание первой помощи при несчастных случаях); * Рекламные кампании (применение робота для привлечения внимания на крупных выставках и т.п.); * Сфера СМИ (аэросъемка различных событий); * Видео/фото-съёмка (съёмка фильмов или рекламных роликов с высоты птичьего полёта); * Продовольственная сфера (доставка продуктов питания); Продемонстрировать свои примеры на фото и видео. Предложить ученикам привести ещё варианты, где могут применяться коптеры. Поделиться своим собственным опытом использования коптеров, если есть такая возможность. Для эффектного завершения занятия можно показать ученикам фото и видео с гоночных соревнований дронов. |
|
||||
| 7 | Виды и конфигурация коптеров | Рассказать ученикам о видах коптеров и зарисовать направление вращения моторов на каждом из них. * трикоптер, * гексакоптер, * октокоптер, * квадрокоптер. Спросить ребят, что, по их мнению, даёт разное количество винтов, в конце сделав акцент на то, что квадрокоптеры самые простые из них в сборке и управлении. Показать ученикам два вида конфигурации квадрокоптеров + и X и их отличие. |
|
||||
| 8 | Управление | Показать классу пульт управления, перечислить название его управляющих элементов. Пусть ученики попробуют сами догадаться какое назначение у стиков и переключателей. Представить ученикам схему управления пультом. Познакомить их с необходимыми терминами и их значением: * Throttle (газ). Газ мультикоптера – среднее арифметическое между скоростями вращения всех моторов. Чем больше газ, тем больше суммарная тяга моторов, и тем сильнее они тащат коптер вверх (проще говоря «Тапок в пол» здесь означает наискорейший подъем). Обычно измеряется в процентах: 0% – моторы остановлены, 100% – вращаются с максимальной скоростью. Газ висения – минимальный уровень газа, который необходим, чтобы коптер не терял высоту. * Оси коптера - углы тангажа, крена и рыскания (pitch, roll, yaw) – углы, которыми принято определять и задавать ориентацию мультикоптера в пространстве. * Yaw (рыскание). – «рыскание». Поворот носа мультикоптера. условно - вращение вправо влево. * Pitch (тангаж). В коптерах манипуляции с этим моментом силы позволяет коптеру двигаться вперед или назад за счет наклона носа в соответствующем направлении. * Roll (крен). Наклон мультикоптера влево вправо. Коптер за счет крена может двигаться боком в соответствующую сторону. Рассказать классу принцип вращения винтов, особенности направления их вращения. Продемонстрировать ученикам тестовую картинку, попросить их определить в каком направлении будет двигаться коптер. Позволить им самим свериться с правильными ответами и задать вопросы. |
|
||||
| 9 | Элементы коптера | Рассказать ученикам о составных элементах коптера: * Полетный контроллер. Задача полетного контроллера – переводить команды от пульта управления в сигналы задающие обороты двигателя. Также в нем установлены инерциальные измерительные датчики, позволяющие следить за текущим положением платформы и выполнять автоматические регулировки. * ESC. В мультикоптерах используют специальные бесколлекторные электродвигатели, которые способны работать на очень больших оборотах. Для управления этими двигателями необходимо формировать трехфазное напряжение и относительно большие токи, чем и занимаются регуляторы оборотов. * Силовая рама * Электродвигатель * Пропеллеры * Радиоприемник * Радиопередатчик. Большинство передатчиков имеют частоту 2,4ГГц, так же на рынке представлен ряд других частот. * Аккумулятор. Самыми распространенными в применении на коптерах являются литий-ионные и литий-полимерные аккумуляторы. Основные характеристики аккумулятора (Емкость (мА*ч), Максимальный токоразряд (20С), Количество банок (2S,3S, 4S), Вес) Зарисовать схему квадрокоптера и объяснить, как взаимодействуют между собой элементы. Спросить учеников, что, по их мнению, произойдет в случае отказа того или иного элемента. |
|
||||
| 10 | Резервное время | Подведение итогов темы. Спросить у учеников, есть ли у них вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
|
||||
## Урок №2. Тема: «Основы электричества»
|
||||
**Цель урока:** дать представления о природе и физических характеристиках
|
||||
электродвижущей силы. Формировать у учащихся представления о тепловом действии электрического тока и его причинах. Дать теоретическое представление ученикам о принципе строения электрических цепей.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Повторение пройденного материала | Поприветствовать учеников. Спросить класс, кто хочет рассказать о том, что изучалось на прошлом уроке. Задать классу вопросы, по темам, которые не были озвучены учениками. |
|
||||
| 2 | Введение | Спросить класс, кто может рассказать, что такое электрический ток. Выслушать ответы класса, чтобы узнать кто из учеников уже разбирается в этой теме. Отметить правильные ответы и, резюмировав их, перейти к объяснению нового материала. Рассказав классу о природе электродвижущей силы дать ученикам представление о значении терминов: ● Разность потенциалов ● Проводник ● Диэлектрик ● Электрический ток ● Сопротивление ● Величина тока. Для мотивации и актуализации внимания класса предложить ученикам, которые разбираются в этой теме, самим дать определение этих понятий, скорректировав их ответы при необходимости. |
|
||||
| 3 | Закон Ома | Дать определение Закона Ома и вывести формулу. Объяснить значение её переменных. Для простоты применения формулы на практике продемонстрировать ученикам треугольник с формулой. Разобрать задачу с применением закона Ома. Спросить у класса есть ли у кого-то вопросы. |
|
||||
| 4 | I закон Кирхгофа | Познакомить класс с понятиями узлов и ветвей электрической схемы. Сформулировать I закон Кирхгофа (сумма токов, подходящих к узловой точке электрической цепи, равна сумме токов, уходящих от этого узла), привести примеры его применения. |
|
||||
| 5 | II закон Кирхгофа | Сформулировать II закон Кирхгофа (в замкнутом контуре электрической цепи сумма всех эдс равна сумме падения напряжения в сопротивлениях того же контура), приведя пример его формулы. Пояснить классу его значение и сферу применения этого закона. Убедиться, что у класса нет вопросов. |
|
||||
| 6 | Закон Джоуля-Ленца | Перед началом можно показать классу видео с экспериментом, демонстрирующим закон Джоуля-Ленца. Рассказать классу, почему в законе присутствуют имена двух ученых. Рассказать, как формулируется закон. Для более качественного понимания провести сравнения сопротивления тока с сопротивлением трения и выделяющегося при этом тепла. Разобрать задачу с применением закона Джоуля-Ленца. |
|
||||
| 7 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Задать контрольные вопросы по пройденному материалу. Предупредить класс, что на следующем занятии пройдёт практическое занятие. |
|
||||
| 8 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №3. Тема: «Теория пайки»
|
||||
**Цель урока:** Обучить теории пайки, дать представление об инструментах и методике
|
||||
пайки.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Сформулировать тему и цель урока. Постараться замотивировать учеников, акцентируя важность темы. Объяснить, что знания, которые они получат на этом уроке обязательно пригодятся им в дальнейшем на практических занятиях. |
|
||||
| 2 | Теория пайки | Перечислить основные технологические операции, которые происходят во время пайки. Пайка сводится к следующим технологическим операциям: ● Паяемые поверхности очищают от загрязнений, коррозионных корок и т.п. Зачищают до блеска, т.е. до отсутствия видимых следов окислов; ● Покрывают флюсом – веществом, удаляющим остатки окисла и не допускающим окисления поверхностей в дальнейшем процессе. Для флюсовки под лужение предпочтительно использовать не жидкие или твердые флюсы, а флюс-пасты; ● Затем поверхности лудят – наносят на них расплавленный припой (специально предназначенный для пайки сплав), он при этом растекается тонкой пленкой и химически соединяется с основным металлом; ● Детали предварительно соединяют механически: скруткой, сжатием пинцетом, пассатижами, в тисках, струбциной и пр. Наносят еще флюс, чтобы не допустить окисления припоя под нагревом;● Наносят с прогревом еще припой (возможно, уже другой) до получения спая заданного качества; ● Если пайка велась паяльником с луженым жалом, по ее окончании его очищают и покрывают неактивным флюсом. Чтобы пайки были качественными, обычный паяльник должен храниться с зафлюсованным жалом! Подробно описать процесс зачистки, лужения и пайки. Дать ученикам рассмотреть и подержать в руках паяльник,во время объяснения из чего он состоит. Рассказать об особенности подготовки и пайки проводов. Научить зачистке и скрутке проводов. Каждый ученик должен провести эту операцию самостоятельно. Спросить, есть ли у класса вопросы. |
|
||||
| 3 | Припои и флюсы | Рассказать о припоях и флюсах. Припои от ПОС-90 до Авиа-2 – мягкие для низкотемпературной пайки. Гарантированно обеспечивают только электрический контакт. ПОС-30 и ПОС-40 паяют медь, латунь, бронзу с неактивными флюсами, а их же со сталью и сталь со сталью – сактивными. ПОССр-15 можно паять оцинковку с неактивными флюсами; другие припои при этом разъедают цинк до стали и пайка скоро отваливается. 34А, МФ-1 и ПСр-25 припои твердые, для высокотемпературной пайки. Припоем 34А можно паять алюминий в пламени (см. далее, о пайке алюминия) со специальными флюсами, см. там же. Припоем МФ1 припаивают медь к стали с активированным флюсом. «Невысокие требования к прочности» в данном случае значит, что прочность спая ближе к прочности меди, чем стали. ПСр-25 при пайке сухим паяльником пригоден для пайки ювелирных изделий, витражей тиффани и т.п. Паяльные флюсы делятся на нейтральные (неактивные, бескислотные), химически с основным металлом не взаимодействующие или взаимодействующие в ничтожной степени, активированные, химически действующие на основной металл при нагреве, и активные (кислотные), действующие на него и холодными. В отношении флюсов наш век принес больше всего нововведений; большей частью все же хороших, но начнем с неприятных. Первое – технически чистого ацетона для промывки паек в широкой продаже больше нет вследствие того, что он используется в подпольном производстве наркотиков и сам обладает наркотическим действием. Заменители технического ацетона – растворители 646 и 647. Второе – хлористый цинк в активированных флюс-пастах часто заменяют тераборнокислым натрием – бурой. Соляная кислота – высокотоксичное химически агрессивное летучее вещество; хлорид цинка также токсичен, а при нагреве сублимирует, т.е. улетучивается не плавясь. Бура безопасна, но при нагреве выделяет большое количество кристаллизационной воды, что немного ухудшает качество пайки. Лучше, чтобы у в наличии были образцы припоев и флюсов, чтобы ученики смогли взять их в руки и рассмотреть.|
|
||||
| 4 | Виды пайки | Рассказать об основных видах пайки: ● Мелкая пайка ● Пайка радиоэлектронных компонент на печатную плату ● Микросхемы. Для более наглядного понимания технического процесса показать ученикам пайку микросхем, или продемонстрировать обучающее видео. |
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Задать контрольные вопросы по пройденному материалу. Если останется время рассказать классу о подставках для паяльников и основную технику безопасности. |
|
||||
| 6 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №4. Тема: «Аэродинамика полета. Пропеллер»
|
||||
|
||||
**Цель урока:** Сформировать знания основных принципов аэродинамики винтов. Дать
|
||||
представление о главных характеристиках винта, и их влияние на полетные качества
|
||||
коптера. Научить ориентироваться в технических таблицах по подбору винтов и
|
||||
моторов.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Аэродинамика пропеллера | Объяснить учащимся за счет чего образуется подъемная сила, которая позволяет коптеру совершать полет. Привести пример с воздушной подушкой.Раздать каждому ученику или на команду пропеллер и объяснить его строение. Показать видео со вращением пропеллера и его воздействием на воздушные потоки. Изучить схему вращения моторов квадрокоптера и позволить ученикам правильно разместить воздушные винты. |
|
||||
| 3 | Параметры пропеллеров | Показать пример пропеллеров разного диаметра и с различным количеством лопастей. Более крупные пропеллеры требуют большей мощности от мотора на свою раскрутку. Нужно убедиться, что мотор может развивать нужную мощность. Также, большие и тяжелые пропеллеры обладают большей инерцией, поэтому они не смогут мгновенно ускоряться, что отразится на маневренности коптера. Разобрать основные характеристики пропеллеров и предложить ученикам рассчитать, какие лучше использовать пропеллеры для 3 коптеров разных габаритов. Расчет и подбор воздушного винта к двигателю, а также к конкретному коптеру – сложная и тонкая задача. Исходными данными для подбора винтов для самодеятельных конструкторов обычно являются мощность двигателя Nдв (Вт), частота вращения воздушного винта ТВ (об/мин), максимальная скорость движения (полета) Vмакс (м/с). |
|
||||
| 4 | Тестирование воздушных винтов | Провести исследование влияния выбора пропеллеров. Провести летные испытания с использованием 3 типов пропеллеров: ● 2 лопастной большого диаметра ● 3 лопастной большого диаметра ● 3 лопастной малого диметра. Засечь время полета, скорость и подъемную силу (путем подъема дополнительного груза). |
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 6 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №5. Тема: «Основы электромагнетизма. Типы двигателей
|
||||
|
||||
**Цель урока:** сформировать теоретические знания по основным законам
|
||||
электромагнетизма. Дать представление о строении и функционале популярных
|
||||
моделей электромоторов. Актуализировать использование бесколлекторных
|
||||
двигателей при создании коптеров.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос по пройденным темам. Сформулировать тему и цель урока. Спросить, как, по их мнению, работают моторы и что заставляет их вращаться. |
|
||||
| 2 | Основные законы электро-магнетизма | Описать основные законы электромагнетизма и их формулировки: ● Закон Ампера (закон взаимодействия электрических токов. Впервые был установлен Андре ● Мари Ампером в 1820 для постоянного тока. Из закона Ампера следует, что параллельные проводники с электрическими токами, текущими в одном направлении, притягиваются, а в противоположных – отталкиваются) ● Закон Ома (физический закон, определяющий связь электродвижущей силы источника (или электрического напряжения) с силой тока, протекающего в проводнике, и сопротивлением проводника. Установлен Георгом Омом в 1826 году и назван в его честь) ● Закон Кулона (это закон, описывающий силы взаимодействия между неподвижными точечными электрическими зарядами). Привести примеры использования этих законов в повседневной жизни. Спросить, есть ли у класса вопросы. |
|
||||
| 3 | Типы двигателей | Показать классу (на фото и видео, если нет в наличии)популярные виды электродвигателей: ● Двигатель постоянного тока ● Универсальный коллекторный двигатель ● Асинхронный электродвигатель ● Синхронный электродвигатель. Коллекторные развивают меньшую скорость. Бесколлекторные двигатели способны развить большую скорость, а также более износостойкие. Попросить класс привести примеры, где они встречали данные типы двигателей. |
|
||||
| 4 | Сравнение двигателей | Дать наглядное сравнение коллекторных и бесколлекторных двигателей. Спросить учеников, какой двигатель будет правильно использовать на коптерах и почему. Спросить, есть ли у класса вопросы по пройденной теме. |
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 6 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №6. Тема: «Бесколлекторные двигатели и регуляторы их хода»
|
||||
|
||||
**Цель урока:** закрепить теоретические знания о строении и работе бесколлекторных
|
||||
электродвигателей. Сформировать знания о работе и настройке регуляторов хода,
|
||||
технике безопасности. Обучить решению проблем, возникающих в случае некорректной работы регуляторов.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос по пройденным темам. Сформулировать тему и цель урока. Сделать упор на то, какие типы двигателей и почему применяются в коптерах. |
|
||||
| 2 | Принцип работы бесколлекторного электродвигателя | Описать принцип работы бесколлекторного электродвигателя. Показать видео работы. Разобрать такие понятия как: ● Обмотка ● Ротор ● Статор ● Фаза (Трехфазные бесколлекторные двигатели приобрели наибольшее распространение. Но они могут быть и одно, двух, трех и более фазными. Чем больше фаз, тем более плавное вращение магнитного поля, но и сложнее система управления двигателем. 3-х фазная система наиболее оптимальна по соотношению эффективность/сложность, поэтому и получила столь широкое распространение). Попросить учеников объяснить, почему в бесколлекторных электродвигателях три фазных провода. При необходимости скорректировать ответы. |
|
||||
| 3 | Основные характеристики | Спросить у класса, какими характеристиками, по их мнению, должен обладать бесколлекторный электродвигатель. Рассказать о датчиках и контроллерах (регуляторах оборотов или ESC). Рассказать о функциях и характеристиках ESC: ● Максимальный постоянный ток (указывает, какой ток контроллер способен держать продолжительное время. Как правило, этот параметр входит в обозначение контроллера (например Jes -18, Phoenix -10). Иногда указывают величину "кратковременного" тока, допустимого в течении нескольких секунд) ● Максимальное рабочее напряжение (указывается, с каким количеством NiCd или литий-полимерных банок можно использовать контроллер. Для контроллеров с ВЕС-м, эта величина может быть разная, в зависимости от количества сервомашинок) ● Максимальные обороты (программное ограничение максимальных оборотов. Всегда указывается для двухполюсного двигателя. Для многополюсных моторов это число надо разделить на количество пар полюсов) ● Внутреннее сопротивление (полное сопротивление силовых ключей контроллера, без учета проводов. Чем мощнее контроллер, тем меньше его внутреннее сопротивление. Как правило, сопротивление проводов сравнимо с внутренним сопротивлением контроллера и вносит до 30% потерь) ● Частота импульсов контроллера (как правило, составляет 7- 8 Кгц. У "продвинутых" контроллеров частоту регулирования можно программировать на другие значения- 16 и 32 Кгц. Эти значения применяется в основном для высокооборотных 3-4-х витковых моторов с малой индуктивностью, при этом улучшается линейность регулирования частоты вращения). Спросить у учащихся, что осталось непонятным разобрать то, что оказалось сложным для восприятия еще раз. |
|
||||
| 4 | Применение | Дать каждому ученику или команде мотор и регулятор оборотов. Указать на основные ошибки при установке моторов на луч (использование слишком длинных винтов при установке, что приводит к повреждению обмотки). Разобрать каким образом мотор присоединяется к регулятору оборотов, а регулятор к полетному контроллеру и плате распределения питания.Рассказать про настройки, которыми обладает контроллер: ● Напряжение выключения мотора ● Тип выключения мотора ● Тормоз ● Опережение ● Режим старта ● Время акселерации или задержка акселерации ● Ограничение тока ● Режим газа ● Реверс Объяснить основные проблемы при использовании регуляторов оборотов и какие действия помогают их разрешить. |
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 6 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №7. Тема: «Принцип работы, типы и устройство аккумуляторов»
|
||||
|
||||
**Цель урока:** сформировать знания о принципе работы аккумуляторов. Сформировать и актуализировать знания о видах и специфике литий-полимерных аккумуляторах, техники безопасности.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Сформулировать тему и цель урока. Сформировать учебную мотивацию на занятии, отметив, что на уроке будет рассказан принцип работы с элементом питания, который в дальнейшем будет использоваться при сборке коптеров. |
|
||||
| 2 | Устройство аккумуляторов | Дать определение аккумулятора. Рассказать о сферах их применения. Продемонстрировать схему его устройства, процесс зарядки и разрядки аккумулятора. (Принцип работы аккумулятора: когда к электродам подключена нагрузка, например, лампочка, то создается замкнутая электрическая цепь, через которую протекает ток разряда. Он формируется движением электронов в металлических частях и анионов с катионами в электролите) |
|
||||
| 3 | Способы соединения аккумуляторов | Рассказать о правилах и особенностях при параллельном и последовательном соединении аккумуляторов. |
|
||||
| 4 | Аккумуляторы для коптеров | Рассказать о моделях аккумуляторов, которые применяются при сборке коптеров. Описать основные характеристики аккумуляторов: ● Ёмкость (Записывается в ампер-часах. Это такой ток который до полного разряда может выдавать аккумулятор в течении часа. Например, если емкость аккумулятора 3А/ч, то значит он может в течении одного часа выдавать ток 3А. При токе 1А его хватит на 3 часа, а при токе 30А он разрядится за 6 минут) ● Максимальный разрядный ток Указывается во сколько максимальный разрядный ток превышает емкость. Например значение «30-40C» для аккумулятора с емкостью 3А/ч означает, что он кратковременно может выдавать ток 90-120А. Естественно, при выборе аккумулятора необходимо руководствоваться меньшим значением. ● Напряжение (Зависит от количества «банок» или ячеек аккумулятора. Напряжение одной ячейки LiPo аккумулятора составляет порядка 3,7В. Соответственно, чем больше ячеек, тем больше напряжение. Соединяя аккумуляторы последовательно можно набрать достаточно большое напряжение, как это делают, например, в электровелосипедах). Раздать всем учащимся или на команду аккумуляторы. Попросить измерить напряжение на одном аккумуляторе, а также на аккумуляторах соединенных последовательно и параллельно. Попросить сделать выводы о величине напряжения при различных способах их соединения. Скорректировать их при необходимости. |
|
||||
| 5 | Зарядка аккумулятора | Рассказать о правилах зарядки LiPo аккумуляторов, и необходимых для этого устройствах. Показать, как поставить аккумулятор на зарядку. Попросить каждого ученика проделать это. |
|
||||
| 6 | Применение аккумуляторов | Рассказать о непосредственном применении аккумулятора в сборке коптера. Продемонстрировать классу установленный на коптере аккумулятор. Показать устройство его подключения к плате распределения энергии. (Для подключения аккумуляторов используют специальные коннекторы. Диаметр пистонов в них 4мм и они дополнительно подпружинены для обеспечения большой площади контакта. Еще для подключения используют специальные провода в силиконовой изоляции, которая способна выдерживать высокие температуры). |
|
||||
| 7 | Техника безопасности | Рассказать о правилах эксплуатации и хранения аккумуляторов, и последствия, к которым может привести нарушение техники безопасности. Показать видео, демонстрирующие последствия механического повреждения аккумулятора . |
|
||||
| 8 | Заключение | Провести тест по пройденным темам. Подвести итоги занятия. Спросить, есть ли у класса вопросы. Задать контрольные вопросы. |
|
||||
| 9 | Резервное время | Если останется время, показать классу видео, более подробно демонстрирующее процесс зарядки аккумулятора. |
|
||||
|
||||
## Урок №8. Тема: «Управление полетом мультикоптера. Принцип функционирования полетного контроллера. ПИД регуляторы»
|
||||
|
||||
**Цель урока:** Закрепить знания о принципе управления коптером. Сформировать
|
||||
знания о особенностях работы полетного контроллера и ПИД регулятора. Дать
|
||||
представление о принципах расчётов ПИД-регуляторов.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Сформулировать тему и цель урока. Повторяя пройденный материал, спросить у учеников по какому принципу вращения винтов происходит полет коптера и изменение его движения, какую роль занимает полетный контроллер. |
|
||||
| 2 | Принцип функционирования полетного контроллера | Напомнить ученикам еще раз назначение и функции полетного контроллера. Перечислить его основные задачи: ● Собирает информацию с датчиков (встроенные, либо внешние: гироскопы, акселерометры, GPS, магнитометр); ● Рассчитывает свое положение в пространстве, по показаниям датчиков; ● Собирает информацию о внешних воздействиях, таких как отклонения стиков пилотом, алгоритм программы; ● Вносит корректировку с помощью коэффициентов ПИД (Пропорционально-Интегрально- Дифференциальные); ● Отправляет управляющие сигналы на регуляторы оборотов (ESC). Рассказать подробнее о связи полетного контроллера с ESC. |
|
||||
| 3 | ПИД-регуляторы | Расскажите о функциях ПИД регулятора.(При работе с мультикоптерами, вам придется столкнуться с настройкой ПИД-регулятора, этот математический аппарат применяется почти во всех задачах стабилизации: стабилизация углов квадрокоптера в воздухе, полет и удержание позиции по GPS, удержание высоты по барометру). По порядку объясните математические расчёты по которым происходит контроль над полетом коптера. Привести примеры сайтов, на которых можно рассчитать ПИДы для конкретной системы. Научить этим пользоваться. Спросить у класса, есть ли вопросы.|
|
||||
| 4 | Заключение | Подвести итоги. Задать контрольные вопросы. Наверняка у многих учеников появятся вопросы после этого урока. Показать или предложить ученикам самостоятельно посмотреть видео, объясняющее простым языком функционирование ПИД-регулятора. |
|
||||
| 5 | Резервное время | Если останется время, показать видео полета коптера с плохо настроенными пидами. Предложить ребятам подумать, каким образом это можно исправить. |
|
||||
|
||||
## Урок №9. Тема: «Основы радиосвязи. Принцип работы радиоаппаратуры управления»
|
||||
|
||||
**Цель урока:** Дать представление об основах радиосвязи, работе передатчика и
|
||||
приёмника сигнала. Ввести в терминологию модуляции сигналов.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Сформулировать тему и цель урока. Провести тестирование по пройденным темам. |
|
||||
| 2 | Основы радиосвязи | Дать определение понятию «Радиосвязь».(Радиосвязь - наиболее распространенный способ передачи информации на расстояние. Сотовые телефоны, спутниковая связь, телевидение - все это работает на основе передачи сигналов через электромагнитные колебания определенной частоты). Спросить класс, где в повседневной жизни они могут наблюдать применение радиосвязи. Рассказать по какому принципу происходит передача сигнала от передатчика к приемнику. |
|
||||
| 3 | Принцип работы радиоаппаратуры управления | Рассказать о принципе работы передатчика и приёмника (Аппаратура радиоуправления состоит из передатчика, который находится у пилота, и размещенных на модели приемника и полетного контроллера, который и управляет квадрокоптером через регуляторы мощности). Продемонстрировать схему взаимодействия передатчика и приемника в устройстве коптера. Спросить учеников, есть ли у них вопросы по этой схеме. |
|
||||
| 4 | Передатчик | Рассказать о видах пультов управления. (Различают 2 основных вида пультов - джойстиковые и пистолетные. Для квадрокоптеров используют джойстиковый пульт). Продемонстрируйте схему модуляции PPM сигнала. Показать настройки PPM (РРМ сигнал имеет фиксированную длину периода Т=20мс. Это означает, что информация о положениях ручек управления на передатчике попадает на модель 50 раз в секунду, что определяет быстродействие аппаратуры управления. Как правило, этого хватает, поскольку скорость реакции пилота на поведение модели намного меньше. Все каналы пронумерованы и передаются по порядку номеров. Значение сигнала в канале определяется величиною временного промежутка между первым и вторым импульсом - для первого канала, между вторым и третьим - для второго канала и т.д.) и PWM - шим импульс (Для квадрокоптеров минимальное количество каналов - 4: управление газом, угол крена, угол тангажа, угол рысканья. Положение каждого из стиков пульта кодируется при помощи ШИМ импульса) на пульте радиоуправления. |
|
||||
| 5 | Приёмник | Дать определение приемнику. (Устройство, служащее для осуществления радиоприема, т.е . для выделения сигналов из радиоизлучения. Приёмник устанавливается на квадрокоптере, принимает сигнал с пульта и передаёт его в полетный контроллер) Продемонстрировать схему работы приёмника, рассмотреть конкретный пример. |
|
||||
| 6 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 7 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №10. Тема: «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики и приемники»
|
||||
|
||||
**Цель урока:** Дать представление о принципах работы видеосвязи. Раскрыть основы
|
||||
работы аналоговой и цифровой видеосъемки. Сформировать знания применение
|
||||
съёмки на беспилотных летательных аппаратах.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Видеокамеры аналогового типа | Рассказать об истории аналоговых камер и сфере их применения. |
|
||||
| 3 | Работа аналоговых видеокамер | Продемонстрировать классу схему устройства аналоговой камеры, описать принцип ее работы.(Световой поток, проходя сквозь линзы объектива, попадает на матрицу ПЗС, где он преобразуется в видеосигнал). Попросить учеников зафиксировать основные элементы схемы и запомнить её. |
|
||||
| 4 | Видеокамеры цифрового типа | Рассказать о появлении цифровых камер и области их использования. |
|
||||
| 5 | Работа цифровых видеокамер | Продемонстрировать классу схему устройства цифровой видеокамеры, описать принцип ее работы (световой поток, отраженный от предметов попадает на чувствительную к свету матрицу устройства, которая преобразует его, но уже в сигнал электрический. Далее этот электрический сигнал, посредством процессора IP камеры обрабатывается, и лишь тогда кабелем «витая пара» или «коаксиальным кабелем», а возможно и средствами беспроводной связи (Wi – Fi), обработанный видеосигнал поступает на вход цифрового видеорегистратора). Попросить класс зафиксировать и запомнить её. |
|
||||
| 6 | Дальность полёта | Рассказать классу о дальности полета коптера при использовании камеры. Перечислить особенности, на которые надо обратить внимание: ● Дальность передачи видеосигнала зависит от количества помех в зоне полета ● Разные системы передачи сигнала имеют различную способность огибать препятствия ● Дальность ограничивается лишь емкостью батареи, но для реализации всего потенциала современных технологий необходима наземная станция. ● Моделью довольно сложно управлять по камере. Так или иначе вы будете зависеть от погоды. Спросить у учеников, какие, по их мнению, еще трудности могут возникнуть. |
|
||||
| 7 | Качество изображения | Рассказать о характеристиках современных камер. Продемонстрировать классу несколько видео с установленной на коптер камеры. |
|
||||
| 8 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 9 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №11. Тема: «Техника безопасности при сборке и настройке коптеров, при подготовке к вылету. Техника безопасности при работе с аккумуляторами»
|
||||
|
||||
**Цель урока:** Дать учащимся понимание основных правил техники безопасности при конструировании и эксплуатации коптеров и почему их следует соблюдать.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Безопасность при работе с Li-Po аккумуляторами | Рассказать правила техники безопасности при работе с Li-Po аккумуляторами: ● Обращаться с аккумуляторами бережно. Не допускать падений, ударов деформаций. ● При подключении (отключении) аккумуляторов держаться только за разъёмы, тянуть или дергать за провода запрещается. ● В случае обрыва разъемов, обнаружения целостности изоляции или корпуса аккумулятора, не трогая его, немедленно сообщить преподавателю. Объяснить почему происходят возгорания аккумуляторов. Подкрепить рассказ показом видеороликов. |
|
||||
| 3 | Техника безопасности при работе с паяльником | Вместе с учащимися вывести список правил, которые следует выполнять в лаборатории и во время пайки: ● Следите за тем, чтобы нагретая часть паяльника не прикасалась в ходе пайки к электрическому проводу. Жало обладает очень высокой температурой, поэтому изоляция будет повреждена в считанные мгновения. Дальше последует короткое замыкание. ● Перед началом работы проверьте целостность проводки и штепсельной вилки. Повреждения могут привести к тому, что ток замкнет непосредственно на вас. ● При работе с горячим паяльником необходимо использовать подставку. Ее обычно изготавливают из деревянного бруска и металлических держателей. Так вы сможете безопасно расположить инструмент и не бояться, что он упадет на горючие материалы. ● Как канифоль, так и сам припой при плавлении выделяют большое количество вредных веществ. Работать в респираторе вас никто не принуждает, но проветривать помещение после каждой пайки просто жизненно необходимо. Через каждые 30 минут делайте небольшие перерывы со сквозным проветриванием помещения и не забудьте при этом отключать паяльник. ● Держите паяльник только за ручку. Проследить, чтобы учащиеся записали их в тетрадь и предупредить, что чтобы допуститься до пайки, каждый должен будет отчитаться по этим правилам. |
|
||||
| 4 | Техника безопасности в аудитории | Рассказать правила техники безопасности и поведения в аудитории: ● Не бегать рядом с рабочими столами ● Вешать сумки на ручку кресла (а лучше вообще убрать в шкаф или оставить в другой части аудитории) ● Не трогать оборудование (резак, 3д принтер) без преподавателя● Не вставлять пальцы и другие части тела и вещи в розетку ● Еда, вода только на перемене (или по разрешению преподавателя) ● Брать в руки демонстрационные дроны, пульты и так далее только с разрешения преподавателя Назначить ответственного за соблюдением ТБ в классе. |
|
||||
| 5 | Правила техники безопасности при летной эксплуатации коптеров | Рассказать что включает в себя предполетная подготовка. Раздать листы предполетной подготовки каждому учащемуся или на команду и дать возможность учащимся полностью провести предполетную подготовку с занесением отметок о выполнении в лист предполетной подготовки. Правила ТБ при подготовке к полетам: ● Убедиться, что Li-Po аккумуляторы заряжены. ● Убедиться, что аккумуляторы или батарейки в аппаратуре управления заряжены. ● Устанавливать пропеллеры только перед вылетом. ● Проверить надёжность следующих узлов: Затянутость гаек пропеллеров. Крепление и целостность защит винтов. Надежность крепления проводов Отсутствие болтающихся проводов. ● Подключать Li-Po аккумулятор только перед вылетом. ● Располагать зрителей за спиной пилота или за линией, проходящей через оба плеча пилота за спиной пилота. ● Не допускать выхода зрителей в полусферу перед лицом пилота. ● Знать и помнить время полёта, на которое рассчитан данный коптер и его ● аккумулятор. ● ДО подключения Li-Po аккумулятора включить аппаратуру управления ● (пульт), перевести стик газа в нулевое положение. ● Подключать Li-Po аккумулятор только перед взлётом, отключать сразу после взлёта. ● Стоять на расстоянии не менее 3 м от коптера. ● Взлетать с земли с ровной площадки, на расстоянии не менее 3 метров от препятствий. |
|
||||
| 6 | Безопасность в полете | Вместе с учащимися вывести правила техники безопасности в полете. ● Выполнять все указания преподавателя или лётного инструктора. ● Заранее обозначить зону пилотажа. Летать только в обозначенной зоне и не допускать вылета за её пределы. Не залетать за собственную спину. ● При обучении полётам летать на уровне ниже собственного роста. ● Летать рядом с собой на расстоянии, на котором вам видна ориентация коптера в пространстве. Не улетать далеко от себя. В случае сомнений в ориентации коптера немедленно выполнить посадку на месте. Не пытаться взлететь. Подойти ближе к коптеру и выполнить взлёт. ● При управлении все движения стиками выполнять аккуратно и плавно. Не допускать резких движений. При необходимости изменить направление полёта двигать стиками следует энергично, но не резко. ● Летать следует осторожно и выполнять только те элементы, в которых нет сомнений. Запрещается выполнять фигуры пилотажа, в успехе которых возникают сомнения и фигуры, связанные с риском. ● Соблюдать скоростной режим. Скорость полета коптера держать в пределах скорости идущего человека. ● Вернуть коптер к месту посадки к рассчитанному времени, не допускать полной разрядки аккумулятора в полёте. ● Посадку выполнять только на ровную открытую площадку вдали от препятствий. Проследить, чтобы учащиеся записали правила в тетрадь.Предупредить, что допуск к полетам будет даваться только после сдачи правил техники безопасности. |
|
||||
| 7 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 8 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №12. Тема: «Теория ручного визуального пилотирования»
|
||||
**Цель урока:** Сформировать представление у учащегося о принципах визуального пилотирования. Разобрать принципы управления коптером с помощью пульта радиоуправления.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Предполетная подготовка | Дать задание каждому учащемуся или команде провести предполетную подготовку и поставить отметки в листе предполетной подготовки. |
|
||||
| 3 | Базовые процедуры | Проверить, чтобы на всех коптерах были сняты пропеллеры. Рассказать о том, как выполнить биндинг пульта, арм, дизарм, kill switch. Проделать это несколько раз вместе с учащимися. Спросить, есть ли у учащихся вопросы. Под запись: ● Arm (англ. - “вооружить”) – разблокировать моторы коптера, перевести коптера в “боевое” состояние, после чего коптер начинает реагировать на движения стика газа. На коптере Clever (при настройках “по умолчанию”) арминг выполняется наклоном стика Yaw вправо до края, при минимальном газе, в течение 3 секунд. ● Disarm (англ. - “разоружить”) – заблокировать моторы коптера, после чего коптер перестает реагировать на движения стика газа. На коптере Clever (при настройках “по умолчанию”) выполняется наклоном стика Yaw влево до края, при минимальном газе, в течение 3 секунд. ● Процедура включения – последовательность действий после установки коптера на взлетную площадку перед взлетом. ● Визуальное пилотирование - тип пилотирования, при котором коптер находится в зоне прямой видимости ● FPV (англ. - “вид от первого лица”) - полет по камере, вид от первого лица - тип пилотирования, при котором управление коптером осуществляется по дополнительному видео-радиоканалу с передачей изображения с камеры, установленной на борту коптера. |
|
||||
| 4 | Пульт управления | Разобрать основные принципы управления коптером с пульта (газ, рыскание, крен, тангаж). Рассказать о полетных режимах и о том, как их менять на пульте. Пройтись по меню настроек пульта. |
|
||||
| 5 | Подготовка к пилотированию | Полеты в симуляторе: каждый учащийся летает в симуляторе, привыкая к управлению коптером. Полет производится в режиме Stabilize в режиме визуального пилотирования (не FPV). |
|
||||
| 6 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 7 | Резервное время | Показать видео, где БПЛА выполняют различные трюки. |
|
||||
|
||||
## Урок №13. Тема: «Техника безопасности при летной эксплуатации коптера»
|
||||
|
||||
**Цель урока:** Сформировать у учащегося понимание опасности коптеров и заложить основы правильного поведения при летной эксплуатации коптера.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Предполетная подготовка | Дать задание каждому учащемуся или команде провести предполетную подготовку и поставить отметки в листе предполетной подготовки. Чеклист включает в себя следующие пункты: 1. Провода аккумулятора уложены так, что, будучи подключенными, не помещают полётам. 2. Вращению пропеллеров ничего не мешает. 3. Защиты пропеллеров целы и закреплены. 4. Проверить дальность видеопередатчика и обозначить как полетную зону 5. Все присутствующие люди находятся за спиной. На расстоянии 10 метров спереди и сбоку нет людей. |
|
||||
| 3 | Полетная зона | Вместе с учащимися проводится осмотр и подготовка полетной зоны. Провести зачет по технике безопасности при полетах и предполетной подготовке. Показать примеры полетов с объяснениями по способам пилотирования. Показать как действовать в аварийных ситуациях и при поломках. Смоделировать такие ситуации и проверить, как дети поведут себя в таких ситуациях. Скорректировать их действия при необходимости. |
|
||||
| 4 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 5 | Резервное время | Показать видео и рассказать классу интересные факты по пройденной теме, не вошедшие в программу. |
|
||||
|
||||
## Урок №14. Тема: «Обучение лётному мастерству»
|
||||
|
||||
**Цель урока:** Развить навыки визуального пилотирования.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Сформулировать тему и цель урока. Провести тестирование по пройденным темам. |
|
||||
| 2 | Взлет / посадка. | Провести летные испытания коптера. Каждый учащийся выполняет не менее 5 взлетов - посадок, стараясь совершить посадку как можно мягче. |
|
||||
| 3 | Висение | Учащийся должен научиться зависать над точкой не менее чем на 10 секунд хвостом к себе. (Упражнение 1. Висение хвостом к себе. Выполняется на уровне колен над центральным перекрестием зоны полётов). |
|
||||
| 4 | Полеты вперед / назад | Выполнение упражнения “полеты вперед - назад по прямой хвостом к себе” не менее 5 раз |
|
||||
| 5 | Полет по кругу | Выполнение упражнения “полет по кругу хвостом к себе” не менее 5 раз |
|
||||
| 6 | Висение боком | Учащийся должен научиться зависать над точкой не менее чем на 10 секунд боком к себе. |
|
||||
| 7 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 8 | Резервное время | Показать видео, где БПЛА выполняют различные трюки. Разобраться, каким образом их можно выполнить. |
|
||||
|
||||
## Урок №15. Тема: «Основы радиоэлектроники, схемотехники и макетирования электрических схем»
|
||||
|
||||
**Цель урока:** Сформировать у учащегося представление о том, как работают различные платы, схемы и из каких элементов они состоят. Научить составлять принципиальные электрические схемы.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос по пройденным темам. Сформулировать тему и цель урока. Сделать упор на то, что знание основ радиоэлектроники поможет учащимся усовершенствовать свой летательный аппарат, путем подключения датчиков и светодиодов / светодиодных лент. |
|
||||
| 2 | Электричество | Дать под запись основные определения, касающиеся разделов радиоэлектроника и схемотехника. ● Электричество (природное явление, подтверждающее существование, взаимодействие и движение электрических зарядов. Электричество впервые было обнаружено еще в VII веке до н.э. греческим философом Фалесом) ● Электрон (элементарная частица, имеет отрицательный заряд примерно равный -1,602·10-19 Кл (Кулон). Обозначается “е”) ● Напряжение ● Электрический ток (это физический процесс направленного движения заряженных частиц под действием электромагнитного поля от одного полюса замкнутой электрической цепи к другому. В качестве частиц, переносящих заряд, могут выступать электроны, протоны, ионы и дырки) ● Проводник ● Электрическое сопротивление (физическая величина, определяющая свойство проводника препятствовать (сопротивляться) прохождению тока. Единица измерения сопротивления – Ом) ● Сила тока ● Электронная схема (это сочетание отдельных электронных компонентов, таких как резисторы, конденсаторы, индуктивности, диоды, транзисторы и интегральные микросхемы, соединённых между собой) ● Типы плат Каждое понятие подкреплять коротким видеороликом. Спросить у учащихся, что осталось непонятным. |
|
||||
| 3 | Закон Ома | Прорешать несколько простых задач на закон Ома (от 3 до 5). Раздать каждому учащемуся подобную задачу на самостоятельное решение. Объяснить что такое последовательное и параллельное соединение. |
|
||||
| 4 | Электронные компоненты | Раздать учащимся электронные компоненты и дать перерисовать обозначения этих компонентов. Учащиеся самостоятельно или в командах собирают схемы: ● Последовательное и параллельное подключение светодиодов на макетной плате ● Светодиод с кнопкой на макетной плате ● Светодиод с переменным резистором на макетной плате. К каждому опыту зарисовать схему подключения. |
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить учащимся решить простую задачу на закон Ома. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 6 | Резервное время | Показать примеры интересных схем. Предложить учащимся собрать одну из понравившихся схем дома. |
|
||||
|
||||
## Урок №16. Тема: «Основы работы с аналоговым и цифровым сигналом»
|
||||
|
||||
**Цель урока:** сформировать у учащихся понимание типов хранения передачи видео, их достоинств и недостатков друг перед другом.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Сигналы | Спросить у учащихся как они понимают определение “сигнал”. Скорректировать их ответы и дать под запись правильное определение. Зарисовать графики цифрового и аналогового сигнала. |
|
||||
| 3 | Аналоговые сигналы | Объяснить что такое аналоговый сигнал, как выглядит и каким образом передается. Дать определение аналогового сигнала под запись. (Носитель информации, используемый для передачи сообщений в системе связи. Сигнал может генерироваться, но его приём не обязателен, в отличие от сообщения, которое рассчитано на принятие принимающей стороной, иначе оно не является сообщением. Сигналом может быть любой физический процесс, параметры которого изменяются (или находятся) в соответствии с передаваемым сообщением). Выделить основные достоинства и недостатки данного вида сигнала. Дать определение АЦП. (Аналого-цифровой преобразователь (АЦП, англ. Analog-to-digital converter, ADC) – устройство, преобразующее входной аналоговый сигнал в цифровой сигнал. Аналоговый сигнал является непрерывной функцией времени, в АЦП он преобразуется в последовательность цифровых значений) |
|
||||
| 4 | Цифровые сигналы | Объяснить что такое цифровой сигнал, как выглядит и каким образом передается. Дать определение цифрового сигнала под запись. (Сигнал, который можно представить в виде последовательности цифровых значений. В наше время наиболее распространены двоичные цифровые сигналы (битовый поток) в связи с простотой кодирования и используемостью в двоичной электронике. Для передачи цифрового сигнала по аналоговым каналам (например, электрическим или радиоканалам) используются различные виды манипуляции (модуляции)). Выделить основные достоинства и недостатки данного вида сигнала.|
|
||||
| 5 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 6 | Резервное время | Разобрать схемы передачи цифрового и аналогового видео. |
|
||||
|
||||
## Урок №17. Тема: «Основы работы с лабораторным оборудованием»
|
||||
|
||||
**Цель урока:** выработать понимание и навыки работы с лабораторным оборудованием.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Мультиметр | Под запись дать определение мультиметра. (Универсальный комбинированный измерительный прибор, который сочетает в себе функции нескольких измерительных приборов, то есть может измерять целый диапазон электрических величин). Рассказать об основных режимах работы и правилах установления верхней границы измерений. Попросить учащихся измерить различные характеристики трех типов аккумуляторов или батареек, если есть возможность. Объяснить как обнаружить короткое замыкание или разрыв в цепи при помощи мультиметра. |
|
||||
| 3 | Осциллограф | Дать определение осциллографа и способов его применение. (Прибор, показывающий форму напряжения во времени. Также он позволяет измерять ряд параметров сигнала, такие как напряжение, ток, частота, угол сдвига фаз. Но главная польза от осциллографа – возможность наблюдения формы сигнала. Во многих случаях именно форма сигнала позволяет определить, что именно происходит в цепи ). Показать работу прибора на видео или на практике, если есть такая возможность. |
|
||||
| 4 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Сообщить ученикам, какую тему они будут проходить на следующем занятии.|
|
||||
| 5 | Резервное время | Предложить учащимся измерить сопротивление предметов, находящихся под рукой и сделать выводы о сопротивлении различных материалов. |
|
||||
|
||||
## Урок №18. Тема: «Теория FPV полетов»
|
||||
|
||||
**Цель урока:** Развить навыки FPV пилотирования.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Подключение FPV | Провести подключение и настройку оборудования для FPV полета. Провести предполетную подготовку коптера. Повторить правила техники безопасности при полетах. Уточнить особенности управления при FPV полетах. |
|
||||
| 3 | Полеты в симуляторе | Каждый учащийся не менее 20 мин летает в режиме FPV в симуляторе, после чего допускается до полета на настоящем коптере. |
|
||||
| 4 | Полеты вперед / назад | Выполнение упражнения “полеты вперед - назад по прямой хвостом к себе” не менее 5 раз |
|
||||
| 5 | Полет по кругу | Выполнение упражнения “полет по кругу хвостом к себе” не менее 5 раз |
|
||||
| 6 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 7 | Резервное время | Показать видео, где БПЛА выполняют различные трюки в FPV режиме или транслирует красивые пейзажи с высоты. |
|
||||
|
||||
## Урок №19. Тема: «История автономных полетов. Развитие автопилотов в авиации»
|
||||
|
||||
**Цель урока:** сформировать понимание у учащихся что такое автономные системы, какими они могут быть и что требуется для их создания.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. |
|
||||
| 2 | Первые автономные системы | Рассказать учащимся что такое автономные системы и автопилоты. (Автопилот – это устройство или программно-аппаратный комплекс, который может вести вверенное ему транспортное средство по заданной траектории). Привести примеры первых автономных систем: ● Тележка Леонардо да Винчи ● Торпеды Александровского и Уайтхеда ● Ракета «Фау-2» Стэнфордская тележка. Объяснить, с помощью чего автопилот может ориентироваться в пространстве. Попросить учащихся привести примеры знакомых им современных автономных устройств и систем. |
|
||||
| 3 | Деловая игра | Попросить учащихся продумать концепт автономного БПЛА, который будет включать в себя описание: ● Применения этого устройства ● Способа и устройства навигации ● Используемого оборудования ● Технических характеристик ● Социальной значимости ● Себестоимости. Каждый учащийся или команда защищает свой проект перед классом, остальные учащиеся задают вопросы и пытаются скорректировать идею. По завершении анонимным голосованием выбирается лучший проект. |
|
||||
| 4 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 5 | Резервное время | Рассказать про интересные способы применения автономных БПЛА. Показать видео. |
|
||||
|
||||
## Урок №20. Тема: «Основы программирование на языке Python»
|
||||
|
||||
**Цель урока:** разобрать основы синтаксиса языка Python. Выработать навыки написания простейших программ.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. Сделать упор на то, что программирование является неотъемлемой частью работы любого современного инженера и создание автономных коптеров является популярной задачей настоящих разработчиков крупных компаний. |
|
||||
| 2 | Введение в Python | Рассказать про типы языков, а именно расшифровать понятия: ● Объектно-ориентированный язык ● Язык программирования высокого уровня ● Язык программирования низкого уровня ● Компилируемый язык ● Интерпретируемый язык. Рассказать, к каким типам относится язык Python. Привести примеры программ и систем, которые можно написать на языке Python. Объяснить зачем нужны библиотеки. (В составе Python поставляется большое число собранных и переносимых функциональных возможностей, известных как стандартная библиотека. Эта библиотека предоставляет Вам массу возможностей, востребованных в прикладных программах, начиная от поиска текста по шаблону и заканчивая сетевыми функциями. Python допускает расширение как за счет ваших собственных библиотек, так и за счёт библиотек, созданных другими разработчиками). Привести примеры библиотек в языке Python (например, math, позволяющая производить сложные математические операции). Спросить у учащихся, какие появились вопросы, их должно быть достаточно. Объяснить что такое блок-схемы. Научить ребят их строить. |
|
||||
| 3 | Условная инструкция if-elif-else | Рассказать про важность отступов в питоне. Дать под запись синтаксис конструкции. Привести пример небольшой программы с использованием этой конструкции. Запустить программу на исполнение. Нарисовать блок-схему программы.|
|
||||
| 4 | Цикл for | Дать под запись синтаксис конструкции. Привести пример небольшой программы с использованием этой конструкции. Запустить программу на исполнение.Нарисовать блок-схему программы. |
|
||||
| 5 | Цикл while | Дать под запись синтаксис конструкции. Привести пример небольшой программы с использованием этой конструкции. апустить программу на исполнение.Нарисовать блок-схему программы.|
|
||||
| 6 | Операторы break и continue | Дать под запись синтаксис конструкции. Привести пример небольшой программы с использованием этой котрукции. Запустить программу на исполнение. Нарисовать блок-схему программы. |
|
||||
| 7 | Программирование | Дать несколько простых задач, требующих использования минимум двух конструкций языка. Попросить учащихся написать программу для их решения. Проверить и скорректировать программу вместе с обучающимся. |
|
||||
| 8 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы. Спросить, что из изученного на занятии было для них интереснее всего. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 9 | Резервное время | Привести примеры популярных программ и систем, написанных на языке Python. |
|
||||
|
||||
## Урок №21. Тема: «Знакомство с компьютером Raspberry Pi»
|
||||
|
||||
**Цель урока:** дать понимание о способах применения микрокомпьютеров на примере Raspberry Pi 3. Обучить взаимодействию с unix-подобными системами.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. Рассказать о типах компьютеров, сделав упор на применение микрокомпьютеров. |
|
||||
| 2 | Знакомство с Raspberry Pi 3 | Дать под запись основные характеристики микрокомпьютера Raspberry Pi 3: − Вес – 45 грамм, − тактовая частота 700 МГц; − есть графическое ядро в процессоре Broadcom BCM2835; − оперативная память – 512 Мб; − есть USB -разъемы (один или два в зависимости от модели). Рассказать о сферах применения микрокомпьютеров, показать видео готовых проектов, использующих Raspberry Pi 3. Попросить учащихся придумать системы, в которых было бы актуальным применение Raspberry Pi 3. |
|
||||
| 3 | Первое подключение Raspberry Pi 3 | Установить микрокомпьютер и камеру на коптер. Провести подключение к полетному контроллеру с помощью USB или по UART. Обучить ребят записывать образ ОС на microSD. Подключиться к Raspberry по Wi-Fi. Рассказать об SSH и существующих SSH клиентах. |
|
||||
| 4 | Использование ОС Raspbian | Объяснить что такое командная строка и как ей пользоваться. Дать под запись основные команды и примеры их использования: ● ls ● cd ● nano ● mv ● mkdir ● rm. Дать задания, требующие использования этих команд (просмотр файлов в каталоге, переименования файла, переноса файла, создание нового файла и т.п.) |
|
||||
| 5 | Меняем SSID | Рассказать, что такое SSID. Научить изменять имя wi-fi сети. Объяснить что такое демоны и в какой момент они запускаются. Проработать с конфигурацией одного из них. |
|
||||
| 6 | Используем права суперпользователя | Рассказать о типах и правах пользователей системы. Показать примеры использования sudo. |
|
||||
| 7 | Подготовка коптера к автономным полетам | Проверить подключенное оборудование для автономных полетов. Убедиться в работоспособности подключения можно выполнив на Raspberry Pi: rostopic echo /mavros/state |
|
||||
| 8 | Использование QGroundControl через Wi-Fi | Настроить беспроводное соединение для работы с PixHawk в QGroundControl. Предложить учащимся установить новую прошивку, которая подходит для автономных полетов и откалибровать коптер при беспроводном подключении. |
|
||||
| 9 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы, их должно быть много, нужно заранее продумать ответы на них. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии.|
|
||||
| 10 | | |
|
||||
|
||||
## Урок №22. Тема: «Управление автономным дроном: теория»
|
||||
|
||||
**Цель урока:** дать понимание способов программирования автономного коптера. Сформировать навыки написания кода на языке python и закрепить навыки по использованию unix-подобных систем.
|
||||
|
||||
| № | Этап урока | Содержание |
|
||||
| -- |:---------------------------------| :----------------------------------|
|
||||
| 1 | Введение | Поприветствовать учеников. Провести опрос или тестирование по пройденным темам. Сформулировать тему и цель урока. Сделать упор на то, что на занятии будет решаться задача написания программы для настоящего автономного полета. |
|
||||
| 2 | Системы координат | Рассказать про локальную и глобальную систему координат. Объяснить почему ориентации по локальной системе координат недостаточно. Рассказать о дополнительных системах координат, которые появляются благодаря получению дополнительной информации с камеры и внешних датчиков. |
|
||||
| 3 | Включение и использование камеры | Необходимо попросить учащихся убедиться, что в launch-файле Клевера (~/catkin_ws/src/clever/clever/clever.launch) включен запуск aruco_pose и нижней камеры для компьютерного зрения: <arg name="bottom_camera" default="true"/> <arg name="aruco" default="true"/> При изменении launch-файла необходимо перезапустить пакет clever: sudo systemctl restart clever Проверить видео, полученное с камеры перейдя по адресу http://192.168.11.1:8080/. |
|
||||
| 4 | Распознавание меток | Рассказать каким образом распознаются метки и как они образуют систему координат. Спросить у учащихся есть ли вопросы на текущий момент. |
|
||||
| 5 | Программирование и автономный полет | Предложить учащимся написать программу для взлета над меткой и посадки на нее. Рассказать о структуре программы, которая может выполнить эту задачу и привести пример кода с использованием функций: ● navigate, ● set_position ● set_velocity. Проверить и скорректировать программы, написанные учащимися. Рассказать, каким образом осуществляется перехват коптера в ручное управление. Протестировать написанные программы. |
|
||||
| 6 | Заключение | Подвести итоги занятия, спросить, есть ли у класса вопросы, их должно быть много, нужно заранее продумать ответы на них. Попросить учеников ответить на контрольные вопросы. Предложить ученикам по желанию провести в интернете дополнительное исследование на пройденную тему. Сообщить ученикам, какую тему они будут проходить на следующем занятии. |
|
||||
| 7 | Резервное время | Попросить учащихся написать программы для полета по интересным траекториям и протестировать их. |
|
||||
@@ -1,21 +1,15 @@
|
||||
# Образ для Raspberry Pi
|
||||
|
||||
## Установка образа операционной системы на MicroSD карту
|
||||
|
||||
Для установки образа воспользуйтесь утилитой [Etcher](https://etcher.io):
|
||||
|
||||
[
|
||||
](https://etcher.io)
|
||||
|
||||
## Образы
|
||||
|
||||
На образе установлены:
|
||||
|
||||
* Raspbian Stretch
|
||||
* ROS Kinetic
|
||||
* [Пакет ПО для Клевера](https://github.com/CopterExpress/clever_bundle)
|
||||
* [Пакет ПО для Клевера](https://github.com/CopterExpress/clever)
|
||||
|
||||
|Версия|Дата|Ссылка|Примечания|
|
||||
|-|-|-|-|
|
||||
|0.2|24.01.18|[Скачать](https://yadi.sk/d/n_Krnor03RkntU)|–|
|
||||
|0.1|15.12.17|[Скачать](https://drive.google.com/open?id=1Gtj_0iB7dFuorfUKAUUV8ImjmkZCkvc7)|–|
|
||||
**Свежую версию образа можно [скачать на GitHub в разделе Releases](https://github.com/CopterExpress/clever/releases).**
|
||||
|
||||
## Установка образа ОС на MicroSD карту
|
||||
|
||||
Для установки образа воспользуйтесь утилитой [Etcher](https://etcher.io).
|
||||
|
||||
[](https://etcher.io)
|
||||
|
||||
@@ -22,9 +22,9 @@ PX4
|
||||
|
||||
### С использованием дополнительных датчиков (ASSISTED)
|
||||
|
||||
* **ALTCTL** — управление скоростью изменения высоты полета, углами по тангажу и крену и угловой скоростью по рысканью. Используется барометр (или иной датчик высоты).
|
||||
* **ALTCTL** (ALTITUDE) — управление скоростью изменения высоты полета, углами по тангажу и крену и угловой скоростью по рысканью. Используется барометр (или иной датчик высоты).
|
||||
|
||||
* **POSCTL** — управление скоростями набора высоты, скоростью движения вперед/назад и вправо/влево, угловой скоростью по рысканью. Наиболее простой для полетов режим. Используется барометр, GPS, компьютерное зрение, другие датчики.
|
||||
* **POSCTL** (POSITION) — управление скоростями набора высоты, скоростью движения вперед/назад и вправо/влево, угловой скоростью по рысканью. Наиболее простой для полетов режим. Используется барометр, GPS, компьютерное зрение, другие датчики.
|
||||
|
||||
|
||||
### Автоматический полет (AUTO)
|
||||
|
||||
282
docs/network.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# Настройка Wi-Fi
|
||||
|
||||
Wi-Fi адаптер на Raspberry Pi имеет два основных режима работы:
|
||||
1. **Режим клиента** – RPi подключается к существующей Wi-Fi сети.
|
||||
2. **Режим точки доступа** – RPi создает Wi-Fi сеть, к которой вы можете подключиться.
|
||||
|
||||
При использовании [образа для RPi](microsd_images.md) по умолчанию Wi-Fi адаптер работает в режиме точки доступа.
|
||||
|
||||
## Инструкция для переключения адаптера в режим клиента
|
||||
|
||||
1\. Выключите службу `dnsmasq`.
|
||||
|
||||
```bash
|
||||
sudo systemctl stop dnsmasq
|
||||
sudo systemctl disable dnsmasq
|
||||
```
|
||||
|
||||
2\. Включите получение IP адреса на беспроводном интерфейсе DHCP клиентом.
|
||||
|
||||
Для этого удалите следующие строки
|
||||
|
||||
```
|
||||
interface wlan0
|
||||
static ip_address=192.168.11.1/24
|
||||
```
|
||||
|
||||
из файла `/etc/dhcpcd.conf` вручную или введите следующие команды.
|
||||
|
||||
```bash
|
||||
sudo sed -i 's/interface wlan0//' /etc/dhcpcd.conf
|
||||
sudo sed -i 's/static ip_address=192.168.11.1\/24//' /etc/dhcpcd.conf
|
||||
```
|
||||
|
||||
3\. Настройте `wpa_supplicant` для подключения к существующей точке доступа.
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
|
||||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||
update_config=1
|
||||
country=GB
|
||||
|
||||
network={
|
||||
ssid="CLEVER"
|
||||
psk="cleverwifi"
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
где `CLEVER` – название сети, а `cleverwifi` – пароль.
|
||||
|
||||
4\. Перезапустите службу `dhcpcd`.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart dhcpcd
|
||||
```
|
||||
|
||||
## Инструкция для переключения адаптера в режим точки доступа
|
||||
|
||||
1\. Включите статический IP адрес на беспроводном интерфейсе.
|
||||
|
||||
Для этого добавьте следующие строки
|
||||
|
||||
```
|
||||
interface wlan0
|
||||
static ip_address=192.168.11.1/24
|
||||
```
|
||||
|
||||
в файл `/etc/dhcpcd.conf` вручную или введите следующую команду
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee -a /etc/dhcpcd.conf
|
||||
interface wlan0
|
||||
static ip_address=192.168.11.1/24
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
2\. Настроите wpa_supplicant на работу в режиме точки доступа.
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
|
||||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||
update_config=1
|
||||
country=GB
|
||||
|
||||
network={
|
||||
ssid="CLEVER-$(head -c 100 /dev/urandom | xxd -ps -c 100 | sed -e 's/[^0-9]//g' | cut -c 1-4)"
|
||||
psk="cleverwifi"
|
||||
mode=2
|
||||
proto=RSN
|
||||
key_mgmt=WPA-PSK
|
||||
pairwise=CCMP
|
||||
group=CCMP
|
||||
auth_alg=OPEN
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
3\. Перезагрузите службу `dhcpcd`.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart dhcpcd
|
||||
```
|
||||
|
||||
4\. Включите службу `dnsmasq`.
|
||||
|
||||
```bash
|
||||
sudo systemctl enable dnsmasq
|
||||
sudo systemctl start dnsmasq
|
||||
```
|
||||
|
||||
___
|
||||
|
||||
Ниже вы можете узнать больше о том, как устроена работа с сетью на RPi.
|
||||
|
||||
# Устройство сети RPi
|
||||
Работа сети на образе **2017-11-29-raspbian-stretch-lite** поддерживается двумя предустановленными службами:
|
||||
* **networking** — служба включает все сетевые интерфейсы в момент запуска [5].
|
||||
* **dhcpcd** — служба обеспечивает настройку адресации и маршрутризации на интерфейсах, полученных динамически или указаных в файле настроек статически.
|
||||
|
||||
Для работы в режиме роутера (точки доступа) RPi необходим DHCP сервер. Он служит для автоматической выдачи настроек текущей сети подключившимся клиентам. В роли такого сервера может выступать `isc-dhcp-server` или `dnsmasq`.
|
||||
|
||||
## dhcpcd
|
||||
|
||||
Начиная с Raspbian Jesse настройки сети больше не задаются в файле `/etc/network/interfaces`. Теперь за выдачу адресации и настройку маршрутизации отвечает `dhcpcd` [4].
|
||||
|
||||
По умолчанию на всех интерфейсах включен dhcp-клиент. Настройки интерфейсов меняются в файле `/etc/dhcpcd.conf`. Для того, чтобы поднять точку доступа необходимо прописать статический ip-адрес. Для этого в конец файла необходимо добавить следующие строки:
|
||||
|
||||
```
|
||||
interface wlan0
|
||||
static ip_address=192.168.11.1/24
|
||||
```
|
||||
|
||||
> **Note** Если интерфейс является беспроводным (wlan), то служба `dhcpcd` триггерит `wpa_supplicant` [13], который в свою очередь работает непосредственно с wifi-адаптером и переводит его в заданное состояние.
|
||||
|
||||
## wpa_supplicant
|
||||
|
||||
**wpa_supplicant** – служба конфигурирует Wi-Fi адаптер. Служба `wpa_supplicant` работает не как самостоятельная (хотя как таковая существует), а запускается как дочерний процесс от `dhcpcd`.
|
||||
|
||||
Конфигурационный файл по умолчанию должен иметь путь `/etc/wpa_supplicant/wpa_supplicant.conf`.
|
||||
Пример конфигурационного файла:
|
||||
|
||||
```
|
||||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
||||
update_config=1
|
||||
country=GB
|
||||
|
||||
network={
|
||||
ssid=\"CLEVER-SMIRNOV\"
|
||||
psk=\"cleverwifi\"
|
||||
mode=2
|
||||
proto=RSN
|
||||
key_mgmt=WPA-PSK
|
||||
pairwise=CCMP
|
||||
group=CCMP
|
||||
auth_alg=OPEN
|
||||
}
|
||||
```
|
||||
|
||||
Внутри конфига указываются общие настройки `wpa_supplicant` и параметры для настройки адаптера. Также конфигурационный файл содержит секции `network` – основные настройки Wi-Fi сети такие как SSID сети, пароль, режим работы адаптера. Таких блоков может быть несколько, но используется первый рабочий. Например, если вы указали в первом блоке подключение к некоторой недоступной сети, то адаптер будет настроен следующей удачной секцией, если такая есть. Подробнее о синтаксисе `wpa_supplicant.conf` [TODO WIKI].
|
||||
|
||||
### wpa_passphrase
|
||||
|
||||
`wpa_passphrase` – утилита для создания секции `network`.
|
||||
|
||||
```bash
|
||||
wpa_passphrase SSID PASSWORD
|
||||
```
|
||||
После выполнения команды скопируйте полученную секцию в ваш конфигурационный файл. Можно удалить закоментированное поле `psk` и оставить только поле с хешем пароля, либо наоборот.
|
||||
```bash
|
||||
network={
|
||||
ssid="SSID"
|
||||
#psk="PASSWORD"
|
||||
psk=c2161655c6ba444d8df94cbbf4e9c5c4c61fc37702b9c66ed37aee1545a5a333
|
||||
}
|
||||
```
|
||||
|
||||
### Несколько Wi-Fi адаптеров
|
||||
В системе может быть несколько Wi-Fi адаптеров. Если для них корректно подключены драйвера, то их можно увидеть вызвав `ifconfig` (например wlan0 и wlan1).
|
||||
|
||||
Если у вас несколько адаптеров, для всех будет использоваться одна и таже самая рабочая секция `network`. Это связано с тем, что для каждого интерфейса, `dhcpcd` отдельно создает по дочернему процессу `wpa_supplicant`, в котором выполняется один тот же код (т. к. конфиг один и тот же).
|
||||
|
||||
Для работы нескольких адаптеров с отдельными настройками для каждого, в стандартном вызываемом скрипте `dhcpcd` реализован механизм запуска разных конфигурационных скриптов. Для его использования необходимо переименовать стандартный файл конфига по следующему образцу: `wpa_supplicant-<имя интерфейса>.conf`, например `wpa_supplicant-wlan0.conf`.
|
||||
|
||||
Для применения настроек необходимо перезапустить родительский процесс - службу `dhcpcd`. Сделать это можно следующей командой:
|
||||
```bash
|
||||
sudo systemctl restart dhcpcd
|
||||
```
|
||||
## DHCP сервер
|
||||
|
||||
### dnsmasq-base
|
||||
`dnsmasq-base` – консольная утилита, не являющаяся службой, для использования dnsmasq как службы надо установить пакет `dnsmasq`.
|
||||
|
||||
```bash
|
||||
sudo apt install dnsmasq-base
|
||||
```
|
||||
|
||||
```bash
|
||||
# Вызов dnsmasq-base
|
||||
sudo dnsmasq --interface=wlan0 --address=/clever/coex/192.168.11.1 --no-daemon --dhcp-range=192.168.11.100,192.168.11.200,12h --no-hosts --filterwin2k --bogus-priv --domain-needed --quiet-dhcp6 --log-queries
|
||||
|
||||
# Подробнее о dnsmasq-base
|
||||
dnsmasq --help
|
||||
|
||||
# или
|
||||
man dnsmasq
|
||||
```
|
||||
|
||||
### dnsmasq
|
||||
|
||||
```bash
|
||||
sudo apt install dnsmasq
|
||||
```
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee -a /etc/dnsmasq.conf
|
||||
interface=wlan0
|
||||
address=/clever/coex/192.168.11.1
|
||||
dhcp-range=192.168.11.100,192.168.11.200,12h
|
||||
no-hosts
|
||||
filterwin2k
|
||||
bogus-priv
|
||||
domain-needed
|
||||
quiet-dhcp6
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
### isc-dhcp-server
|
||||
|
||||
```bash
|
||||
sudo apt install isc-dhcp-server
|
||||
```
|
||||
|
||||
```bash
|
||||
# https://www.shellhacks.com/ru/sed-find-replace-string-in-file/
|
||||
sed -i 's/INTERFACESv4=\"\"/INTERFACESv4=\"wlan0\"/' /etc/default/isc-dhcp-server
|
||||
```
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee /etc/dhcp/dhcpd.conf
|
||||
subnet 192.168.11.0 netmask 255.255.255.0 {
|
||||
range 192.168.11.11 192.168.11.254;
|
||||
#option domain-name-servers 8.8.8.8;
|
||||
#option domain-name "rpi.local";
|
||||
option routers 192.168.11.1;
|
||||
option broadcast-address 192.168.11.255;
|
||||
default-lease-time 600;
|
||||
max-lease-time 7200;
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee /etc/network/if-up.d/isc-dhcp-server && sudo chmod +x /etc/network/if-up.d/isc-dhcp-server
|
||||
#!/bin/sh
|
||||
if [ "\$IFACE" = "--all" ];
|
||||
then sleep 10 && systemctl start isc-dhcp-server.service &
|
||||
fi
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
|
||||
## Ссылки
|
||||
|
||||
1. [habr.com: Linux WiFi из командной строки с wpa_supplicant](https://habr.com/post/315960/)
|
||||
2. [wiki.archlinux.org: WPA supplicant (Русский)](https://wiki.archlinux.org/index.php/WPA_supplicant_(Русский))
|
||||
3. [blog.hoxnox.com: WiFi access point with wpa_supplicant](http://blog.hoxnox.com/gentoo/wifi-hotspot.html)
|
||||
4. [dmitrysnotes.ru: Raspberry Pi 3. Присвоение статического IP-адреса](http://dmitrysnotes.ru/raspberry-pi-3-prisvoenie-staticheskogo-ip-adresa)
|
||||
5. [thegeekdiary.com: Linux OS Service ‘network’](https://www.thegeekdiary.com/linux-os-service-network/)
|
||||
6. [frillip.com: USING YOUR NEW RASPBERRY PI 3 AS A WIFI ACCESS POINT WITH HOSTAPD](https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/) (также здесь есть инструкция по настройке форвардинга для использования RPi в качестве шлюза для выхода в интернет)
|
||||
7. [habr.com: Настраиваем ddns-сервер на GNU/Linux Debian 6](https://habr.com/sandbox/30433/) (Хорошая статья по настройке ddns-сервера на основе `bind` и `isc-dhcp-server`)
|
||||
8. [pro-gram.ru: Установка и настройка DHCP сервера на Ubuntu 16.04.](https://pro-gram.ru/dhcp-server-ubuntu.html) (Настройка isc-dhcp-server)
|
||||
9. [expert-orda.ru: Настройка DHCP-сервера на Ubuntu](http://expert-orda.ru/posts/liuxnewbie/125--dhcp-ubuntu) (Настройка isc-dhcp-server)
|
||||
10. [academicfox.com: Raspberry Pi беспроводная точка доступа (WiFi access point)](http://academicfox.com/raspberry-pi-besprovodnaya-tochka-dostupa-wifi-access-point/) (Настройка маршрутов, hostapd, isc-dhcp-server)
|
||||
11. [weworkweplay.com: Automatically connect a Raspberry Pi to a Wifi network](http://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/) (Есть настройки для создания открытой точки доступа)
|
||||
12. [wiki.archlinux.org: WPA supplicant](https://wiki.archlinux.org/index.php/WPA%20supplicant)
|
||||
13. [wiki.archlinux.org: dhcpcd](https://wiki.archlinux.org/index.php/Dhcpcd#10-wpa_supplicant) (dhcpcd hook wpa_supplicant)
|
||||
45
docs/rc.md
@@ -1,16 +1,27 @@
|
||||
Мобильный пульт
|
||||
Управление Клевером со смартфона
|
||||
===
|
||||
|
||||
Возможно управлять квадрокоптером в мобильного пульта через Wi-Fi. Он разработан в виде приложения для iOS и Android (TODO). Также существует упрощенная версия в виде [веб-страницы](#веб-версия).
|
||||
Для управления Клевером со смартфона через Wi-Fi необходимо установить приложение – [iOS](), Android (в разработке).
|
||||
|
||||

|
||||
|
||||
> **Warning** Мобильный пульт предназначен в первую очередь для полетов в помещении на дальность не более 10-15 м. Большое количество Wi-Fi сетей также может ухудшить отзывчивость и дальность пульта.
|
||||
|
||||
Для включения бэкенда пульта, установите [образ Clever на RPi](microsd_images.md), а также убедитесь, что он включен в launch-файле Клевера (`~/catkin_ws/src/clever/clever/launch/clever.launch`):
|
||||
> **Info** Также управление со смартфона [доступно в мобильной версия приложения](https://docs.qgroundcontrol.com/en/SettingsView/VirtualJoystick.html) QGroundControl.
|
||||
|
||||
Настройка
|
||||
---
|
||||
|
||||
> **Note** Мобильный пульт конфликтует с реальной аппаратурой радиоуправления. Во время использования мобильного пульта она должна быть выключена.
|
||||
|
||||
Установите [образ Clever на RPi](microsd_images.md), а также включите `rosbridge` и `rc` в launch-файле (`~/catkin_ws/src/clever/clever/launch/clever.launch`):
|
||||
|
||||
```xml
|
||||
<arg name="rc" value="true"/>
|
||||
<arg name="rosbridge" default="true"/>
|
||||
```
|
||||
|
||||
```xml
|
||||
<arg name="rc" default="true"/>
|
||||
```
|
||||
|
||||
При изменении launch-файла необходимо перезапустить пакет `clever`:
|
||||
@@ -21,19 +32,23 @@ sudo systemctl restart clever
|
||||
|
||||
Также необходимо убедиться, что PX4-параметр `COM_RC_IN_MODE` установлен в значение `0` (RC Transmitter).
|
||||
|
||||
> **Note** Мобильный пульт конфликтует с реальной аппаратурой радиоуправления. Во время использования мобильного пульта она должны быть выключена.
|
||||
Дополнительные параметры:
|
||||
|
||||
Для управления коптером установите приложение на смартфон, подключитесь с Wi-Fi сети Клевера (`CLEVER-xxxx`), затем запустите приложение.
|
||||
* `COM_RC_LOSS_T` – таймаут для определения потери сигнала пульта (мобильного или физического). Рекомендуется увеличение таймаута до нескольких секунд.
|
||||
* `NAV_RCL_ACT` – действие при потере сигнала пульта.
|
||||
|
||||
Стики на экране приложения работают также, как и реальные стики. Для арминга коптера подержите левый стик в правом нижнем углу на протяжении нескольких секунд. Для дизарминга – в левом нижнем углу.
|
||||
> **Note** Мобильный пульт конфликтует с реальной аппаратурой радиоуправления. Во время использования мобильного пульта она должна быть выключена.
|
||||
|
||||
Пульт отображает текущий [режим PX4](modes.md) а также уровень заряда батареи. При низком значении заряда батареи телефон будет вибрировать.
|
||||
|
||||
> **Note** Если интерфейс пульта отображает явно неправильное напряжение (напр. > 5 V), проверьте, что значение PX4-параметра `BAT_N_CELLS` соответствует реальному количество элементов батареи. Если отображаемое напряжение все равно неверно, откалибруйте батарею (TODO: ссылка).
|
||||
|
||||
> **Note** Если вместо режима PX4 отображается текст "DISCONNECTED FROM FCU", проверьте [подключение Raspberry Pi к PixHawk](connection.md).
|
||||
|
||||
Веб-версия
|
||||
Подключение
|
||||
---
|
||||
|
||||
TODO
|
||||
Подключите смартфон к [Wi-Fi](wifi.md) сети Клевера (`CLEVER-xxxx`). Приложение должно подключиться с коптеру автоматически. При успешном подключении должны отобразиться текущий [режим](modes.ms) и заряд батареи.
|
||||
|
||||
Стики на экране приложения работают так же, как и реальные стики. Для арма коптера подержите левый стик в правом нижнем углу на протяжении нескольких секунд. Для дизарма – в левом нижнем углу.
|
||||
|
||||
Неисправности
|
||||
---
|
||||
|
||||
* Если интерфейс пульта отображает явно неправильное напряжение (напр. > 5 V), проверьте, что значение PX4-параметра `BAT_N_CELLS` соответствует реальному количество элементов батареи. Если отображаемое напряжение все равно неверно, откалибруйте батарею (TODO: ссылка).
|
||||
|
||||
* Если вместо режима PX4 отображается текст "DISCONNECTED FROM FCU", проверьте [подключение Raspberry Pi к PixHawk](connection.md).
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
### Как держать паяльник?
|
||||
|
||||
Паяльник можно держать только за ручку.
|
||||
Если кто-то утверждает обратное — не верьте, вас вводят в заблуждение :)
|
||||
Если кто-то утверждает обратное - не верьте, вас вводят в заблуждение:)
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
[Подробнее о технике безопасности при пайке](tb.md)
|
||||
|
||||
|
||||
|
||||
|
||||