SlideShare a Scribd company logo
1 of 30
はじめての
ブラシレスモータ制御
MATLAB EXPO 2020 10/1 LT 阿部 耕二
自己紹介
•名前:阿部 耕二
•仕事:組込みソフトウェア開発。
「C言語」を利用。
•MATLAB経験:検証業務は経験あり。
業務で普段使っていない。
自己学習を始めた。
⇒初心者
何をしたか? (概要)
•ブラシレスモータを回した
•使用ソフト:Simulink、Simulink
Support Package for Arduino
Hardware
•個人用途MATLAB Homeライセンス
何を伝えたいか?
C言語経験者・Simulinkモデル
初心者が、モータ制御モデルを
どのようなプロセスでつくったか。
誰に伝えたい?
•C言語は知っているけど
Simulinkは知らない方。
•これからSimulinkを学びたいと
考えている方。
•モータ制御モデルはどういうもの
か気になっている方。
何をしたか? (詳細)
(詳細)何をしたか?
•CQ EVカート インバータ基板を使用。
•Simulink、 Simulink Support Package
for Arduino Hardwareを使ってモータ制御
モデルを作った。
•CPUを「Arduino MEGA」に変更。
•モータ制御はシンプルな、
「120度矩形波通電・ホールセンサ有り」。
ハードウェアブロック図 点線枠内が変更点
ハードウェアの写真
開発環境
どうすればモータは回るか?
開発スタート!!!
•いきなりSimulinkモデルはつくれないため、
Arduino + C言語でモータ制御する。
↓
なんとかモータが回ったため、Simulinkモ
デル作成に着手。
・Simulinkモデルつくるぞ!!!
・・・どうしよう。何をすれば良
いのかわからない(-_-;)
・C言語の処理はSimulinkでどう実現するの???
Q) 関数はどうやって実現するの?
Q) ビットシフトってどうやるの?
Q) 配列は使えるの?
Q) Switch文はあるのかな?
Q) Arduinoのペリフェラル、どうやって制御するの?
・C言語の既存処理を
Simulinkで実現する
手段がわからない。
・先人の救いの手が
差し伸べられる。
・救いの手~その1~
本書でC言語を
Simulinkモデルに
落とし込むことができた。
ありがとうございます。
・救いの手~その2~
本書でSimulinkで
Arduinoのペリフェラルを
制御する手法が理解できた。
ありがとうございます。
結果、どうなった?
モータ制御モデルが完成・
モータが回った!!!
モータ回転動画
参考情報
• 技術書、モデルをGitHubにアップロードしています。ご興味ある方はどうぞ。
【技術書】技術書典9 サークル名:k-abe
本の名称:EVカートで始めるモデルベース開発
https://techbookfest.org/product/6581675934875648?productVari
antID=5815321967460352
【GitHub】
Simulinkモデル版:
https://github.com/grace2riku/EVKartArduinoSimulink.git
C言語版:
https://github.com/grace2riku/EVKartArduinoIDE.git
Have a good model-based
development life !!!
ご清聴ありがとうご
ざいました

More Related Content

Similar to はじめてのブラシレスモータ制御

Cod2012 デバッグ講座
Cod2012 デバッグ講座Cod2012 デバッグ講座
Cod2012 デバッグ講座Masuda Tomoaki
 
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発Pythonを中心としたチーム開発
Pythonを中心としたチーム開発Ryo Takahashi
 
組み込み入門
組み込み入門組み込み入門
組み込み入門Yuki Suga
 
組み込み入門
組み込み入門組み込み入門
組み込み入門Yuki Suga
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)シスコシステムズ合同会社
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)株式会社ミツエーリンクス
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVCAimingStudy
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)シスコシステムズ合同会社
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vbYohichiShiina
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編誠 山崎
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ慎一 古賀
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたYou&I
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMFAtomu Hidaka
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Akihiro Kuwano
 
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することyuichi_kuwahara
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会Hirotaka Kawata
 

Similar to はじめてのブラシレスモータ制御 (20)

Cod2012 デバッグ講座
Cod2012 デバッグ講座Cod2012 デバッグ講座
Cod2012 デバッグ講座
 
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発Pythonを中心としたチーム開発
Pythonを中心としたチーム開発
 
組み込み入門
組み込み入門組み込み入門
組み込み入門
 
組み込み入門
組み込み入門組み込み入門
組み込み入門
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vb
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
Bee Style:vol.042
Bee Style:vol.042Bee Style:vol.042
Bee Style:vol.042
 
20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活
 
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
 

More from 耕二 阿部

猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222耕二 阿部
 
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則耕二 阿部
 
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf耕二 阿部
 
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf耕二 阿部
 
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdfSWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf耕二 阿部
 
テストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdfテストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdf耕二 阿部
 
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf耕二 阿部
 
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdfソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf耕二 阿部
 
20210830 rust入学式
20210830 rust入学式20210830 rust入学式
20210830 rust入学式耕二 阿部
 
Arduinoでモーター制御ロジックを実装した話
Arduinoでモーター制御ロジックを実装した話Arduinoでモーター制御ロジックを実装した話
Arduinoでモーター制御ロジックを実装した話耕二 阿部
 
Rust初心者がArduinoをLチカしてみた
Rust初心者がArduinoをLチカしてみたRust初心者がArduinoをLチカしてみた
Rust初心者がArduinoをLチカしてみた耕二 阿部
 
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~耕二 阿部
 
モデルベース開発勉強会
モデルベース開発勉強会モデルベース開発勉強会
モデルベース開発勉強会耕二 阿部
 
EVミニカート、技術交流&ミニセミナ 発表資料
EVミニカート、技術交流&ミニセミナ 発表資料EVミニカート、技術交流&ミニセミナ 発表資料
EVミニカート、技術交流&ミニセミナ 発表資料耕二 阿部
 
AWSとEVカートで走行データを可視化
AWSとEVカートで走行データを可視化AWSとEVカートで走行データを可視化
AWSとEVカートで走行データを可視化耕二 阿部
 

More from 耕二 阿部 (15)

猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー🐈)_20240222
 
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
 
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則.pdf
 
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
 
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdfSWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた.pdf
 
テストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdfテストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdf
 
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdfソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
 
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdfソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
 
20210830 rust入学式
20210830 rust入学式20210830 rust入学式
20210830 rust入学式
 
Arduinoでモーター制御ロジックを実装した話
Arduinoでモーター制御ロジックを実装した話Arduinoでモーター制御ロジックを実装した話
Arduinoでモーター制御ロジックを実装した話
 
Rust初心者がArduinoをLチカしてみた
Rust初心者がArduinoをLチカしてみたRust初心者がArduinoをLチカしてみた
Rust初心者がArduinoをLチカしてみた
 
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~
20201029 モデルベース開発モーター制御編~C言語とSimulinkの文法記述を比較する~
 
モデルベース開発勉強会
モデルベース開発勉強会モデルベース開発勉強会
モデルベース開発勉強会
 
EVミニカート、技術交流&ミニセミナ 発表資料
EVミニカート、技術交流&ミニセミナ 発表資料EVミニカート、技術交流&ミニセミナ 発表資料
EVミニカート、技術交流&ミニセミナ 発表資料
 
AWSとEVカートで走行データを可視化
AWSとEVカートで走行データを可視化AWSとEVカートで走行データを可視化
AWSとEVカートで走行データを可視化
 

はじめてのブラシレスモータ制御