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

どうしてもPerlでドローンを飛ばしたい人のためのハードウェアハック概論

mackee
August 21, 2015

 どうしてもPerlでドローンを飛ばしたい人のためのハードウェアハック概論

マコピー a.k.a mackee_w
面白法人カヤック

YAPC::Asia 2015
2015-08-21 #yapcasiaC

mackee

August 21, 2015
Tweet

More Decks by mackee

Other Decks in Programming

Transcript

  1. Ͳ͏ͯ͠΋PerlͰ
    υϩʔϯΛ
    ඈ͹͍ͨ͠
    ਓͷͨΊͷϋʔυ΢Σ
    ΞϋοΫ֓࿦
    Ϛίϐʔ a.k.a mackee_w
    ໘ന๏ਓΧϠοΫ
    YAPC::Asia 2015

    2015-08-21 #yapcasiaC

    View full-size slide

  2. @mackee_w
    a.k.a Ϛίϐʔ

    ໘ന๏ਓΧϠοΫ
    ࢓ࣄ
    ιʔγϟϧήʔϜͷ
    αʔόαΠυΤϯδχΞ

    ӡ༻&։ൃ
    ओʹPerlͱGolang

    View full-size slide

  3. 1िؒલʹϦϦʔε͠·ͨ͠
    PR

    View full-size slide

  4. ࿩୊ʹग़͔ͨ͠Βʹ͸
    ͪΐͬͱຊ୊ʹͭͳ͍͛ͯ͘
    ΜͰ͚͢ΕͲ

    View full-size slide

  5. Pocket Footballer(PSGI)
    yellowpages (Go)

    View full-size slide

  6. ෳ਺ͷΞʔΩςΫνϟͰ
    ໾ׂΛ෼୲ͯ͠
    Ұͭͷ໨తΛୡ੒͢Δ

    View full-size slide

  7. ϋʔυ΢ΣΞʹ΋ಉ͡Α͏ͳ
    ͜ͱ
    ద༻Ͱ͖ͳ͍͔ͱ͍͏࿩Λ͠
    ·͢

    View full-size slide

  8. Agenda (લ൒ઓ)
    • ങͬͨΫΞουίϓλʔΛ֎෦͔Βૢ࡞͢Δ
    • ిؾతհೖ
    • ͦΕͰ΋μϝͳΒྫ͑͹෺ཧͰ཈͑͜Ή
    • ΈΜͳେ޷͖ి೾ͷ࿩
    • ৐ͬऔΔͷ͕μϝͳΒج൘͝ͱೖΕସ͑Δ

    View full-size slide

  9. • ങͬͨΫΞουίϓλʔΛ֎෦͔Βૢ࡞͢Δ
    • ిؾతհೖ
    • ͦΕͰ΋μϝͳΒྫ͑͹෺ཧͰ཈͑͜Ή
    • ΈΜͳେ޷͖ి೾ͷ࿩
    • ৐ͬऔΔͷ͕μϝͳΒج൘͝ͱೖΕସ͑Δ
    Agenda (લ൒ઓ)

    View full-size slide

  10. ͕࣌ؒ༨ͬͨΒΞΠσΟΞϨ
    ϕϧͰ͕͢
    ×ͷ෦෼Λ࿩ͦ͏͔ͱ

    View full-size slide

  11. Agenda (ޙ൒ઓ)
    • ͕Μ͹ͬͯΫΞουίϓλʔΛ࡞Δ
    • ΫΞουίϓλʔͷߏ੒ཁૉ
    • AmazonͰύʔπΛങ͍ͬͯ͘
    • PerlͰૢ࡞ͯ͠ΈΔ

    View full-size slide

  12. ͬͪ͜͸ͳΜͱ͔ͳͬͨ
    ͷͰָ͓͠Έʹ

    View full-size slide

  13. ങ͖ͬͯͨυϩʔϯΛ
    ૢ࡞͢Δ

    View full-size slide

  14. τΠϔϦ(ʙ̎ສԁ)

    View full-size slide

  15. Parrotͷυϩʔϯ(3ສԁʙ)

    View full-size slide

  16. DJI Phantom(10ສԁʙ)

    View full-size slide

  17. Ready To Fly
    • ϓϩϙ(ૹ৴ػ)ͱຊମ͕ηοτͰೖ͍ͬͯΔౕ
    • ϖΞϦϯάࡁΈ ௐ੔ࡁΈ
    • ໨తͱͯ͠͸ۭࡱ or ඈߦ

    View full-size slide

  18. ిؾతհೖ

    View full-size slide

  19. DJI Phantom
    • ͜Μͳײ͡ͷίϯτϩʔϥ͕ೖ͍ͬͯΔ

    View full-size slide

  20. DJI Phantom
    • ͜Μͳײ͡ͷίϯτϩʔϥ͕ೖ͍ͬͯΔ
    →Ϟʔλʔ
    ϓϩϙˠ

    View full-size slide

  21. NAZAͱ͍͏ίϯτϩʔϥ
    • த਎Ͳ͏ͳ͍ͬͯΔͷ͔ෆ໌
    • WindowsͰPID஋Λ͍͡Διϑτ͕͋Δ͚Ε
    Ͳɺϓϩτίϧͱ͔Θ͔Βͳ͍
    • ϋοΫ͢Δޱ͸ͳ͍ͷͰ͸ɾɾɾɾʁ

    View full-size slide

  22. ϒϥοΫϘοΫεతʹ
    ϋοΫ͍ͯ͘͠

    View full-size slide

  23. ϓϩϙͷग़͢৴߸
    • ݹ͖ྑ͖αʔϘ1ຊʹ͖ͭ1ຊͷέʔϒϧΛ࢖
    ͏৴߸ = PWM (Pulse Width Modulation)
    • ύϧε෯੍ޚ
    • 0ͱ1ͷ࣌ؒͷ௕͞Ͱ஋ΛܾΊΔ

    View full-size slide

  24. ೾ܗΛݟͯΈΔ

    View full-size slide

  25. ೾ܗΛݟͯΈΔ
    ͜͜ͷ෯͕஋

    View full-size slide

  26. ϋʔυ΢ΣΞߏ੒

    View full-size slide

  27. ϋʔυ΢ΣΞߏ੒
    Firmata (UART) PWM

    View full-size slide

  28. ೖΔ͔ͳʔೖΔ͔ͳʔ

    View full-size slide

  29. RaspberryPi͕ͬ͢ΆΓऩ·Δ

    View full-size slide

  30. Firmata
    • ArduinoΈ͍ͨͳϚΠίϯͱPCؒͷ௨৴ϓϩτί
    ϧ UART(Serial)Λ༻͍Δͷ͕جຊ
    • MIDIϕʔε
    • ArduinoIDEͷඪ४ϥΠϒϥϦͰ࢖͏͜ͱ͕ग़དྷΔ
    • PerlͩͱDevice::Firmata͕CPANʹ͋Δ

    View full-size slide

  31. ArduinoͰͷPWMग़ྗ
    • analogWriteͱ͍͏ͷ͕͋Δ͕͜Ε͸ແࢹ(0-255
    ·Ͱͷ஋͔͠औΕͳ͍ɻͦͷ͏ͪ࢖͑Δͷ͸͘͝
    Θ͔ͣͰਫ਼౓͕ѱ͍)
    • Arduinoʹ͸αʔϘϞʔλͷϥΠϒϥϦ͕͋Δͷ
    ͰͦΕΛ࢖͏ɻus୯ҐͰॻ͖ࠐΊΔ
    • ϓϩϙ৴߸͸௨ৗ1000us - 2000usͷؒΛऔΔ

    View full-size slide

  32. RaspberryPiଆͷϓϩάϥϜ
    • OpenCVΛ૊Έ߹ΘͤΔؔ܎্ɺ࣮੷ͷ͋Δ
    PythonΛ࢖༻
    • pyfirmataͰarduinoͱ௨৴͢ΔϓϩηεͱOpenCV
    ΍֎෦API͔Βͷૢ࡞Λड͚෇͚ΔϓϩηεΛ෼཭
    • ͜ͷؒΛੜιέοτ௨৴ͷςΩετϓϩτίϧͰ΍
    ΓͱΓ͢ΔΑ͏ʹͨ͠

    View full-size slide

  33. ϘʔυΛ҆શʹ࡞Δ
    • Phantomͷͱ͖͸հೖ͢ΔϘʔυ͕ڰ͏ͱͲ͔ͬඈΜ
    Ͱ͍ͬͯ͠·͏ͷͰɺ੾Γସ͑Λඪ४ICΛ࢖ͬͨσΟ
    εΫϦʔτͷճ࿏Ͱߦ͍ͬͯͨ
    • 2chϚϧνϓϨΫαICΛԿݸ͔૊Έ߹Θͤͯ࢖͏PWM
    ΛεΠον
    • հೖϘʔυ͕ނোͯ͠΋ϓϧΞοϓ఍߅Ͱ͋Δఔ౓ͷ
    έʔε͸खಈଆʹ੾ΓସΘΔΑ͏ʹ͍ͯͨ͠

    View full-size slide

  34. ICͷதͷճ࿏͕༨ͬͨͷͰ
    • ࢖ͬͨIC͸4053Ͱɺ2chϚϧνϓϨΫα͕3ݸ
    ೖ͍ͬͯͯɺϓϩϙ৴߸4ͭΛ੾Γସ͑Δʹ͸
    2ͭඞཁ
    • ͔ͦ͠͠ͷ৔߹2ݸ෼ͷճ࿏͕༨Δ

    View full-size slide

  35. ICͷதͷճ࿏͕༨ͬͨͷͰ
    • ͪͳΈʹհೖճ࿏͸पลػثͷIO͕଍Γͳͯ͘2
    ͭ෼ͷArduinoΛࠞࡌ͍ͯͨ͠
    • Arduinoͷॻ͖ࠐΈʹ͸UARTΛ࢖͏
    • ιϑτ΢ΣΞͰॻ͖ࠐΈઌͷArduinoΛεΠον
    ͯ͠ܨ͗ม͑ͣʹεέονΛॻ͖ࠐΉΑ͏ʹͨ͠

    View full-size slide

  36. લ൒ઓऴྃ

    View full-size slide

  37. Agenda (ޙ൒ઓ)
    • ͕Μ͹ͬͯΫΞουίϓλʔΛ࡞Δ
    • ΫΞουίϓλʔͷߏ੒ཁૉ
    • AmazonͰύʔπΛങ͍ͬͯ͘
    • PerlͰૢ࡞ͯ͠ΈΔ

    View full-size slide

  38. ͕Μ͹ͬͯ
    ΫΞουίϓλʔΛ࡞Δ

    View full-size slide

  39. ͷલʹɺΫΞουίϓλʔ͸
    ԿނඈͿͷ͔ʁ

    View full-size slide

  40. ࣮͸ͦΕͧΕճసํ޲͕ҧ͏

    View full-size slide

  41. ࣮ࡍʹճͯ͠Έͯ
    ԻͰฉ͍ͯΈΔ

    View full-size slide

  42. ΫΞουίϓλʔͷߏ੒ཁૉ
    ϑϨʔϜ

    View full-size slide

  43. ΫΞουίϓλʔͷߏ੒ཁૉ
    ϒϥγϨεϞʔλʔ

    View full-size slide

  44. ΫΞουίϓλʔͷߏ੒ཁૉ
    ESC(Ξϯϓ)

    View full-size slide

  45. ΫΞουίϓλʔͷߏ੒ཁૉ
    ίϯτϩʔϥʔ

    View full-size slide

  46. MultiWii
    • Arduino + WiiϦϞίϯͷ9࣠ηϯαΛ
    ࢖ͬͨΦʔϓϯιʔεϓϩδΣΫτ
    • ΦʔϓϯιʔεͳͷͰNAZAͱҧͬͯ
    த਎ΛݟΔ͜ͱ͕ग़དྷΔ

    View full-size slide

  47. ΫΞουίϓλʔͷߏ੒ཁૉ
    όοςϦʔ

    View full-size slide

  48. ΫΞουίϓλʔͷߏ੒ཁૉ
    ϓϩϙͱड৴ػ

    View full-size slide

  49. ͜ΕΒΛਖ਼ͭ͘͠ͳ͙ͱඈͿʂ

    View full-size slide

  50. ग़དྷͨͷ͕ίνϥͰ͢

    View full-size slide

  51. ඈ͹ͯ͠ΈΔ

    View full-size slide

  52. ্ख͘ඈ͹ͳ͍࣌͸
    • ΊͪΌͪ͘Όૢॎ͕೉͍͠
    • খܕͷػମͳͷͰϑΟʔυόοΫ੍ޚΛڧΊ
    ʹೖΕͯ΍Δඞཁ͕͋Δ
    • MultiWii͸GUI/CUI͔ΒPID஋Λ͍͡Δ͜ͱ͕
    ग़དྷΔ -> DΛߴΊʹͯ҆͠ఆ

    View full-size slide

  53. MultiWiiͷνϡʔχϯά
    MultiWiiConf

    View full-size slide

  54. MultiWiiͷνϡʔχϯά
    https://github.com/c---/MultiWiiCL

    View full-size slide

  55. ͦͯ͜͠͏ͳΔ

    View full-size slide

  56. Perl͔Βඈ͹ͯ͠ΈΔ

    View full-size slide

  57. MultiWii Serial Protocol
    • MultiWiiͱ͍͏ϓϩδΣΫτͷίϯτϩʔϥΛ
    ࢖͓ͬͯΓɺத਎͸Φʔϓϯιʔε
    • UARTͰίϚϯυܦ༝Ͱͷૢ࡞΋Մೳ(PID஋Λ
    GUI͔Β͍͡ΔϓϩάϥϜ͸͜ΕΛ࢖͍ͬͯΔ)
    • ͔ͤͬ͘ͳͷͰϞδϡʔϧΛ࡞ͬͨ

    View full-size slide

  58. Device::MultiWii
    Protocol::MultiWii

    View full-size slide

  59. ͜Μͳײ͡
    use Device::MultiWii;
    my $port = "/dev/tty.usbserial";
    my $mw = Device::MultiWii->new(port => $port);
    is exception { $mw->open }, undef;
    my $ident = $mw->fetch_ident;
    cmp_deeply $ident, {
    version => 230,
    multitype => 3,
    capability => ignore(),
    };

    View full-size slide

  60. ͜Μͳײ͡
    my $rc = $mw->fetch_rc;
    cmp_deeply $rc, {
    yaw => 1500,
    pitch => 1500,
    roll => 1500,
    throttole => 1500,
    auxs => ignore(),
    };
    $rc->{yaw} = 1400;
    ok $mw->set_raw_rc(%$rc);
    $refetched_rc = $mw->fetch_rc;
    cmp_deeply $refetched_rc, {
    yaw => 1400,
    pitch => 1500,
    roll => 1500,
    throttole => 1500,
    auxs => ignore(),
    };

    View full-size slide

  61. ໰୊఺
    ৗʹૹΓଓ͚ͳ͍ͱ
    ϓϩϙ৴߸Ͱ্ॻ͖͞ΕΔ

    View full-size slide

  62. MSPʹΑΔRC্ॻ͖ͷ࢓૊Έ
    MSP(UART)
    PWM

    View full-size slide

  63. MSPʹΑΔRC্ॻ͖ͷ࢓૊Έ
    1. MSPͰRC্ॻ͖

    View full-size slide

  64. MSPʹΑΔRC্ॻ͖ͷ࢓૊Έ
    1. MSPͰRC্ॻ͖
    2. Χ΢ϯλ͕50ʹηοτ͞Εͯ
    ͦͷؒ͸্ॻ͖

    View full-size slide

  65. MSPʹΑΔRC্ॻ͖ͷ࢓૊Έ
    1. MSPͰRC্ॻ͖
    2. Χ΢ϯλ͕50ʹηοτ͞Εͯ
    ͦͷؒ͸্ॻ͖
    ←͜ͷΧ΢ϯλ͕
    ҰॠͰ0ʹͳΔʂʂʂ

    View full-size slide

  66. MSPʹΑΔRC্ॻ͖ͷ࢓૊Έ
    1. MSPͰRC্ॻ͖
    2. Χ΢ϯλ͕50ʹηοτ͞Εͯ
    ͦͷؒ͸্ॻ͖
    ←͜ͷΧ΢ϯλ͕
    ҰॠͰ0ʹͳΔʂʂʂ
    3. ͬͪ͜ͷ৴߸Ͱ
    ্ॻ͖͞ΕΔ

    View full-size slide

  67. ֘౰෦෼ͷίʔυ
    if (chan<8 && rcSerialCount > 0) {
    rcSerialCount --;
    #if defined(FAILSAFE)
    failsafeCnt = 0;
    #endif
    if (rcSerial[chan] >900) {
    rcData[chan] = rcSerial[chan];
    }
    }

    View full-size slide

  68. ͜͏ม͑ͨίʔυ
    if (
    chan<8 &&
    (rcData4Values[AUX1][rc4ValuesIndex] > 1800 ||
    rcSerialCount > 0)) {
    rcSerialCount --;
    #if defined(FAILSAFE)
    failsafeCnt = 0;
    #endif
    if (rcSerial[chan] >900 && (chan == ROLL || chan ==
    PITCH || chan == THROTTLE || chan == YAW)) {
    rcData[chan] = rcSerial[chan];
    }
    }

    View full-size slide

  69. AUXΛεΠονϯάʹ࢖͏
    • εςΟοΫҎ֎ʹ͍Ζ
    ͍ΖεΠονͱ͔͍ͭ
    ͍ͯΔ͚ΕͲɺ͜Εͷ
    ஋΋ૹ৴Ͱ͖Δ -> AUX
    • ࠓճ͸ӈ্ͷεΠον
    ΛAUX1ʹׂΓ౰ͯͨ

    View full-size slide

  70. ͯ͞Perl͔Β࢖͑ΔΑ͏ʹ
    ͳͬͨͷͰ

    View full-size slide

  71. Q: Perl͕ಈ͘ೖख༰қͷதͰ
    ΋ͬͱ΋ϑοτϓϦϯτখ͞
    ͍ίϯϐϡʔλ͸ʁ

    View full-size slide

  72. Raspberry Pi

    View full-size slide

  73. Raspberry Pi
    85.60 mm × 56.5 mm

    View full-size slide

  74. Raspberry Pi
    85.60 mm × 56.5 mm

    View full-size slide

  75. Intel Edison

    View full-size slide

  76. Intel Edison
    35.5mm × 25.0mm

    View full-size slide

  77. Intel Edison + Breakout Board
    61mm x 29mm

    View full-size slide

  78. Intel Edison + Breakout Board
    61mm x 29mm

    View full-size slide

  79. Intel Edison
    • 500MHz Atom σϡΞϧίΞ (x86ͩʂʂʂʂ)
    • ϔϦ੎ͱͯ͠͸7V - 15Vͷిݯ͕৯͑ΔͷͰ3
    ηϧLiPo12V͕ͦͷ··৯͑Δͷ͕͏Ε͍͠
    • RasPiʹ͍͍ͭͯͳ͍WiFi ͱ BT ͕͋Δ

    View full-size slide

  80. Intel Edison meets MultiWii
    • Edison͸UARTΛ2ܥ౷͍࣋ͬͯΔ͕Ϩϕϧม׵͕
    ඞཁ(1.8V IO)ͳͷͰOTGέʔϒϧͰUSB-UARTม
    ׵Λհͯ͠઀ଓɻϋϯμ෇͚ෆཁͩʂ
    • Breakout boardఈ໘ʹ2.54mmϐονͷϗʔϧ͕
    ۭ͍͍ͯΔ͕͜ͷ഑ஔͩͱϒϨουϘʔυʹͤ͞
    ͳ͍ͷͰळ݄ిࢠͷม׵Ϙʔυ͕࣮ݧ༻ʹ͸͓͢
    ͢ΊͰ͢

    View full-size slide

  81. ىಈͯ͠ΈΔ
    (ةͳ͍ͷͰӋͳ͠Ͱ͢)

    View full-size slide

  82. EdisonʹೖΕͨ΋ͷ
    • plenv (System PerlͷίΞϞδϡʔϧ͕ශ૬Ͱ
    opkgͰಥͬࠐΈ·͘Βͳ͍ͱ͍͚ͳ͍)
    • mackerel-agent(ωλ࿮ɻόοςϦʔిѹͱ͔
    ߴ౓ͱ͔ܭଌͰ͖ͨΒ౤͛ͯ΋͍͍͔΋)

    View full-size slide

  83. Slack௨஌ೖΕ͍ͯΔͷͰ
    ى͖Δ·Ͱ଴ͬͯΈ·͢

    View full-size slide

  84. جຊCRITICALͰىಈͨ࣌͠ʹ
    OKʹͳΔײ͡Ͱ෺૽

    View full-size slide

  85. Perl͔Βૢ࡞͢Δ͚ͩͰ͸෺
    ଍Γͳ͍ͷͰ
    ͪ͜ΒΛPerlͰಡΈ·͢

    View full-size slide

  86. LeapMotion
    • Ұ࣌ظ࿩Λฉ͔ͳ͘ͳΓ·͕ͨ͠ɺࠓͰ͸
    OculusͳͲͷVRϔουηοτʹ෇͚ͯࣗ෼ͷ
    खΛVRʹු͔͹ͤΔ༻్Ͱ෮ݖ͖͍ͯͯ͠Δ
    • ࠷ۙਫ਼౓্͕͕ͬͨΒ͍͠(͍ͭ࠷ۙങͬͨͷ
    ͰΑ͘Θ͔Βͳ͍Ͱ͕͢……)

    View full-size slide

  87. LeapMotion x QuadCopter
    • WebSocketͰܨ͛ΒΕΔͷͰPerl͔ΒͰ΋৘
    ใΛऔΔ͜ͱ͕ग़དྷΔ
    • ͜͜Ͱ͸AnyEvent::LeapMotionΛ࢖͏
    • ϓϩϙ͡Όͳͯ͘खͷͻΒ͚ͩͰු͔ͤͯΈ
    Δ

    View full-size slide

  88. ݁ߏݫ͍͠ɾɾɾ

    View full-size slide

  89. 1. खͷ܏͖ΛऔΔ

    View full-size slide

  90. 1. खͷ܏͖ΛऔΔ
    2. Edisonʹཱ͍ͬͯΔPSGIʹ
    ϦΫΤετΛ౤͛Δ

    View full-size slide

  91. 1. खͷ܏͖ΛऔΔ
    2. Edisonʹཱ͍ͬͯΔPSGIʹ
    ϦΫΤετΛ౤͛Δ
    3. PSGIͷதͰDevice::MultiWiiʹ
    ॻ͖ࠐΈ

    View full-size slide

  92. 1. खͷ܏͖ΛऔΔ
    2. Edisonʹཱ͍ͬͯΔPSGIʹ
    ϦΫΤετΛ౤͛Δ
    3. PSGIͷதͰDevice::MultiWiiʹ
    ॻ͖ࠐΈ 4. ΪϡΠϯΪϡΠʔϯʂ

    View full-size slide

  93. ·ͱΊ
    • ϋʔυ΢ΣΞϋοΫʹ͸༷ʑͳํ๏͕͋Δ͕ɺ
    ΍͸Γத਎͕෼͔͍ͬͯΔ΋ͷΛ৐ͬऔΔͷ
    ͕Ұ൪༰қ͍
    • υϩʔϯ͸࡞ΕΔɹΈΜͳ࡞Ζ͏
    • Perl͔Βૢ࡞Ͱ͖Ε͹͍ΖΜͳ͍͍͜ͱ΍ѱ͍
    ͜ͱ͕ग़དྷָ͍ͯ͠Ͷʂ

    View full-size slide

  94. ϙέοτϑοτϘʔϥʔͰݕࡧ
    PR

    View full-size slide

  95. ڈ೥ͷҾ͖ଓ͖શһਓࣄ෦

    View full-size slide

  96. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View full-size slide

  97. ී௨ͷϔϦͷ࢓૊Έ

    View full-size slide

  98. ΫΞουίϓλʔͷ৔߹
    • ্ঢԼ߱
    • શମͷճస਺ͷ্͛Լ͛
    • ԣͷҠಈ(ϩʔϧ)
    • ࠨӈͷճస਺Ͱ܏͔ͤΔ
    • લޙͷҠಈ(ϐον)
    • લޙͷճస਺Ͱ܏͔ͤΔ

    View full-size slide

  99. ΊͪΌͪ͘Ό؆୯ͩʂ

    View full-size slide

  100. ϔϦͷ৔߹
    • ্ঢɺԼ߱
    • ڧ͍ऑ͍ ← Θ͔Δ
    • લޙࠨӈ
    • ʁʁʁʁʁʁʁʁ

    View full-size slide

  101. ϔϦͷϩʔλʔͷ෇͚ࠜΛ
    Α͘ݟͯΈΑ͏ʂ

    View full-size slide

  102. ϔϦͷϩʔλʔͷ෇͚ࠜΛ
    Α͘ݟͯΈΑ͏ʂ

    View full-size slide

  103. εϫογϡϓϨʔτ
    • ϩʔλʔͷ֯౓͸ճస͢Δ͏ͪʹՄม͢Δ
    • લʹਐΈ͍ͨ࣌͸ޙΖͷͱ͖ʹཱͯͯલʹདྷ
    ͨ࣌͸৸͔ͤΔ -> ػମ͕܏͘
    • εϫογϡϓϨʔτͳΔ෦඼Ͱʮ͜ͷ֯౓ͷ
    དྷͨ࣌͸৸͔ͤΔɺཱͨͤΔʯΈ͍ͨͳͷΛ
    ܾΊ͍ͯΔ

    View full-size slide

  104. ↑͔͜͜Β্͕ճΔ

    View full-size slide

  105. ܏͔ͤΔͱΞʔϜͱ
    ϦϯΫػߏͰ
    Ӌ͕৸Δ/ཱͭ

    View full-size slide

  106. ΊͬͪΌෳࡶʂ
    Ͱ΋ඒ͍͠ʂʂʂ

    View full-size slide