Slide 1

Slide 1 text

Rustॳ৺ऀ͕ArduinoΛLνΧͯ͠Έͨ Ѩ෦ߞೋ/2021.4.27 RustͷLTձ Shinjuku.rs #15 @ΦϯϥΠϯ 1

Slide 2

Slide 2 text

• ࣗݾ঺հ • ຊ೔ͷςʔϚ • Կނɺλʔήοτ͸Arduino? • ࢼͯ͠Έͨ͜ͱ • ײ૝ ໨࣍ 2

Slide 3

Slide 3 text

• ໊લɿѨ෦ߞೋ(͋΂ɹ͜͏͡) • ύʔιϧςΫϊϩδʔελοϑגࣜձࣾʹॴଐɻݸਓݟղɻ • ೿ݣͰҩྍػثϝʔΧʹͯबۀதɻ • ૊ࠐΈιϑτ΢ΣΞ։ൃɻ • ݴޠɿCݴޠ • Rustྺɿࠓ೥ͷ3݄ࠒ͔Βຊࠊ͍Εֶͯश։࢝ • ϒϩάɿhttps://k-abe.hatenablog.com/ • Twitterɿ@juraruming ࣗݾ঺հ

Slide 4

Slide 4 text

• RustͰArduino UNO(ͱಉ͡ϚΠίϯ)ͷLνΧɺͦͷଞपลػೳͷ੍ޚ͕ Ͱ͖ͨͷͰ৘ใڞ༗ɻ ຊ೔ͷςʔϚ

Slide 5

Slide 5 text

૊ࠐΈͰRustΛࢼ͢৔߹ͷλʔήοτج൘ͷબ୒ࢶͷྫ • Arduino • ϥζύΠ • STϚΠΫϩɹNucleoγϦʔζ ARM Cortex-MγϦʔζ • GR-PEACH ARM Cortex-A • micro:bit • LEGO EV3 • GBA • PSP • ͦͷଞ Կނɺλʔήοτ͸Arduino?

Slide 6

Slide 6 text

͍Ζ͍Ζબ୒ࢶ͕͋Δ͕ArduinoΛબΜͩཧ༝͸ɾɾɾ • ҎલArduinoΛ࢖ͬͨ͜ͱ͕͋ͬͨɻ • Arduino UNOͰ΋ྑ͍͚Ͳ֎෦σόΠεΛ֎෇͚͢Δख͕ؒ͋Δɾɾɾɻ • Leafonyͱ͍͏ʮ͍Ζ͍Ζࢼͤͦ͏ͳʯج൘͕ͨ·ͨ·खݩʹ͋ͬͨɻ • LeafonyɾɾɾIoTΤοδσόΠεͱͯ͠ྑ͍ײ͡͡Όͳ͍͔???খͯ͘͞ ֨޷͍͍ɻαϯϓϧίʔυ΋ެ։͞Ε͍ͯͨɻ͢͜͠ͷมߋͰRustͰಈ ͔ͤͦ͏ͳײ͡ɻ Կނɺλʔήοτ͸Arduino?

Slide 7

Slide 7 text

݁Ռɺ࣍ͷ͜ͱ͕֬ೝͰ͖·ͨ͠ɻ ■Leafony Basic KitʹͯʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜΛ֬ೝͰ͖ͨɻ • I2CϚελͰϥΠτɾϦʔυɻ ɹI2CεϨʔϒͷADίϯόʔλ͔ΒϘλϯి஑ͷిѹΛಡΈग़ͤͨɻ • γϦΞϧ௨৴(ૹ৴) • LνΧ • ms୯Ґͷ࣌ؒ଴ͪ(delay) ※Arduino UNOɺArduino MEGAͰ΋LνΧ֬ೝͰ͖·ͨ͠ɻ Կނɺλʔήοτ͸Arduino?

Slide 8

Slide 8 text

Leafonyͱ͸? Կނɺλʔήοτ͸Arduino?

Slide 9

Slide 9 text

Leafony Basic Kitͱ͸? Կނɺλʔήοτ͸Arduino?

Slide 10

Slide 10 text

• ʲavr-halʳͷιʔείʔυΛར༻ͤͯ͞΋Β͍֬ೝͨ͠ɻ ɹhttps://github.com/Rahix/avr-hal • ࠷ॳ͸ʲThe AVR-Rust projectʳΛmacͰࢼ͕ͨ͠։ൃ؀ڥߏஙͰ͖ͣʹ࠳ંɻavr- halʹҠߦͨ͠ɻ ࢼͨ͜͠ͱ

Slide 11

Slide 11 text

• ʲavr-halʳ͸Լهͷϋʔυ΢ΣΞΛαϙʔτɻ ࢼͨ͜͠ͱ ɾLeafony͸Arduino UNOͱಉ ͡ϚΠίϯatmega328pΛ࢖༻͠ ͍ͯΔɻ গ͠มߋͯ͠RustͰಈ͔ͤͳ͍ ͔ͳͱࢥͬͨͷͰௐࠪͨ͠ɻ

Slide 12

Slide 12 text

• LeafonyͷʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜ(Arduino IDE C Ͱ࣮૷͞Ε͍ͯΔ)ΛRustʹॻ͖׵͑Δɻ ɹϚΠίϯͱిݯϦʔϑͷADίϯόʔλ͸I2CͰ઀ଓ͞Ε͍ͯΔɻ ɹArduino IDE൛͸I2CͷWireϥΠϒϥϦͰ࣮૷͞Ε͍ͯΔɻ ɹRust͸arduino_uno::I2cMasterͰI2CΛ࣮ݱ͢Δɻ • ΫϩοΫʹґଘ͢Δॲཧ෦෼(γϦΞϧɺI2Cɺdelayؔ਺)Λ16MHz͔Β 8MHzʹมߋɻarduino UNO͸16MHz, Leafony͸8MHzͷͨΊɻ ࢼͨ͜͠ͱ

Slide 13

Slide 13 text

• ݁Ռ ɹavr-hal Arduino UNOͷαϯϓϧϓϩάϥϜΛLeafonyʹ߹Θͤͯগ͠ม ߋͨ͠ͱ͜ΖɺLeafonyͷʮόοςϦిѹಡΈऔΓʯαϯϓϧϓϩάϥϜΛ ࣮ߦͰ͖ͨɻ ࢼͨ͜͠ͱ

Slide 14

Slide 14 text

• ݁Ռ Լਤ͸όοςϦిѹ(mV୯Ґ)ͷγϦΞϧσʔλΛද͍ࣔͯ͠Δͱ͜Ζɻ Ϙλϯి஑ͷిѹ(໿3V)ΛಡΈग़͍ͤͯΔ໛༷ɻ ࢼͨ͜͠ͱ

Slide 15

Slide 15 text

• ϒϩάʹগ͠ৄ͘͠ॻ͍ͨͷͰΑ͚Ε͹ࢀর͍ͩ͘͞ɻ https://k-abe.hatenablog.com/entry/2021/04/14/125312 • ιʔείʔυ͸GitHubΛࢀরɻ https://github.com/grace2riku/avr-hal/tree/add_leafony ࢼͨ͜͠ͱ

Slide 16

Slide 16 text

• ҰԠɺRustͰArduinoͱಉ͡ϚΠίϯΛಈ͔ͤͨͷͰྑ͔ͬͨɻ • Arduino IDEಉ༷ɺRustͷavr-halͰ΋ϚΠίϯͷϨδελΛҙࣝͤͣʹ ϋʔυ΢ΣΞ੍ޚͰ͖ͨɻ • RustͷجຊΛཧղͰ͖͍ͯͳ͍ͨΊɺ͓·͡ͳ͍ͷΑ͏ʹײ͡Δهड़΋ ͋Δɻ͜Ε͔ΒֶΜͰ͍͖͍ͨɻ • RustͰArduinoɺબ୒ࢶͱͯ͠Ͳ͏Ͱ͔͢? ײ૝

Slide 17

Slide 17 text

• 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/ ࢀরɾҾ༻

Slide 18

Slide 18 text

͝ਗ਼ௌɺ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ