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
67
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
54
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
42
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
56
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
92
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
400
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
730
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
410
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
100
テストからより良い組込みソフトウェア開発を考える
kabe
0
160
Other Decks in Technology
See All in Technology
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.2k
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
0
200
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
340
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
180
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
300
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
480
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
140
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
180
データ基盤からデータベースまで?広がるユースケースのDatabricksについて教えるよ!
akuwano
3
140
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
3
7.5k
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
160
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Six Lessons from altMBA
skipperchong
28
3.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
980
BBQ
matthewcrist
89
9.7k
A Modern Web Designer's Workflow
chriscoyier
695
190k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
What's in a price? How to price your products and services
michaelherold
246
12k
Embracing the Ebb and Flow
colly
86
4.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
Statistics for Hackers
jakevdp
799
220k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.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/ ࢀরɾҾ༻
͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ