Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Arduinoでモーター制御ロジックを実装した話
Search
k-abe
June 29, 2021
Programming
0
390
Arduinoでモーター制御ロジックを実装した話
2021/06/29(火)RustのLT会 Shinjuku.rs #16 @オンラインの資料
k-abe
June 29, 2021
Tweet
Share
More Decks by k-abe
See All by k-abe
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
23
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
46
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
300
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
430
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
310
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
60
テストからより良い組込みソフトウェア開発を考える
kabe
0
73
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則
kabe
1
400
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle)
kabe
0
260
Other Decks in Programming
See All in Programming
Better Code Design in PHP
afilina
PRO
0
130
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
距離関数を極める! / SESSIONS 2024
gam0022
0
280
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
1.4k
色々なIaCツールを実際に触って比較してみる
iriikeita
0
330
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
860
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
220
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Arm移行タイムアタック
qnighy
0
320
Featured
See All Featured
Docker and Python
trallard
40
3.1k
Bash Introduction
62gerente
608
210k
Speed Design
sergeychernyshev
25
620
Statistics for Hackers
jakevdp
796
220k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Adopting Sorbet at Scale
ufuk
73
9.1k
Happy Clients
brianwarren
98
6.7k
Visualization
eitanlees
145
15k
Transcript
ArduinoͰϞʔλʔ੍ޚϩδοΫΛ࣮ͨ͠ Ѩ෦ߞೋ/2021.6.29 RustͷLTձ Shinjuku.rs #16 @ΦϯϥΠϯ 1
• ࣗݾհ • ຊͷςʔϚ • Ϟʔλ੍ޚϩδοΫͱ? • ։ൃڥ • ։ൃͷྲྀΕ
• C→RustҠ২࡞ۀͷײ ࣍ 2
• ໊લɿѨ෦ߞೋ(͋ɹ͜͏͡) • ύʔιϧςΫϊϩδʔελοϑגࣜձࣾʹॴଐɻݸਓݟղɻ • ݣͰҩྍػثϝʔΧʹͯबۀதɻࠐΈιϑτΣΞ։ൃɻݴޠɿCݴޠϝΠϯɻ • Rustྺɿ2021ͷ3݄ࠒ͔Βຊࠊ͍Εֶͯश։࢝ɻ • ϒϩάɿhttps://k-abe.hatenablog.com/
• Twitterɿ@juraruming • طץٕज़ॻɿ https://techbookfest.org/product/6581675934875648?productVariantID=5815321967460352 https://techbookfest.org/product/4581772882870272?productVariantID=5309574368198656 ࣗݾհ
• લճͷShinjuku.rs#15ͰॳࢀՃ͍͖ͤͯͨͩ͞·ͨ͠ɻ ɹ ɹRustॳ৺ऀ͕ArduinoΛLνΧͯ͠Έͨ https://speakerdeck.com/grace2riku/rustchu-xin-zhe- gaarduinowoltikasitemita-bb5de094-8ee0-48a6-af6e-a8ce7d430309 ࣗݾհ-2
• CίʔυͷϞʔλ੍ޚϩδοΫΛRustʹҠ২ͯ͠Έ·ͨ͠ɻ ɹࠐΈܥͷʹಛԽ͍ͯ͠·͢ɻ ɹҠ২ͷ࡞ۀ༰ɺײͳͲΛڞ༗͍͚ͤͯͨͩ͞Εͱࢥ͍·͢ɻ Ҡ২ݩιʔείʔυɿhttps://github.com/grace2riku/EVKartArduinoIDE Ҡ২ޙιʔείʔυɿhttps://github.com/grace2riku/avr-hal/tree/add_evkart ຊͷςʔϚ
• ੍ޚରιϑτΣΞ੍ޚ͕ඞཁͳϒϥγϨεϞʔλɻ ɹిݯON͢ΕϞʔλճస͢Δϛχ࢛ۦͷDCϞʔλͱҟͳΔɻ Ϟʔλ੍ޚϩδοΫͱ?
None
੍ޚʹඞཁͳϚΠίϯपลػೳ࣍ͷ௨Γɻ • λΠϚɿ੍ޚλΠϛϯάੜͷͨΊʹඞཁ(ࠓճ10ms) • ֎෦ׂΓࠐΈɿϞʔλҐஔݕग़ͷͨΊ(্ཱ͕ͪΓɺཱͪԼ͕Γͷ྆Τοδݕग़) • ADมɿϞʔλճస੍ޚ͠ΛมߋՄೳʹ͢ΔͨΊ • PWMɿϞʔλۦಈͷͨΊ •
ग़ྗϙʔτɿϞʔλۦಈͷͨΊ Ϟʔλ੍ޚϩδοΫͱ?
Ϟʔλ੍ޚج൘Λյͯ͠͠·ͬͨͨΊ ӈͷ࣮ݧճ࿏Ͱ֬ೝɻ ։ൃڥ ᶃArduino-mega2560 ᶄϗʔϧηϯαସDIP SWɿࠨ͔ΒWɾVɾUɻ ᶅFET High ସLEDɿӈ͔ΒUɾVɾW ᶆFET
Low ସLEDɿӈ͔ΒUɾVɾW ᶇεϩοτϧ (Մม߅) ᶃ ᶄ ᶅ ᶆ ᶇ
༻ͨ͠ιϑτΣΞ • avr-hal https://github.com/Rahix/avr-hal • boards/arduino-mega2560/example ҎԼͷαϯϓϧίʔυΛࢀর࣮͠ ͍ͯ͘͠ɻ ։ൃڥ
• ։ൃڥߏங ɹavr-halͷQuickstartهࡌ௨ΓͷखॱͰڥ͕Ͱ͖Δɻ ɹhttps://github.com/Rahix/avr-hal • ࣮ ɹ- avr-halͷαϯϓϧϓϩάϥϜΛࢀߟʹίʔσΟϯάɻ ɹ- ֎෦ׂΓࠐΈͷΤοδઃఆϚΠίϯͷσʔλγʔτΛࢀরͨ͠ɻ
։ൃͷྲྀΕ
ɹ- ֎෦ׂΓࠐΈͷΤοδઃఆϚΠίϯͷσʔλγʔτΛࢀরͨ͠ɻ
ɾ࣮͕ྃͨ͠ظಈ࡞֬ೝग़དྷͣɻσόοάதɾɾɾɻ ɾC→RustҠ২࡞ۀͷ࣮ྃͨ͠ɻײΛڞ༗͍ͤͯͩ͘͞͞ɻ C→RustҠ২࡞ۀͷײ
ɾRustɾɾɾCΑΓϞμϯʹॻ͚Δͱ͍͏࣮ײΛಘͨɻ ɹॻָ͍͍͍ͯͯ͠ɻ ɹ- ܕਪ͕خ͍͠ɻ ɹ- ϔομϑΝΠϧΛॻ͔ͳͯ͘ྑ͍ͷ͕خ͍͠ɻ ɹɹpubΩʔϫʔυͰؔͷՄࢹੑΛઃఆͰ͖Δͷָɻ ɹɹmodΩʔϫʔυͰϞδϡʔϧΛಡΈࠐΊָͯɻ ɹ- มએݴͰσϑΥϧτ͕Πϛϡʔλϒϧ(ॻ͖͑ෆՄ)ͳͷ͕͖ɻ
C→RustҠ২࡞ۀͷײ
ɾavr-halͷτϨΠτͷߏ(֊ߏ)͕ྑ͘Θ͔Βͳ͔͚ͬͨͲ ɹrust-analyzerͷ͓͔͛ͰͳΜͱ͔ཧղͰ͖ͨɻ ɹΓ͍ͨใʹૉૣ͘ΞΫηεͰ͖Δɻɹ C→RustҠ২࡞ۀͷײ
ɾάϩʔόϧؔͷ͍ํ ɹstatic mut xxx = xx; ɹϕετϓϥΫςΟεΛௐΔɻ ݸਓతͳ՝
ɾunwrap͕ྑ͘Θ͔Βͳ͍ɻ ɹࣗͷதͰ·͓ͩ·͡ͳ͍ͷೝࣝɻ ɹ ݸਓతͳ՝
ٕज़ॻయ11ͰຊΛग़͢ͷͰΑ͚ΕνΣοΫ͍ͯͩ͘͠͞ɻ αʔΫϧ໊ʲk-abeʳͰ͢ɻ • ٕज़ॻయ11 https://techbookfest.org/event/tbf11/market એ
͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ