Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arduinoでモーター制御ロジックを実装した話

 Arduinoでモーター制御ロジックを実装した話

2021/06/29(火)RustのLT会 Shinjuku.rs #16 @オンラインの資料

84931a5617d844ecfda982721de3a9e9?s=128

grace2riku

June 29, 2021
Tweet

Transcript

  1. ArduinoͰϞʔλʔ੍ޚϩδοΫΛ࣮૷ͨ͠࿩ Ѩ෦ߞೋ/2021.6.29 RustͷLTձ Shinjuku.rs #16 @ΦϯϥΠϯ 1

  2. • ࣗݾ঺հ • ຊ೔ͷςʔϚ • Ϟʔλ੍ޚϩδοΫͱ͸? • ։ൃ؀ڥ • ։ൃͷྲྀΕ

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

    • Twitterɿ@juraruming • طץٕज़ॻɿ https://techbookfest.org/product/6581675934875648?productVariantID=5815321967460352 https://techbookfest.org/product/4581772882870272?productVariantID=5309574368198656 ࣗݾ঺հ
  4. • લճͷShinjuku.rs#15ͰॳࢀՃ͍͖ͤͯͨͩ͞·ͨ͠ɻ ɹ ɹRustॳ৺ऀ͕ArduinoΛLνΧͯ͠Έͨ https://speakerdeck.com/grace2riku/rustchu-xin-zhe- gaarduinowoltikasitemita-bb5de094-8ee0-48a6-af6e-a8ce7d430309 ࣗݾ঺հ-2

  5. • CίʔυͷϞʔλ੍ޚϩδοΫΛRustʹҠ২ͯ͠Έ·ͨ͠ɻ ɹ૊ࠐΈܥͷ࿩ʹಛԽ͍ͯ͠·͢ɻ ɹҠ২ͷ࡞ۀ಺༰ɺײ૝ͳͲΛڞ༗͍͚ͤͯͨͩ͞Ε͹ͱࢥ͍·͢ɻ Ҡ২ݩιʔείʔυɿhttps://github.com/grace2riku/EVKartArduinoIDE Ҡ২ޙιʔείʔυɿhttps://github.com/grace2riku/avr-hal/tree/add_evkart ຊ೔ͷςʔϚ

  6. • ੍ޚର৅͸ιϑτ΢ΣΞ੍ޚ͕ඞཁͳϒϥγϨεϞʔλɻ ɹిݯON͢Ε͹Ϟʔλճస͢Δϛχ࢛ۦͷDCϞʔλͱ͸ҟͳΔɻ Ϟʔλ੍ޚϩδοΫͱ͸?

  7. None
  8. ੍ޚʹඞཁͳϚΠίϯपลػೳ͸࣍ͷ௨Γɻ • λΠϚɿ੍ޚλΠϛϯάੜ੒ͷͨΊʹඞཁ(ࠓճ͸10ms) • ֎෦ׂΓࠐΈɿϞʔλҐஔݕग़ͷͨΊ(্ཱ͕ͪΓɺཱͪԼ͕Γͷ྆Τοδݕग़) • ADม׵ɿϞʔλճస਺੍ޚ͠଎౓ΛมߋՄೳʹ͢ΔͨΊ • PWMɿϞʔλۦಈͷͨΊ •

    ग़ྗϙʔτɿϞʔλۦಈͷͨΊ Ϟʔλ੍ޚϩδοΫͱ͸?
  9. Ϟʔλ੍ޚج൘Λյͯ͠͠·ͬͨͨΊ ӈͷ࣮ݧճ࿏Ͱ֬ೝɻ ։ൃ؀ڥ ᶃArduino-mega2560 ᶄϗʔϧηϯα୅ସDIP SWɿࠨ͔ΒWɾVɾUɻ ᶅFET High ୅ସLEDɿӈ͔ΒUɾVɾW ᶆFET

    Low ୅ସLEDɿӈ͔ΒUɾVɾW ᶇεϩοτϧ (Մม఍߅) ᶃ ᶄ ᶅ ᶆ ᶇ
  10. ࢖༻ͨ͠ιϑτ΢ΣΞ • avr-hal https://github.com/Rahix/avr-hal • boards/arduino-mega2560/example ҎԼͷαϯϓϧίʔυΛࢀর࣮͠૷ ͍ͯ͘͠ɻ ։ൃ؀ڥ

  11. • ։ൃ؀ڥߏங ɹavr-halͷQuickstartهࡌ௨ΓͷखॱͰ؀ڥ͕Ͱ͖Δɻ ɹhttps://github.com/Rahix/avr-hal • ࣮૷ ɹ- avr-halͷαϯϓϧϓϩάϥϜΛࢀߟʹίʔσΟϯάɻ ɹ- ֎෦ׂΓࠐΈͷΤοδઃఆ͸ϚΠίϯͷσʔλγʔτΛࢀরͨ͠ɻ

    ։ൃͷྲྀΕ
  12. ɹ- ֎෦ׂΓࠐΈͷΤοδઃఆ͸ϚΠίϯͷσʔλγʔτΛࢀরͨ͠ɻ

  13. ɾ࣮૷͸׬͕ྃͨ͠ظ଴ಈ࡞͸֬ೝग़དྷͣɻσόοάதɾɾɾɻ ɾC→RustҠ২࡞ۀͷ࣮૷͸׬ྃͨ͠ɻײ૝Λڞ༗͍ͤͯͩ͘͞͞ɻ C→RustҠ২࡞ۀͷײ૝

  14. ɾRustɾɾɾCΑΓϞμϯʹॻ͚Δͱ͍͏࣮ײΛಘͨɻ ɹॻָ͍͍͍ͯͯ͠ɻ ɹ- ܕਪ࿦͕خ͍͠ɻ ɹ- ϔομϑΝΠϧΛॻ͔ͳͯ͘΋ྑ͍ͷ͕خ͍͠ɻ ɹɹpubΩʔϫʔυͰؔ਺ͷՄࢹੑΛઃఆͰ͖Δͷָɻ ɹɹmodΩʔϫʔυͰϞδϡʔϧΛಡΈࠐΊָͯɻ ɹ- ม਺એݴͰσϑΥϧτ͕Πϛϡʔλϒϧ(ॻ͖׵͑ෆՄ)ͳͷ͕޷͖ɻ

    C→RustҠ২࡞ۀͷײ૝
  15. ɾavr-halͷτϨΠτͷߏ଄(֊૚ߏ଄)͕ྑ͘Θ͔Βͳ͔͚ͬͨͲ ɹrust-analyzerͷ͓͔͛ͰͳΜͱ͔ཧղͰ͖ͨɻ ɹ஌Γ͍ͨ৘ใʹૉૣ͘ΞΫηεͰ͖Δɻɹ C→RustҠ২࡞ۀͷײ૝

  16. ɾάϩʔόϧؔ਺ͷ࢖͍ํ ɹstatic mut xxx = xx; ɹϕετϓϥΫςΟεΛௐ΂Δɻ ݸਓతͳ՝୊

  17. ɾunwrap͕ྑ͘Θ͔Βͳ͍ɻ ɹࣗ෼ͷதͰ·͓ͩ·͡ͳ͍ͷೝࣝɻ ɹ ݸਓతͳ՝୊

  18. ٕज़ॻయ11ͰຊΛग़͢ͷͰΑ͚Ε͹νΣοΫ͍ͯͩ͘͠͞ɻ αʔΫϧ໊͸ʲk-abeʳͰ͢ɻ • ٕज़ॻయ11 https://techbookfest.org/event/tbf11/market એ఻

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