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
【連続講座3】デザインパターンを学び、ソフトウェア設計に生かそう(Facade・Observer・State)
kabe
0
29
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
25
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
33
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
68
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
340
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
580
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
360
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
75
テストからより良い組込みソフトウェア開発を考える
kabe
0
120
Other Decks in Technology
See All in Technology
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
560
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
420
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
240
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
220
偏光画像処理ライブラリを作った話
elerac
1
170
組織におけるCCoEの役割とAWS活用事例
nrinetcom
PRO
4
120
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
340
「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly
i35_267
5
850
クラウド食堂とは?
hiyanger
0
110
手を動かしてレベルアップしよう!
maruto
0
200
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
300
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
1
270
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Optimizing for Happiness
mojombo
376
70k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
For a Future-Friendly Web
brad_frost
176
9.6k
Visualization
eitanlees
146
15k
Why Our Code Smells
bkeepers
PRO
336
57k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
It's Worth the Effort
3n
184
28k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
How STYLIGHT went responsive
nonsquared
98
5.4k
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/ ࢀরɾҾ༻
͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ