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
Rust初心者がArduinoをLチカしてみた
Search
k-abe
April 28, 2021
Technology
0
56
Rust初心者がArduinoをLチカしてみた
2021.4.27 RustのLT会 Shinjuku.rs #15 @オンラインの発表資料
k-abe
April 28, 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 Technology
See All in Technology
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.3k
強いチームと開発生産性
onk
PRO
34
11k
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
380
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
500
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Documentation Writing (for coders)
carmenintech
65
4.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Designing Experiences People Love
moore
138
23k
Bash Introduction
62gerente
608
210k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Faster Mobile Websites
deanohume
305
30k
Producing Creativity
orderedlist
PRO
341
39k
Happy Clients
brianwarren
98
6.7k
The Cult of Friendly URLs
andyhume
78
6k
Optimizing for Happiness
mojombo
376
70k
Writing Fast Ruby
sferik
627
61k
Transcript
Rustॳ৺ऀ͕ArduinoΛLνΧͯ͠Έͨ Ѩ෦ߞೋ/2021.4.27 RustͷLTձ Shinjuku.rs #15 @ΦϯϥΠϯ 1
• ࣗݾհ • ຊͷςʔϚ • ԿނɺλʔήοτArduino? • ࢼͯ͠Έͨ͜ͱ • ײ
࣍ 2
• ໊લɿѨ෦ߞೋ(͋ɹ͜͏͡) • ύʔιϧςΫϊϩδʔελοϑגࣜձࣾʹॴଐɻݸਓݟղɻ • ݣͰҩྍػثϝʔΧʹͯबۀதɻ • ࠐΈιϑτΣΞ։ൃɻ • ݴޠɿCݴޠ
• Rustྺɿࠓͷ3݄ࠒ͔Βຊࠊ͍Εֶͯश։࢝ • ϒϩάɿhttps://k-abe.hatenablog.com/ • Twitterɿ@juraruming ࣗݾհ
• RustͰArduino UNO(ͱಉ͡ϚΠίϯ)ͷLνΧɺͦͷଞपลػೳͷ੍ޚ͕ Ͱ͖ͨͷͰใڞ༗ɻ ຊͷςʔϚ
ࠐΈͰRustΛࢼ͢߹ͷλʔήοτج൘ͷબࢶͷྫ • Arduino • ϥζύΠ • STϚΠΫϩɹNucleoγϦʔζ ARM Cortex-MγϦʔζ •
GR-PEACH ARM Cortex-A • micro:bit • LEGO EV3 • GBA • PSP • ͦͷଞ ԿނɺλʔήοτArduino?
͍Ζ͍Ζબࢶ͕͋Δ͕ArduinoΛબΜͩཧ༝ɾɾɾ • ҎલArduinoΛͬͨ͜ͱ͕͋ͬͨɻ • Arduino UNOͰྑ͍͚Ͳ֎෦σόΠεΛ֎͚͢Δख͕ؒ͋Δɾɾɾɻ • Leafonyͱ͍͏ʮ͍Ζ͍Ζࢼͤͦ͏ͳʯج൘͕ͨ·ͨ·खݩʹ͋ͬͨɻ • LeafonyɾɾɾIoTΤοδσόΠεͱͯ͠ྑ͍ײ͡͡Όͳ͍͔???খͯ͘͞
͍͍֨ɻαϯϓϧίʔυެ։͞Ε͍ͯͨɻ͢͜͠ͷมߋͰRustͰಈ ͔ͤͦ͏ͳײ͡ɻ ԿނɺλʔήοτArduino?
݁Ռɺ࣍ͷ͜ͱ͕֬ೝͰ͖·ͨ͠ɻ ▪Leafony Basic KitʹͯʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜΛ֬ೝͰ͖ͨɻ • I2CϚελͰϥΠτɾϦʔυɻ ɹI2CεϨʔϒͷADίϯόʔλ͔ΒϘλϯిͷిѹΛಡΈग़ͤͨɻ • γϦΞϧ௨৴(ૹ৴) •
LνΧ • ms୯Ґͷ࣌ؒͪ(delay) ※Arduino UNOɺArduino MEGAͰLνΧ֬ೝͰ͖·ͨ͠ɻ ԿނɺλʔήοτArduino?
Leafonyͱ? ԿނɺλʔήοτArduino?
Leafony Basic Kitͱ? ԿނɺλʔήοτArduino?
• ʲavr-halʳͷιʔείʔυΛར༻ͤͯ͞Β͍֬ೝͨ͠ɻ ɹhttps://github.com/Rahix/avr-hal • ࠷ॳʲThe AVR-Rust projectʳΛmacͰࢼ͕ͨ͠։ൃڥߏஙͰ͖ͣʹ࠳ંɻavr- halʹҠߦͨ͠ɻ ࢼͨ͜͠ͱ
• ʲavr-halʳԼهͷϋʔυΣΞΛαϙʔτɻ ࢼͨ͜͠ͱ ɾLeafonyArduino UNOͱಉ ͡ϚΠίϯatmega328pΛ༻͠ ͍ͯΔɻ গ͠มߋͯ͠RustͰಈ͔ͤͳ͍ ͔ͳͱࢥͬͨͷͰௐࠪͨ͠ɻ
• LeafonyͷʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜ(Arduino IDE C Ͱ࣮͞Ε͍ͯΔ)ΛRustʹॻ͖͑Δɻ ɹϚΠίϯͱిݯϦʔϑͷADίϯόʔλI2CͰଓ͞Ε͍ͯΔɻ ɹArduino IDE൛I2CͷWireϥΠϒϥϦͰ࣮͞Ε͍ͯΔɻ ɹRustarduino_uno::I2cMasterͰI2CΛ࣮ݱ͢Δɻ •
ΫϩοΫʹґଘ͢Δॲཧ෦(γϦΞϧɺI2Cɺdelayؔ)Λ16MHz͔Β 8MHzʹมߋɻarduino UNO16MHz, Leafony8MHzͷͨΊɻ ࢼͨ͜͠ͱ
• ݁Ռ ɹavr-hal Arduino UNOͷαϯϓϧϓϩάϥϜΛLeafonyʹ߹Θͤͯগ͠ม ߋͨ͠ͱ͜ΖɺLeafonyͷʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜΛ ࣮ߦͰ͖ͨɻ ࢼͨ͜͠ͱ
• ݁Ռ ԼਤόοςϦిѹ(mV୯Ґ)ͷγϦΞϧσʔλΛද͍ࣔͯ͠Δͱ͜Ζɻ Ϙλϯిͷిѹ(3V)ΛಡΈग़͍ͤͯΔ༷ɻ ࢼͨ͜͠ͱ
• ϒϩάʹগ͠ৄ͘͠ॻ͍ͨͷͰΑ͚Εࢀর͍ͩ͘͞ɻ https://k-abe.hatenablog.com/entry/2021/04/14/125312 • ιʔείʔυGitHubΛࢀরɻ https://github.com/grace2riku/avr-hal/tree/add_leafony ࢼͨ͜͠ͱ
• ҰԠɺRustͰArduinoͱಉ͡ϚΠίϯΛಈ͔ͤͨͷͰྑ͔ͬͨɻ • Arduino IDEಉ༷ɺRustͷavr-halͰϚΠίϯͷϨδελΛҙࣝͤͣʹ ϋʔυΣΞ੍ޚͰ͖ͨɻ • RustͷجຊΛཧղͰ͖͍ͯͳ͍ͨΊɺ͓·͡ͳ͍ͷΑ͏ʹײ͡Δهड़ ͋Δɻ͜Ε͔ΒֶΜͰ͍͖͍ͨɻ •
RustͰArduinoɺબࢶͱͯ͠Ͳ͏Ͱ͔͢? ײ
• avr-hal https://github.com/Rahix/avr-hal • Leafony https://docs.leafony.com/docs/overview/ • Leafony Bacic Kit
https://docs.leafony.com/docs/products/basic/ • Leafony όοςϦిѹಡΈऔΓαϯϓϧϓϩάϥϜղઆ https://docs.leafony.com/docs/examples/beginner/1_p/basic/read_battery/ ࢀরɾҾ༻
͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ