SlideShare a Scribd company logo
1 of 43
ドローンのフライトコントローラを
Pythonで
制御してみた話
@se_lina08
Lina Katayose
PyCon JP 2017, 9/8
Ajenda
1.自己紹介
2.ドローンについて
3.目的
4.PythonとドローンとRaspberry Pi
5.フライトコントローラ
6.実践
7.まとめ
Hello!
I am Lina Katayose
I am Scientist Engineer. I love Flying Gadgets.
Have fun my presentation.
You can find me at @se_lina08 (Twitter)
Facebook is lina.katayose
I reviewed this book.
More info on how to buy this book at Amazon.
I think this book is very useful.
2.
ドローンとは
What is the Drone?
これです.
ドローンとは
■ ドローンはもともと無人航空機と言う意味。
■ 遠隔操作できるマルチコプター(multicopter)が
普及し、それ自体がドローンと呼ばれることとなった。
■ マルチコプターとは、3つ以上のローターを搭載した回転翼機。
世界のドローンメーカー
中国(深圳)
DJI
主な機体
Phantom, Inspire
アメリカ
3DRobotics
主な機体
solo,IRIS
フランス
Parrot
主な機体
AR.Drone, Bebop Drone
世界のドローンメーカー
世界3大メーカーが市場の8割を占める。
滑走路を必要としない。
1ローターヘリコプターより
安定性がある。
構造がシンプル
ドローンのメリット、デメリット(性能面)
下降時に不安定になる。
移動時に傾く
(ブレードが固定角)
ローター数が多いため
電力が必要になる。
メリット デメリット
3.
目的
The purpose
背景
■ フライトコントローラはブラックボックス。
■ ドローンはまだ発展途上であるガジェット。
■ Python×ドローンの開発挑戦。
■ 開発で苦労した内容を共有する。
将来の目標
■Pythonを使った飛行ロボットをつくること。
■Pythonを使って
・救助ドローンを作る。
・農業ドローンを作る。
・攻殻機動隊みたいな義体を作る。
目的の補足
■農業用
(GoogleMAPなどと連携。指定した場所に農薬をまく)
■緊急時以外にプロポは使わない。
4.
PythonとドローンとRaspberry Pi
Python, Drone, Raspberry pi
PythonとドローンとRaspberry pi
■ Pythonを選んだ経緯
・科学系のプログラミング言語の選定。
・MATLABもあるが有料でかなり高い。
・Pythonであれば無料。
・Pythonの名前響きが好き。
・画像認識やディープラーニングなど応用して、
救助や生活に役立つドローン開発ができそう。
PythonとドローンとRaspberry Pi
■ Raspberry Pi選んだ経緯
Pythonが使える。
GPIOがついてる。
General-Purpose Input/Outputは、汎用入出力。
つまり、
慣性計測装置(IMU:Inertial Measurement Unit)が使える。
PythonとドローンとRaspberry Pi
■ Raspberry Pi選んだ経緯
GPIO
■ Pythonを使ってGPIOから信号を入出力ができる!
PythonとドローンとRaspberry Pi
■ ここのピンから信号を入出力させます。
ピンの配置
5.
フライトコントローラ
Flight controller
フライトコントローラ
■ フライトコントローラとは
プロポ(リモコン)からの信号を受信する受信機とつなげ、
ドローンを安定化させるもの
フライトコントローラ
■ どうしてフライトコントローラに注目したのか。
→ドローンを制御しようと調べていたら、
フライトコントローラーに行き着いた。
■ Pythonとフライトコントローラ
→Raspberry PiでPythonプログラミングすれば、
フライトコントローラーが作れるのでは?
フライト
コントローラ
フライトコントローラ
■ すでに発売されているフライトコントローラ。
Acro 6TAROT CC3D OPENPILOT 小川精機 OGY-661
・自作ドローンでよく使われる。
・安価だが海外製。
・不良品もある。
・PCなしで設定可能。
・日本製。
・生産終了。
フライトコントローラ
■ フライトコントローラに指示を出すには?
通常、ラジコンでサーボを制御するには
PWM(Palse Width Moduration)が必要。
PWM (Palse Width Moduration) とは
■ 半導体を使った電力を制御する方式の1つ。
■ ONとOFFの繰り返しスイッチングを行う信号。
ON
OFF
■ PWM制御のオンの時間幅(デューティ)を周期的に
変化させることにより、LEDの明るさやロボットなどに
使われるサーボモータ駆動をコントロールできる。
フライトコントローラ
ドローン
フライト
コントローラ
受信機
PWMでの制御していると
仮定し実験を進めたが、
わからない
→要解析!
■ 通常のラジコンではこのような流れを持っている
フライトコントローラ
■ フライトコントローラをRaspberry Piに置き換える。
ドローン
ブラシレス
モーター
フライト
コントローラ
PWMでモータを制御し
飛行させる。
フライトコントローラ
■ ブラシレスモータとは?
ブラシレスモータ
ブラシありモータ
(従来のモーター)
フライトコントローラ
■ ブラシレスモーターを動かすには、
デューティー比を理解する。
デューティー比とは、ロボットやラジコンなどに使うサーボモータの角度制御に
PWM制御をする際に、重要になる概念です。
通常、多くのサーボは50Hz(20ms)のPWM信号を受け取り、
その中のデューティー比が何%かによって角度を決めている。
デューティー比の式と図は次です。
フライトコントローラ
■ デューティー比
フライトコントローラ
■ デューティー比を使ったPythonのプログラムを
書いてみるよ。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
p = GPIO.PWM(7,50)
p.start(7.5)
try:
while True:
p.ChangeDutyCycle(7.5)
time.sleep(1)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
p = GPIO.PWM(7,50)
p.start(7.5)
try:
while True:
p.ChangeDutyCycle(7.5)
time.sleep(1)
p.ChangeDutyCycle(12.5)
time.sleep(1)
p.ChangeDutyCycle(2.5)
time.sleep(1)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Python code
start.py
このコードで
モーターを回す
準備をさせます。
プロポで言う、
スロットルの
最大値、最小値の
信号を出します。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
p = GPIO.PWM(7,50)
p.start(7.5)
try:
while True:
p.ChangeDutyCycle(10.5)
time.sleep(1)
print “go up”
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Python code
goup.py
このコードで
モーターを回します。
6.
実践
Try
実践
■ この実験機のローターをPythonコードで回します。
7.
まとめ
Result and summary
実験の結果the result of the experiment
まとめ(結果)
■PythonとRaspberry Piを使い
ブラシレスモーターを回せた!
■ブラックボックスであるフライトコントローラを
使わずに、飛ばせる可能性が見えた!
■Raspberry Piに期待が持てた!
まとめ(結果)
■モーター4つを各々で回せなかった。
■フライトコントローラ解析に至らず。
本来では飛ばしたかった。
しかし失敗・苦労はしたが、様々な問題点がわかり、
それを次へ活かし進むことができました。
今回はPythonとドローン、そしてRaspberry Piを用いて
どこまで発展ができるかを報告しました。
しかし、
まとめ
<改善すべきこと>
■ モーターは動いたが、プログラムの精度を上げる必要。
■ 各モーターを制御できるプログラムを作る。
■ まずは安定して飛行できるようにすること。
■ 安定化のため、各センサーの情報を取り入れる必要。
各センサー:角加速度、加速度、GPSなど
まとめ
ドローン
フライトコントローラ
Python
人間
Thanks!
Any questions?
You can find me at @se_lina08 (Twitter)
Facebook is lina.katayose
E-mail is lina.katayose@gmail.com
https://youtu.be/ZiXm8yhDWxA
Drone
Movie
(おまけ)
2月にドローンで撮影した映像です。

More Related Content

What's hot

Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
ACL in CodeIgniter
ACL in CodeIgniterACL in CodeIgniter
ACL in CodeIgnitermirahman
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEBAbbes Rharrab
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovZeroTurnaround
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Introduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache JackrabbiIntroduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache JackrabbiJukka Zitting
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of DjangoJacob Kaplan-Moss
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmiqueHajer Trabelsi
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentationManav Prasad
 

What's hot (20)

Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Android binder-ipc
Android binder-ipcAndroid binder-ipc
Android binder-ipc
 
Gcc porting
Gcc portingGcc porting
Gcc porting
 
ACL in CodeIgniter
ACL in CodeIgniterACL in CodeIgniter
ACL in CodeIgniter
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir Ivanov
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Introduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache JackrabbiIntroduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache Jackrabbi
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Cours3.pptx
Cours3.pptxCours3.pptx
Cours3.pptx
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of Django
 
Algo poo ts
Algo poo tsAlgo poo ts
Algo poo ts
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 

Viewers also liked

Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私Atsushi Odagiri
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017hirokiky
 
Introducing wsgi_lineprof / PyCon JP 2017 LT
Introducing wsgi_lineprof / PyCon JP 2017 LTIntroducing wsgi_lineprof / PyCon JP 2017 LT
Introducing wsgi_lineprof / PyCon JP 2017 LTYusuke Miyazaki
 
Pycon jp2017 20170908_ota
Pycon jp2017 20170908_otaPycon jp2017 20170908_ota
Pycon jp2017 20170908_ota博三 太田
 
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Yusuke Muraoka
 
OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発Takuro Wada
 
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Yoshiaki Shibutani
 
PyCon JP 2017Yuta Kitagami
PyCon JP 2017Yuta KitagamiPyCon JP 2017Yuta Kitagami
PyCon JP 2017Yuta KitagamiYuta Kitagami
 
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Shinya Okano
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめJun Okazaki
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Isao Takaesu
 

Viewers also liked (14)

Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
 
Introducing wsgi_lineprof / PyCon JP 2017 LT
Introducing wsgi_lineprof / PyCon JP 2017 LTIntroducing wsgi_lineprof / PyCon JP 2017 LT
Introducing wsgi_lineprof / PyCon JP 2017 LT
 
Pycon jp2017 20170908_ota
Pycon jp2017 20170908_otaPycon jp2017 20170908_ota
Pycon jp2017 20170908_ota
 
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発
 
OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発
 
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
 
PyCon JP 2017Yuta Kitagami
PyCon JP 2017Yuta KitagamiPyCon JP 2017Yuta Kitagami
PyCon JP 2017Yuta Kitagami
 
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめ
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
Pycon2017
Pycon2017Pycon2017
Pycon2017
 
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
 

More from Lina Katayose

Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけPythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけLina Katayose
 
Python×ドローンについて過去のPyConJP登壇から今までの進化。
Python×ドローンについて過去のPyConJP登壇から今までの進化。Python×ドローンについて過去のPyConJP登壇から今までの進化。
Python×ドローンについて過去のPyConJP登壇から今までの進化。Lina Katayose
 
実際にワーケーションを実践して思ったこと。
実際にワーケーションを実践して思ったこと。実際にワーケーションを実践して思ったこと。
実際にワーケーションを実践して思ったこと。Lina Katayose
 
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望Lina Katayose
 
Raspberry Piを使ったモーターのコントロールと応用
Raspberry Piを使ったモーターのコントロールと応用Raspberry Piを使ったモーターのコントロールと応用
Raspberry Piを使ったモーターのコントロールと応用Lina Katayose
 
海外のPyLadiesメンバーと交流して思ったこと
海外のPyLadiesメンバーと交流して思ったこと海外のPyLadiesメンバーと交流して思ったこと
海外のPyLadiesメンバーと交流して思ったことLina Katayose
 
スマホアプリを0から設計してリリースするまでのこと
スマホアプリを0から設計してリリースするまでのことスマホアプリを0から設計してリリースするまでのこと
スマホアプリを0から設計してリリースするまでのことLina Katayose
 
PyLadies and the importance of community participation
PyLadies and the importance of community participationPyLadies and the importance of community participation
PyLadies and the importance of community participationLina Katayose
 
Pyladies Tokyo LT 20181008
Pyladies Tokyo LT 20181008Pyladies Tokyo LT 20181008
Pyladies Tokyo LT 20181008Lina Katayose
 
Making a Drone by Python using RaspberryPi and Google VoiceKit
Making a Drone by Python using RaspberryPi and Google VoiceKitMaking a Drone by Python using RaspberryPi and Google VoiceKit
Making a Drone by Python using RaspberryPi and Google VoiceKitLina Katayose
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできることLina Katayose
 
Preparation for pycon 2018(cleveland)
Preparation for pycon 2018(cleveland)Preparation for pycon 2018(cleveland)
Preparation for pycon 2018(cleveland)Lina Katayose
 
Python Boot Camp のお話し
Python Boot Camp のお話しPython Boot Camp のお話し
Python Boot Camp のお話しLina Katayose
 
すうがく初めの一歩
すうがく初めの一歩すうがく初めの一歩
すうがく初めの一歩Lina Katayose
 
Lina katayose pyladies3周年LT
Lina katayose pyladies3周年LTLina katayose pyladies3周年LT
Lina katayose pyladies3周年LTLina Katayose
 
私のPython学習法lt
私のPython学習法lt私のPython学習法lt
私のPython学習法ltLina Katayose
 
Geek women japanのロゴをhtmlとcssで作る2
Geek women japanのロゴをhtmlとcssで作る2Geek women japanのロゴをhtmlとcssで作る2
Geek women japanのロゴをhtmlとcssで作る2Lina Katayose
 
Geek women japanのロゴをhtmlとcssで作る
Geek women japanのロゴをhtmlとcssで作るGeek women japanのロゴをhtmlとcssで作る
Geek women japanのロゴをhtmlとcssで作るLina Katayose
 
Raspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれRaspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれLina Katayose
 
Raspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれRaspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれLina Katayose
 

More from Lina Katayose (20)

Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけPythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
 
Python×ドローンについて過去のPyConJP登壇から今までの進化。
Python×ドローンについて過去のPyConJP登壇から今までの進化。Python×ドローンについて過去のPyConJP登壇から今までの進化。
Python×ドローンについて過去のPyConJP登壇から今までの進化。
 
実際にワーケーションを実践して思ったこと。
実際にワーケーションを実践して思ったこと。実際にワーケーションを実践して思ったこと。
実際にワーケーションを実践して思ったこと。
 
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
 
Raspberry Piを使ったモーターのコントロールと応用
Raspberry Piを使ったモーターのコントロールと応用Raspberry Piを使ったモーターのコントロールと応用
Raspberry Piを使ったモーターのコントロールと応用
 
海外のPyLadiesメンバーと交流して思ったこと
海外のPyLadiesメンバーと交流して思ったこと海外のPyLadiesメンバーと交流して思ったこと
海外のPyLadiesメンバーと交流して思ったこと
 
スマホアプリを0から設計してリリースするまでのこと
スマホアプリを0から設計してリリースするまでのことスマホアプリを0から設計してリリースするまでのこと
スマホアプリを0から設計してリリースするまでのこと
 
PyLadies and the importance of community participation
PyLadies and the importance of community participationPyLadies and the importance of community participation
PyLadies and the importance of community participation
 
Pyladies Tokyo LT 20181008
Pyladies Tokyo LT 20181008Pyladies Tokyo LT 20181008
Pyladies Tokyo LT 20181008
 
Making a Drone by Python using RaspberryPi and Google VoiceKit
Making a Drone by Python using RaspberryPi and Google VoiceKitMaking a Drone by Python using RaspberryPi and Google VoiceKit
Making a Drone by Python using RaspberryPi and Google VoiceKit
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできること
 
Preparation for pycon 2018(cleveland)
Preparation for pycon 2018(cleveland)Preparation for pycon 2018(cleveland)
Preparation for pycon 2018(cleveland)
 
Python Boot Camp のお話し
Python Boot Camp のお話しPython Boot Camp のお話し
Python Boot Camp のお話し
 
すうがく初めの一歩
すうがく初めの一歩すうがく初めの一歩
すうがく初めの一歩
 
Lina katayose pyladies3周年LT
Lina katayose pyladies3周年LTLina katayose pyladies3周年LT
Lina katayose pyladies3周年LT
 
私のPython学習法lt
私のPython学習法lt私のPython学習法lt
私のPython学習法lt
 
Geek women japanのロゴをhtmlとcssで作る2
Geek women japanのロゴをhtmlとcssで作る2Geek women japanのロゴをhtmlとcssで作る2
Geek women japanのロゴをhtmlとcssで作る2
 
Geek women japanのロゴをhtmlとcssで作る
Geek women japanのロゴをhtmlとcssで作るGeek women japanのロゴをhtmlとcssで作る
Geek women japanのロゴをhtmlとcssで作る
 
Raspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれRaspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれ
 
Raspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれRaspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれ
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

ドローンのフライトコントローラをPythonで制御してみた話

Editor's Notes

  1. 中国のDJIは10年前くらいにできた会社だがホビードローン部門トップシェアをとっている。 世界シェアおよそ7割。 (私はPHANTOM3 STANDARD) 私がやりたいことは、3に近い 日本はエンルートがあるがまだまだ世界シェアは厳しい
  2. 中国のDJIは10年前くらいにできた会社だがホビードローン部門トップシェアをとっている。 世界シェアおよそ7割。 (私はPHANTOM3 STANDARD) 私がやりたいことは、3に近い 日本はエンルートがあるがまだまだ世界シェアは厳しい
  3. (ヘリコプターはブレード角を回転面に対して変えることができます。飛ぶしくみも異なる。)
  4. なぜPythonなのかを話す。
  5. PWMを出せばよいのか!? を考えることにした。
  6. PWM(Pulse Width Modulation)とは、半導体を使った電力を制御する方式の1つです。オンとオフの繰り返しスイッチングを行い、出力される電力を制御します。 一定電圧の入力から、パルス列のオンとオフの一定周期を作り、オンの時間幅を変化させる電力制御方式を PWM と呼びます。早い周期でスイッチングを行うことで、オンのパルス幅に比例した任意の電圧が得られます。これは、半導体がオンとオフ状態が最も損失が少ない(中間状態は損失多い)ことを利用した電力制御方式です。 PWMは、優れた制御性と、高効率 が特長で、インバータ回路 で広く使われている技術です。ブラシ付きDCモータの回転制御にも使われています。 インバータ回路にて、PWM制御のオンの時間幅(デューティ)を周期的に変化させることにより、モータ駆動に最適な正弦波の交流電圧を作ることができます。
  7. 参考 http://www.nidec.com/ja-JP/technology/capability/brushless/
  8. GPIOはRaspberry piで GPIOのコントロールに必要なモジュールをインポートをここで指示する。
  9. GPIOはRaspberry piでの
  10. 苦労したことを話す。
  11. 現在は信号を一つしか出せないプログラム。 しかし、プログラムを変えたとしてもRaspberry piは最大2chしか 精度の高いPWMを出せない。 Arduinoは6ch出せるらしいので一部を使うか検討中。 Raspberry piはあくまでも、頭脳として人間に近い形で使っていきたい。