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
68
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
86
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
59
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
61
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
100
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
450
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
820
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
460
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
100
テストからより良い組込みソフトウェア開発を考える
kabe
0
180
Other Decks in Technology
See All in Technology
進化する大規模言語モデル評価: Swallowプロジェクトにおける実践と知見
chokkan
PRO
3
400
次世代のメールプロトコルの斜め読み
hirachan
0
120
知覚とデザイン
rinchoku
1
690
AIの個性を理解し、指揮する
shoota
3
590
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
220
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
600
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
180
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
270
触れるけど壊れないWordPressの作り方
masakawai
0
580
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
230
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
230
新米エンジニアをTech Leadに任命する ー 成長を支える挑戦的な人と組織のマネジメント
naopr
1
340
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Site-Speed That Sticks
csswizardry
13
940
Agile that works and the tools we love
rasmusluckow
331
21k
The World Runs on Bad Software
bkeepers
PRO
72
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
KATA
mclloyd
PRO
32
15k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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/ ࢀরɾҾ༻
͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ