at builderscon tokyo 2018 1日目 メインホール by uzulla
࣮ʂ͋Δ୲ऀ͕ΈͨʮṖΨδΣοτʯ։ൃҰ࢙builderscon tokyo 2018
View Slide
@uzullaPHPer(?)ϝʔϧϑΥʔϚʔ౦ژീԦࢠࢢ
ʮṖΨδΣοτʯͱʁ• ిࢠ໊ࡳ• Raspberry pi + e paper display• ిΛͭͳ͙ͱɺಈ͖ग़໊͢ࡳ• https://github.com/builderscon/electronic_badge_2018• αϙʔλʔϊϕϧςΟ• mercari༷ڠࢍʹΑΓ࣮ݱ• 200ݸ
USBυϥΠϒʹͳΔ• PCͱͭͳ͙ͱɺUSBυϥΠϒͱͯ͠ೝࣝ͠ɺϑΝΠϧίϐʔՄೳ• ʢͪΐͬͱ·͔ͬͯΒʣ• PC͔Β͵͍ͯɺిݯΛૠ͢͠ͱ• ը૾͕εϥΠυγϣʔʂ• https://www.youtube.com/watch?v=ldZi0VksX1o
Ϋϥυಉظػೳ• QRίʔυΛεϚϗͰεΩϟϯ• ͖ͳը૾ΛΞοϓϩʔυ• ໊ࡳΛ࠶ىಈʂ• ࣗಈͰөʂʢཁWifiʣIoTͬΆ͍ʂʂ• (ձWifiҰԠॳظઃఆͯ͋͠Γ·͢)• (Ϋϥυαʔόޙऴྃ͠·͢ɺίʔυެ։ࡁΈ)• https://www.youtube.com/watch?v=RRAVv2eyS_Y
Ϗϧίϯ˒ࡾؒ˒ϋοΩϯά• ͦΕ͚ͩ͡Όͳ͍ɺϋοΧϒϧͳ໊ࡳʂ• ʢىಈ࣌ؒΛআ͘ʣ
Helloworld• NAFUDAΛPCʹͭͳ͗·͢• ҎԼͷίʔυΛstartup.shͱͯ͠NAFUDAυϥΠϒԼอଘecho "hello NAFUDA world!" | show_txt -# ͜ͷαϯϓϧsimple-sampleͷதʹ͋Γ·͢• (ͪΐͬͱ͔ͬͯΒऔΓ֎͠࠶ىಈ)• Hello worldʂ• ྫ͑curlͰσʔλͱ͖ͬͯͯදࣔͰ͖Δʂ
show_img• ಉ͡ϊϦͰɺը૾දࣔͰ͖·͢# ը૾ΛDLͯ͠ show_imgͰදࣔcurl 'https://builderscon.io/static/images/mrbeacon-001.png' > /tmp/bcon.pngshow_img /tmp/bcon.png
ϋʔυ৮Γ͍ͧ͢ʂ• GPIOΛ࠹͕ͳ͍ߏʂ• ݟ͍ͯͯෆ҆ʹͳΔʁςʔϓΛషΔͳͲ͠·͠ΐ͏ʂ
• ϒϨουϘʔυΛ༨നʹΓ͚ͭͨΓ• ϘλϯΛ͚ͭͨΓ• LEDΛ͚ͭͨΓ͢Δͱ• ͜ͷΑ͏ʹՒʑ͘͠ૉఢʹͳΓ·͢
• ޙ͍͍ײ͡ʹ͍ͬͯͬͯ͘Εʂৄ͘͠GithubͷυΩϡϝϯτͷdocs/FOR_HACKER.mdʹܝࡌ͞ΕͯΔϤʂ• NAFUDAυϥΠϒʹεΫϦϓτஔ͖େม͗͢Δ͔Βɺͬ͞͞ͱdocs/HOW_TO_LOGIN.mdΛݟͯɺϩάΠϯͯ͠Ͷʂ• όάϨϙͱ͔ISSUEʹ͍ͩ͘͞ʂͰ·ͣTROUBLESHOOT.mdΈͯ͘Εʂ
հ͓ΘͬͨͷͰɺຊɻ• ͜ΕΛ200ͭͬͨ͘ɺͱ͍͏ͷ͕ࠓճͷ͓Ͱ͢
ຊτʔΫͷత• (͕ࣗ࡞Βͳͯ͘)ṖΨδΣοτ͕΄͍͠!!• (࡞Δ|αϙʔτ)͢Δ(ਓ|৫)͕૿͑ͯ΄͍͠• ผͷṖΨδΣοτ͕ొ͠ɺ͜ͷṖΨδΣοτ͕དྷʹʮฏͷṖΨδΣοτ…ʯͱ͔ݴΘΕΔΑ͏ʹͳͬͯ΄͍͠ʂ• ʮٕ͘͢͝ज़͕͍ΔΘ͚Ͱͳ͍ʂʯ• (ࢲૉਓͰ͢!!ϓϩͷࢦಋΛ͏͚·͠ΐ͏)
࠷ॳʹ·ͱΊ• ҙཉ͕େ• ͕࣌ؒେ• ͓͕ۚେ• ͕ؒେ• ͕େ
͋Β͢͡ʮ͋ΔஉΠϯλʔωοτͰݟ͔͚ΔʰόοδʱʹಌΕ͍ͯͨʂ͔͜͠͠ͷฏͷຊʹ͓͍ͯͦ͏͍ͬͨϞϊΛ͍ͯ͠ΔΧϯϑΝϨϯεͳ͔ͬͨʂ͔͠͠ʂஉఘΊͳ͔ͬͨʂࣗෲΛ͖ΓɺṖͷύʔπΛதࠃ͔Β༌ೖͨ͠Γͯ͠ݽಠʹ༷ʑͳಠࣗݚڀΛ͓͜ͳ͍ͬͯͨʂʯ
ʮόοδʯͱ• "electronic badge"Ͱݕࡧ• ւ֎ͷΧϯϑΝϨϯεͰ͋ΔʢΒ͍͠ʣ• ిࢠΨδΣοτతͳαϜγϯά• ΄͍͠ʂͰɺΈͨ͜ͱͳ͍• ʮΑ͏͠ʂΔ͔ʂʂʯ
ͱ͜ΖͰɺͳʹ͕໘ന͍ʢओ؍ʣͷ͔ʁ• ΨδΣοτ໘ന͍ʢఆཧʣ• ʮେ͕͍࣋ͬͯΔʯͷ͕໘ന͍• ࣗͻͱΓͩͱऐ͍͠• ࡢͷʮ͠Ό͡ʯ
લᩀʢ201Xʙ2017 ʣ• ʮΓͨ͞ʯ͋ͬͨ• Ͳ͏Δ͔ʁ• όοδେମͷ߹ʮϚΠίϯʯ͕ΘΕ͍ͯΔ• ʮϚΠίϯ͔ʙʙʯʢࡏॅPHPerஊʣ• όοδΛ࣮ݱ͢Δํ๏ΛɺझຯͰՋͳ࣌ʹ୳͍ͯͨ͠
ྫ͑ɺArduino• ·͋ɺఆ൪• ͔͠͠ɺArduinoߴ͍…• ͍ͭ͘छྨ͕͋Δ͕ɺ༗໊ͳUnoͳͲ3ʙ4000ԁ͘Β͍• ޓ͍͕҆ɺେྔʹೖΕΒΕΔͷ͔Ṗ
8pino• ஸɺ͋Δࣄ(?)Ͱ৮ͬͯΈ͍ͯͨ• arduinoޓʢͷΑ͏ͳͷʣ• 8bit, 8MHz, 8KB, ෯8mm, 888ԁ• 8݄8ੜ·ΕͷീԦࢠࡏॅʹ࠷ߴʂ• খͯ͘͞࠷ߴɺ0.5g• (ӈͷج൫ંͬͯ͘Β͍ʹͳΔ)
Digisparkʢதԝʣ• ͍Θ͍҆8pino• ͦͦ͜͜খ͍͞͠ɺUSBʹͦͷ··ͬͯ͞͞࠷ߴ• ΊͪΌ͍҆ ˇ300Ґ• αϯϓϧίʔυ͕๛ͰɺΩʔϘʔυϚεΛΤϛϡϨʔτͰ͖ͯͨͷ͍͠ʢBad USBΈ͍ͨͳͷΛ࡞ͬͯ༡Δʣ
esp32• Wifi͕͋Γɺߴੑೳʢͦ͜ΒͷϚΠίϯʹ͘ΒΕʣ• ͍҆ʂʢ७ਖ਼arduinoʹൺΕʣ• লిྗͦΕͳΓ• ʢαϒηοτͷʣpython͕ಈ͘ʂ• ʮϝϞϦ͕ͬͱ΄͍͠ͳ…ɺhttpsͷJSON APIؾܰʹୟ͖͍ͨͳ…ʯ
m5stack• (جຊతʹESP32)• ӷথɺόοςϦʔɺεϐʔΧʔɺϘλϯɺWifi͖Ͱ࠷ߴʂ• ͔͠͠ೖखੑʹ͋Γʢਓؾނʣ• ଂόοςϦʔͨͳ͍ʢ110mAhʣ
micro:bit• ༗໊ɺ͘͢͝Α͘Ͱ͖ͯΔ• ηϯαɺεΠονɺLED༷ʑ͍ͭͯΔ• JSPythonͰίʔυ͕ॻ͚ΔɺWeb IDEΑ͘Ͱ͖ͯΔ• ͍͚Δ͔ʁʁ• ʢ…Μ͚ͩͲɺI2CSPIͰ֎෦σόΠε੍ޚ͕Ͳ͏ʹ͏·͘ಈ͔ͣఘΊͨʣ
ָʹͰ͖ͦ͏ͳͷ৭ʑࢼͨ͠• ݁ͱͯ͠ʮ͜Ε͍͠ͳʙʙʯ• Δલ͔Β͏ͬ͢ΒΘ͔͍͕ͬͯͨɺͬͯΈͯʮͰ͖ͳ͍/ͬͯΒ͑ͳ͍ࣗ৴ʯ͕Ͱ͖ͨ• ਖ਼͘͠ɺօؤுΕͰ͖Δ͕ɺؤுΒͤΔͷͲ͏ͳͷ͔ʁ• ʮΈΜͳָ͕ʹϋοΫͰ͖Δʯͱ͍͍ͳ…
։ൃɾσόοά͕ͭΒ͍• ී௨ͷΣϒΤϯδχΞʹʂ• CasmͰॻ͍ͯɺϏϧυͯ͠సૹ͢Δ• PC༻ͷϦονͳC libେମ͏͔͝ͳ͍(ϝϞϦతʹ)• ϓϦϯτσόοά͔͠Ͱ͖ͳ͍• ʢJTAG ങͬͯΒ͏ͷ…ʣ• ͦΕͱͯ͠γϦΞϧม͕͍Δ
σόοά͕ͭΒ͍̎• ී௨ͷΣϒΤϯδχΞʹʂ• ʮͳΜ͔จࣈ͕Ͱͳ͍…ʯ• ʮͦ͏ͩܗΛݟͯΈΑ͏ʂʯ• ʮ͜Ε੍͕ޚ৴߸ɺ͕࣍HͰ…ʯʢσʔλγʔτΛᛀΈͳ͕Βʣ• (օ͞Μͷ͝ՈఉʹΦγϩ͕͋ͬͯI2CSPIΛύʔεͰ͖ΔϓϩτίϧɾΞφϥΠβͳ͍߹͕ଟ͍)
ݱ࣮ͱͯ͠ج൫Λ࡞Δඞཁ͕͋Δ• σʔλΛ࡞ΓʼPCBʹൃ͠ʼήοτʂ• ͔ͨ͠ʹϚδοΫͰॻ͍ͯυϒ௮͚ͯ͠λϫγͰຏ͘ੲΑΓָ• ʮͱ͍͑(ࠓͷࢲʹ)ݱ࣮తͰͳ͍…SMTແཧ…ʯ• खΓ͢Δͱۚͱ༹͕͚࣌ؒΔ• (ւ֎ΧϯϑΝϨϯεΈ͍ͨʹɺԿສਓ͘ΔͳΒ͍͍͚Ͳ(?)
ੑೳݫ͍͠• CPUɺϝϞϦ͕ශऑ• ϝϞϦ͕ʮଟͯ͘ʯ512KBʢ8KBͱ͔ʣ• ʮωοτϫʔΫʁͳʹͦΕ͏·͍ͷʁʯ• ʮGETͰ͖·͢ʂSSLʁΒͳ͍ࢠͰ͢Ͷʯ• ʮHTTPSରԠʂ…jsonύʔεͪΐͬͱ…ʯ• ΣϒܥʢؚࣗΉʣʹϋοΫͮ͠Β͍ʂʂ
ͱ͍͏͜ͱͰ• ʢ͋͘·Ͱࣗͷ༻్ͰʣϚΠίϯແཧͩͳ͋…• ΓSBCʢγϯάϧϘʔυίϯϐϡʔλʔʣ͔…• (ϥζύΠͱ͔ɺLinuxͱ͔͕ಈ͘େମPCΈ͍ͨͳͭ)
raspberry pi 2 model B• (ॴҦɺී௨ͷϥζύΠ)• ͳΜͰͰ͖Δ͕ɺͰ͔͍• Ձ͕֨΅ͪ΅ͪߴ͍(5000ʙ7000ԁ)• 2AͷUSBిݯͰ҆ఆ͠ͳ͍ͱఆධͷߴফඅిྗ• (ը૾WikipediaΑΓ)
Raspberry pi zero w• খ͍͞ʂফඅిྗʂʢ150mAhʣ• Έͳ͞Μ͓ͳ͡ΈLinux͕ಈ͘ʂ• Wifi͖ʂ• ʮPHP͕ಈ͔͘Β࠾༻ʂʂʯ• PythonͳͲ͕͏͘͝ʂ• ͍҆ʂ• ͜Ε͍͍ͨͳ…
͔͠͠zero (w)ೖखੑ͕ѱʮ͔ͬͨʯ• ʮࡏݿΕʂʯʮ͓ҰਓҰݸʂʯ• ͢Δͱ2018/1ʹRaspberry Pi zero ʮwhʯ͕ొʂ• ʢ্͕͕ͬͨʣඦݸͰ؆୯ʹखʹೖΔʂ• ϐϯϔομ࠷ॳ͔Β͍ͭͯΔʂ(wɺϐϯϔομΛࣗͰΜ͚ͩ͢Δඞཁ͕͋ͬͨ)• ͍͚ͦ͏ʂ
σΟεϓϨΠฏߦͯ͠୳͍ͯͨ͠
όοΫϥΠτແ͠ӷথ• ී௨ͷӷথ• ဧͼऐͼΛײ͡ΒΕͯΑ͍• ফඅిྗ͍ͷָ• ίϯτϩʔϥ͕͍ͭͯΔͷͪΐͬͱߴ͍
ΩϟϥΫλӷথ• ͍҆• ੍ޚָ͕• ݟ͕ͨߥʑ͍͠ʢྑ͍ʣ• ׂͱେ͖͍ը໘͋Δ• ࣈग़ͤΔͭߴ͍• ࢹ͕֯ڱ͍ʢͷ͕ଟ͍ʣ
TFTӷথ• Χϥʔͩ͠ɺԠੑߴ͍• ͋Δҙຯ࠷ߴ• Ձ͕֨ߴ͍• ిྗ͕݁ߏඞཁ• HDMIϙʔτଓΰπ͍͠ɺSPIଓ͠ͳ͍ͱ͍ʢ͠ɺղ૾͕…ʣ
OLED(ϞϊΫϩ༗ػEL)• ʢൺֱతʣফඅిྗ• ϞϊΫϩͷบʹະདྷײ͕͋Δ• ϓϩάϥϜ͍͢͠• େը໘ϨΞɺଟ͘ͷͷখ͗͢͞Δ• (͜͏͍͏൚༻Կ͔ͷྲྀ༻ͳͷͰɺʮΑ͋͘ΔαΠζʯʹภΓ͕͋Δ)
LEDϚτϦΫε• Ԡߴ͍͠ΊͪΌΊͪΌ໌Δ͍ʂ(໌Δ͗͢Δ)• ղ૾͍ʢ㲈Ͱ͔͍ʣ• ফඅిྗߴ͍ʢًʹΑΔ͕ɺը૾ͷWS2812Bͷ16x16ϑϧύϫʔͩͱA͏ɺӈͷྫ໌Δ͞ΛߜͬͨLED෦͚ͩͷܭଌʣ• ͍҆LEDઢ͕ϦΞϧεύήοςΟʹͳ͍ͬͯ(WS2812Bͱ͔σʔλઢ1ຊͰࡁΉ͕)
৭ʑݟ͍ͯΔதͰ• ిࢠϖʔύʔ(E Paper Display)ΛങͬͯΈͨ• ৭ʑࢼͨ͠ޙͳͷͰɺධՁ͖࣠ͬΓ͓ͯ͠Γɺʮ͋ͬʂ͜Εͩʂʯͱײ
• ! ໊ࡳͱͯ͠ࢹ֯࠷ߴ• ! ιϑτΣΞͷ࣮͕ϥΫ• ! ػ࣌ফඅిྗ• ! ిݯΦϑͰදࣔܧଓ• ❌ϞϊΫϩʢ3৭ͷͷ͋Δ͕ߴ͍ʣ• ❌Ԡ͕ѱ͍
৭ʑ͞ΘͬͯΔɺ༷ʑͳಛੑɺධՁ࣠• ஈɺೖखੑ• ফඅిྗ• ࣮ݱͰ͖Δಛੑʢղ૾ɺ৭ɺʣ• ϋʔυΣΞ࣮ͷָ͞• ιϑτΣΞ࣮ͷָ͞
·ͱΊ• ࣮ࡍങͬͯ͞ΘͬͯΈͳ͍ͱධՁ͕࣠Ͱ͖ͳ͍• ৮͍ͬͯΔͱɺ࣮ඞཁͳՃಛੑݟ͑ͯ͘Δ• ͍҆ӷথ্͔Βݟ͑ΔͱಡΊͳ͍ͱ͔ɺফඅిྗগͳ͍ͱ͍ͬͯεϦʔϓ͠ͳ͚Ε࣮༻্େࠩͳ͍ͱ͔• શʹࣗͷཁ͚݅ͩͰબఆͰָ͖͍ͯ࣌͠ظ• php͕ಈ͔ͳ͍ΠϚΠνͱࢥͬͨΒɺ٫ԼͰ͖Δ
• ʮΑ͠ʂ͋ͱͲ͏ʹ͔ͳΔΖʂʂʯ• ʢࢠڙฒΈͷײ֮ɾఆͰ࣮ߦΛܾҙͨ͠ʂʣ
͋Β͢͡ʮͦͯ࣌͠2017ʂ͍ͭʹ͍͍ײ͡ͷΈ߹ΘͤΛൃݟʂσϞػΛ࡞Γɺbuildersconओ࠻ͷlestrratࢯʹڠྗΛʢञΛͷ·ͤͭͭʣ୰ئʂ͢Δͱ͋ΕΑ͋ΕΑͱ͍͏·ʹϝϧΧϦ༷͕ڠࢍΛܾఆʂిࢠ໊ࡳͷ։ൃ͕͡·ͬͨͷͩͬͨʂʯ
͍͖ͳΓ·ͱΊʢόοαϦলུʣ• PoCͷσϞػΛϏϧίϯओ࠻ͷ͞ΜʹݟͤΔ(ञΛೖΕͭͭ)• ͍͍ײ৮ͳͷͰɺ෦Ͱݕ౼ΛਐΊɺఏҊʂاը → ʮ͜Ε͠Ό͡2.0Ͱ͢ʂʯ(৽ن֓೦Ͱͳ͘ɺVerUP)֓ࢉݟੵ → ʮ͓҆͘Ͱ͖·͢ʂʯ(ίετμϯؤுΔʂ)• ṖΨδΣοτʹཧղͷ͋ΔϝϧΧϦ༷͕࠾༻ʂ• ʮΑ͠ʂకΊΓ·ͰͩʂͳΜͱͯ͠Δͧʂʯ
͋Β͢͡ʮࢿۚखʹೖͬͨͷͷɺ։ൃฏୱͳಓͷΓͰͳ͔ͬͨʂ༷มߋʂ෦ࡐมߋʂઃܭมߋʂ͞·͟·ͳมߋ͕ऻ͍͔͔Δʂࣗͷݟ௨͠ͷѱ͞ʹқ͢Δʂ͔͠͠ͳ͕Β్தmacopyࢯͳͲؒΛΈ͚ͭɺͳΜͱ͔ྔ࢈ϓϩτλΠϓͨ͠ͷͩͬͨʂʂʂʯ
ྔ࢈ϓϩτλΠϓΛͭ͘Ζ͏ʂ• ࣮ࡍͲ͏͍͏Ϟϊ͕Ͱ͖Δͷʁ• ʢࣗͰʣ࡞ΕΔͷʁ• ෦ࡐೖΕΒΕΔͷʁ• ༧ࢉʹऩ·Δͷʁ• εέδϡʔϧʁ• ͜͜ΒΜΛ͖ͬΓͤ͞Α͏ɻ
• ͋Ε͜Εໝ͢Δ࣍͘Β͍ʹָ͍͠• ͔͠͠ɺݱ࣮ͱ໘͢ΔϑΣʔζ• ͳ͓ɺೖΕಉ࣌ਐߦͰ͢
EPD
Ͳ͏͍͏ͷ͕Ͱ͖Δͷʁ• ͜͜Ͱྫྷ੩ʹσϞػΛݟΔ• ͏Μ…• খ͍͞Ͷ…• ໊ࡳͱͯ͠…• ͱ͍͏͜ͱͰɺ༧ࢉ͕֬ఆ͍ͯ͠Δͷʹը໘Λେ͖͘͢Δ͜ͱʹ͠·ͨ͠ʂʢʁʣ
ಠΓΑ͕Γͷةͳ͞• ʮͳͥؾ͔ͮͳ͍ʁʯʮҰਓͰ͔ͬͯͨΒ…ʯ• ʮݟੵΓޙʹ༷େมߋͱ͔͋Δ·͖͡Ͱͳ͍ʁʯ• ʢ΄Μͱ͏ʹ֤Ґ͢Έ·ͤΜͰͨ͠…ʣ• ͔͠͠ɺΦϨಠΓͩͬͨΜͩ…ɻ• (օڵຯ͋ΕͲɺຊؾͰ࣌ؒΛίϛοτͰ͖ΔਓɺΓগͳ͍…ʣ
ؾΛऔΓͯ͠• αΠζҧ͍Λ֬ೝ• 7.5ίϯτϩʔϥ͕ผͩ͠ɺ·Μ·ϓϥ൘ͰંΕͦ͏• 4.2ίϯτϩʔϥج൫ҰମͰߏతͳαϙʔτ͕ෆཁ• ωδ݀͋ΔͷͰɺऔΓָ͚͕ʂ• 4.2ʹܾఆʂ• (ػೳతʹ2.13ύʔγϟϧॻ͖͑͋ͬͨͷ͕ͩ…೦)
7.5inch• ബͯ͘ഭྗ͕ͩɺྲྀੴʹׂΕͦ͏
4.2inchͷߋʹྑ͍ͱ͜Ζ• 2.137.5શ෦ͷGPIOΛ࠹͙Α͏ʹ͚ͭΔʢHATతʣ• 4.2ɺόϥͷpinΛͭͳ͙• Έཱͯ͠ΜͲ͍• ଞͷpinʹ৮ΕΔʂϋοΧϒϧʂʮ͍͡Γ͢͞ʯ্͕Δʂ• ࠓճϝϦοτ্͕ճΔ• ʮ݁ՌΦʔϥΠʂʯ
ͱ͍͏͜ͱͰɺଈൃ• ࠃͰऔΓѻ͍ͬͯΔձࣾʹ͍߹ͤͯ͠ൃ• தࠃͷϝʔΧʔʹେྔʹจ͢Δͷʢܦݧଇͱͯ͠ʣෆ҆• ؔ੫Λ͍Ε͍͕ͯ҆ɺ௨ؔͰϞϝͨ͘ͳ͍• 2ϲ݄Ͱ౸ண• ʢ͜ͷओཁ෦ࡐ͕౸ண͢Δ·Ͱɺ҆৺Ͱ͖ͳ͔ͬͨ…ʣ
• ͪͳΈʹɺ࣌༗໊ͳళʢळ݄ɺઍੴɺʣʹऔѻ͕ͳ͍͔ௐ͕ͨɺͳ͔ͬͨ• (༌ೖࣾͰͳ͍ͷͰɺೖΕ͕͋ͬͯऔѻͷͳ͍Ҿ͚ͳ͔ͬͨ)• ͰɺࠓऔΓѻͬͯΔͬΆ͍Ͱ͢ɺमཧͰ͖·͢ΑʂΑ͔ͬͨͰ͢Ͷʂ• ྫɿhttps://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-58US
൘
༷มߋʹ͏৽ͨͳ՝• 4.2inchHATํࣜͰͳ͍ͷͰɺϥζύΠ͚ͩͰอ࣋Ͱ͖ͳ͍→ ϕʔεʹͳΔͷΛͭ͘Ζ͏ʂ• ࢲʮ͓ۚͳ͍͠ɺμϯϘʔϧͰ͍͍Μ͡Όͳ͍Ͱ͔͢ʁʯlestrratʮ͋Γ͑ͳ͍ʂʯ• ʢίετμϯͰ͕ಶ͍ͬͯΔͱةݥɺࣸਅ࣌ͷver.0ͷ࣮ʣ
औΓ͚Δʮ·ͱͳʯϞϊ͕ඞཁ• ʮϓϥμϯϘʔϧʁʯʮ·ͣμϯϘʔϧ͔ΒͳΕΑ͏͔ʁʯ• ϓϥʁΞΫϦϧʁABSʁʁమʁPCBʁ• ʮͲ͏ͬͯ࡞Ζ͏…ʯ• ʢํͦ͜·Ͱख׳Ε͍ͯͳ͍ʣ
͜͜Ͱٹੈओొʂ• ॳͷిࢠ໊ࡳ͕ؒδϣΠϯʂ• macopy!!!(@mackee_w)• (hachioji.pmͰͷؒ)
༷ʑͳٞ• mʮ3DϓϦϯλʹ͠·͠ΐ͏Αʯʢ˞ macopy3DϓϦϯλ͕झຯͰ͢ʣ• uʮ͑͑…ઈରྔ࢈ΉΓͰ͠ΐ…ʯ• mʮ͔ͨ͠ʹɺͰϨʔβʔΧολʔʁʯ• uʮ࠾༻ʂʯ• ೋਓʹͳΔͱ͕͍ʂ
• 3DϓϦϯτΊͪΌΊͪΌϋΠίετ• ϞσϦϯά͍͠͠ɺՃ͍• ϨʔβʔΧολʔ• ن֨ͷ൘ࡐྉ(͍҆)ΛΓൈ͘ͷͰখϩοτͰ͍҆• Ճ͕͍(ΧολʔʹΑΔ͕ɺҰຕʙ10)• ෳࡶͳ༷Λூࠁ͢Δͷ(ൺֱత)͍ɺ࣭҆ఆ• ֎͍͢͠(ۀऀ͕ࢁଘࡏ)
ͱ͍͏ࣄͰϨʔβʔΧολʔ• ૉࡐ͕ࣗಈతʹݶఆ• MDF(ͬΆ͍ͳʹ͔)• ΞΫϦϧ• ʮීஈօ͕৮ͬͯͳ͍ૉࡐͷ΄͏͕ྑ͍ɺMDFʹ͠Α͏ʯ• ۙॴͷϨʔβʔΧολʔ͕आΓΒΕΔίϫʔΩϯάεϖʔεʹߦͬͯΈͨ
ͨͷ͍͠ʂ• ࣸਅϑΥʔΧεࣦഊͰΕͣʹࠇ͍ઢ͚ͩҾ͔Ε༷ͨࢠͰ͢ɻ
Tips• ҆ՁͳϨʔβʔΧολʔ͋ͳͨͷ༧ΑΓ͍• য͕͍͛͢͝͠ɺ࣌ؒಈ͔͢ͱग़ྗ͕҆ఆͤͣɺΕͳ͍͜ͱ…• Trotec Speedyͱ͔ɺ͍͍Ϡπ͖Ε͍• େखͷϝΠΧʔζεϖʔεͱ͔ʹ͋Δͭ• ʮ͓͠ΌΕεϖʔεԕ͍…ʯ
• ࣮ΧΠϯζʹ͋Γ·͢ɻવళʹMDFചͬͯΔɻ࠷ߴʂ• ʢ௨Γ͕͢Γͷ͓ͬͪΌΜ͕͛͛͠͠ͱ͖ࠐΜͰ͘Δʣ• ͘͢͝ؾʹೖ͚ͬͨͲɺΨϥΨϥͰ৺ʹͳΔɻ• ݐͷΧϑΣͰσʔλ࡞ →USBϝϞϦΛ࣋ͬͯϨϯλϧਃ• ʢΧΠϯζߴ͍͍͔ͯ͘Βm2.6͔ΒωδφοτΛ͓͍ͯɺࡐΛࣺͯͤͯ͘͞Εͳ͍͔ͳ…ʁʣ
ͱ͍͏͜ͱͰࢼ࡞Λ܁Γฦ͢
Ұ߸ػ• େମͷܗ͜ͷ࣌ͰͰ͖͍ͯͨ• ՃػͱMDF͕ѱ͍ͷ͔ɺΊͬͪΌয͛ͨ• μΠιʔͷ͍҆MDFΊͬͪΌয͛ͯष͍ʢݟͰ͢ʣ
ೋ߸ʢࠨʣɺࡾ߸ʢӈʣ• ೋ߸όοςϦʔऔΓ͚Λࢼߦࡨޡ͍ͯͨ͠ʢݱࡏͱಉ͡όοςϦʔΛɺԼ෦ʹԣʹ͚ͭΔ༧ఆͩͬͨʣ• ࡾ߸൘ްΛ4mmʹɺόοςϦʔऔΓ͚͕݀·ͩͳ͍ʢ࣌ผͷฏ͍ͨόοςϦʔΛ͏༧ఆͩͬͨʣɺΰϜόϯυϦϒՃ• sponsorΛs"u"ponsorͱ͍͏க໋తͳεϖϧϛεw
ݱ߹Θͤͷ3.5߸• όοςϦʔΛΊͯݻఆ͢ΔࣄΛࢥ͍͖ͭɺݱ߹Θͤ͢ΔͨΊʹՃ• ࣦഊ࡞ʢ͕݀ൈ͚ͳ͔ͬͨʣΛࢳڒͰΔ• MDFׂΕͳ͍͠ɺ͘͞͞Εͳ͍ͷͰՃ͕҆શͰΑ͍• MDFͱࢴͷؒ͘Β͍ͷϞϊ• (ָͩͱݴ͍ͬͯͳ͍ɺׂͱͩ͘)
࢛߸(ྔ࢈લࢼ࡞)• όοςϦʔऔΓ͚݀Λ࣮ࡍʹ͚ͭͨ• ϥζύΠཪͷ݀͛ͨ• ී௨ͷϥζύΠऔΓ͚݀Λ૿͠ɺ֦ுੑΛ͋͛ͨ• ༷Λௐ• εϖϧϛεΛͨ͠
࠷ऴతͳಛͷհ• όοςϦʔ͕མͪʹ͍͘ΊࠐΈࣜ• ͔͍͍ͬ͜ʢओ؍ʣάϥϑΟοΫ• ࣮Ͱ͔͍ϥζύΠ֦ͭ͘ுੑ• ԣஔ͖Ͱ͖Δ݀ (݀ʹͳʹ͔͍ͯͩ͘͞͠͞)• GPIOʹ৮Γ์ͷ͍݀
Αʔ͠ɺ൘Λྔ࢈͢Δͧʂ• େମ3ʙ5͘Β͍ΧΠϯζʹ௨͍ͭΊΕ͍͚ͦ͏ʂ• ̍̔࣌ؒɺٳΈແ͘ɺΧολʔ͕ނোͤͣɺMDFΛೖΕΒΕΔͱͯ͠• ϋϋϋͭ͜Ίϋϋϋ• ۀऀʹґཔ͠·͠ΐ͏
Ͳ͜ͷۀऀʹ͢Δ͔ʁ• άάͬͯ5Օॴ͘Β͍ʹݟੵΓΛͱͬͨ• ࢼ࡞σʔλʢaiʣࢼ࡞࣌ͷػࡐ໊ࢼ࡞ग़ྗͷࣸਅرࡐྉʢMDF 4mmްʣرೲظΛهࡌͯ͠ϝʔϧ͢ΕɺେମͲ͜ͳ̍͘ʙ̎ӦۀͰݟੵΓ͕͖ͨɻ
ݟੵΓͷΒ͖ͭɺఏҊͷࠩ• Aʮʢ͘͢͝ૉૣ͍ϨεͰʣ60ສͰ͢ɺ͓ຍલʹೲ͠·͢ʯ• Bʮ20ສͰ͢ɺয͛ରࡦ͠·͢ɻσʔλܗࣜ͜Εʹม͍͑ͯͩ͘͞ɺ͓ຍલʹൃૹʯ• Cʮ10ສͰ͢ʂͲ͏Ͱ͔͢ʂೲظड࣌ʹ͓͑͠·͢ʂʯ• Dʮ40ສͱͳΓ·͢ɺೲظདྷ݄ʯ• ૯߹తʹBʹͨ͠ɺ౸ண·Ͱ13΄Ͳ͔͔ͬͨ
• ຊςετൃͯ͠ൺֱ͔ͨͬͨ͠• ͓ຍલͰ͕࣌ؒͳ͔ͬͨ(ࣗۀࣗಘ)• ݁Ռɺூࠁ෦͕ࢼ࡞ΑΓͪΐͬͱூΓ͕ਂ͘ͳͬͨʢೱ͘ͳͬͨʣ• ΠϝʔδͱมΘ͕ͬͨɺࡉ͔͍จࣈͳͲΫοΩϦͨ͠• ூࠁ෦ʢృΓઢʣɺʮਂ͞ʯΛ۩ମతʹࢦఆ͢Δ͜ͱ͍͘͢͝͠• (MDFΧολʔछྨ͕৭ʑ͋Δ͠ɺҹͷ༷ʹߍਖ਼͢Δࢦඪͳ͍)
• ͕࣌ؒ͋Δʹ༨༟͕͋Δ Ͱͳ͍͕࣌ؒ͋ΔʹվળͰ͖Δʮ༨ʯ͕͋Δ Ͱ͢ɻ• ࣌ؒʮ࡞ۀΛޙճ͠ʹͰ͖ΔνέοτʯͰͳ͍ʂʂ• Կॻ͖·͕͢ɺʮ࣌ؒʯʮ͓ۚʯͱಉ͘͡Β͍վળʹܨ͕Δڧ͍ྗͰ͢ɻ͕Μͬͯ༻ҙ͠·͠ΐ͏ɻ• ʢॻ͍͍ͯͯࣗͰ಄͕௧͘ͳ͖ͬͯͨ…ʣ
ͱ͍͏͜ͱͰ൘͕Ͱ͖ͨɻ• RPzEPD͏͋Δɻ• ʮ͋ͱΈཱͯΔ͚ͩͰͰʁʂʯ• ͍͍…όοςϦʔʁ
όοςϦʔ
Ξς͋ͬͨ• ʮμΠιʔͷ̏̌̌ԁͷ͕͍͍ͭΑɺ͍҆͠ʂʯ• mʮͳΜ͔Ͳ͜ʹചͬͯͳ͍Ͱ͢Αʯuʮ·͡Ͱʯ• Εʂʂʂೖՙະఆʂʂʂ• ʮ͡Ό͋…μΠιʔͷബ͍̑̌̌ԁͷͭʹ͠Α͏…ʯ• จෆՄೳʂʂʂ• ͪΐͬͱ·ͬͯ…ʁ͘ͳ͍…ʁ
• 100ۉจͰ͖ΔͷͱɺͰ͖ͳ͍ͷ͕͋Δ• (ͦ͏͍͏ചͰ͋Δ)• ఆ͍ͯͨ͠όοςϦʔ͕จͰ͖ͳ͍ʂʢ͕࣌ؒ͋ͬͯʂࡏݿͱ͔ؔͳ͘ʂʣ• ࣮ϞόΠϧόοςϦʔߴ͍ɺඦԁͰߟ͍͑ͯͨͷʹ…1000ԁݫ͍͠…• ͍ʂ → ٸ͍ͰଞΛ୳͢
• ผͷೖखઌΛ͕͞͞ͳ͍ͱʂ• ָఱͰʮશʹҰகʯΛΈ͚ͭͨ• ଈҰݸߪೖɺ΄΅શʹҰகΛ֬ೝ• ൢചձࣾʹ࿈བྷ͠ɺେྔߪೖͰ͖Δ͔࣭ → OK!• ༧ࢉΦʔόʔ͕ͩɺखͰ͖ͨʂ• ˇ200ʢˎ210ʹˇ42000ʣ্ঢɺ݁ߏ௧͍• ࢮʹҰੜ• ౸ணͯ͠ຊʹ҆৺ͨ͠…
Tips• ಧ͘·Ͱɺ҆৺͢Δͳʂ• օେ͖amazonൢചళͱަবͰ͖ͳ͍• ָఱͰ͖Δʢී௨ʹ࿈བྷઌ͕͔͍ͯ͋Δʣ• ళͱϝʔϧɺిͳͲͰަব͢Δͱྑ͍ʢতྗʣ• Ξιʔτʢ৭ҧ͍͕ࠞ͟Δʣަব࣍ୈ• ʢࠓճϐϯΫΛ͍ͨʣ
USB έʔϒϧ• όοςϦʔʹ͍͖ͭͯͨΦϚέͷUSBέʔϒϧ͕ॆిઐ༻ͩͬͨ• ͠·ͬͨɺ͜͜࠷ॳͷఆαϯϓϧͱҧ͏͔…• ͜Ε·ͨผ్ങ͏ඞཁʢΪΤʔʣ
• ༧ࢉͳ͍͠ɺ100ۉͰ͍͖͍ͬͯͨ• μΠιʔ → ແ͍ʢΕʣ• μϝݩͰࢼͣ͞ΩϟϯυΡͷ௨ൢʢ36ݸ͔Βʣ→ ʮବͰͨ͠ʂʂʯ• μϝݩͰηϦΞʹ…• ʮ͑ͬɺ͍͍έʔϒϧࢁ͋Δͧʁʯ• ࡾछྨങ͏ → શ෦௨৴OKʂ• શ෦100ԁ
• 2AॆిͰ͖ʢͱ͏͍ͨͬͯΔʣmicroUSBࢠ͕྆໘ʢن֨ͱ…ʁʣ௨৴OKͳϞϊʹ͠·ͨ͠ɻ• 100ԁͰ͜ͷεϖοΫྑ͍• Σϒ͔Β͍߹Θͤˠʮ300ݸ͔ΒOKͰ͢ʯ• ༨Δ͕ɺഎʹෲ͔͑ΒΕͳ͍ͳʂ• ΓऔΓʹ2d,ଈৼࠐΈͯ͠1w΄ͲͰແࣄ౸ண
༨ͬͨUSBέʔϒϧ• ॆిઐ༻200ຊ…σʔλ௨৴70ຊ…• ͍ΈͪืूதͰ͢…• (ಉࠝ͠Α͏͔ͱࢥ͚ͬͨͲɺʮσʔλʯʮॆిઐ༻ʯέʔϒϧΛऔΓؒҧ͑ͯ͏͔͝ͳ͍ʂͱ͍͏ใࠂ͕ଟ͔ͬͨͷͰΊ·ͨ͠)
• όοςϦʔͱɺέʔϒϧղܾͨ͠ɺ͋ͱ…• microSDʂ
microSD• ͜Ε࣮݁ߏߴ͍͠ɺ͍҆ͷෆ҆• amazon.co.jpͱ͔ɺͬͯΈΔͱΘ͔Δ͕ඦݸങ͑ͳ͍• ʮࢁങ͑Δʂʯͱ͍͏ᨳ͍จ۟ͷۀऀߴ͍…ࢁങ͏ͷʹ…• (Ձ֨ʹͩ͜ΘΒͳ͚Ε͘͠ͳ͍)• ͔ͨ͠ͳ͍ͷͰɺ৭ʑͳͱ͜ΖͰɺ҆ΛҰݸ͔ͮͭͬͯͨΊͯ͠ΈΔ
• ;ͱɺۙॴͷυεύϥʹߦͬͯΈͨΒ͍҆8GB͕• ࣗෲͰങͬͯࢼ͢ˠେৎͦ͏ʂ• ʮ͜Εɺࢁ΄͍͠ΜͰ͚͢ͲʯʮԿݸͰ͔͢ʁʯʮ210ݸʯʮ…গʑ͓ͪΛʯ• ͔݁Β͍ͬͯจͰ͖ͨɺւ֎͔ΒऔΓدͤɻ
ஈʑมΘΔ• ݟੵΓ͕དྷͨͷͰɺޙൃ͠ʹళฮ(;ͱɺళ಄ͷಉҰΛݟͯ)͏ʮ…ݟੵ࣌ΑΓԼ͕Γͯ͠·͕͢ɺ͜ΕʹͳΓ·͢ʁʯυʮ…Θ͔Γ·ͨ͠ʂʯ• ҙਂ͘ݟΔͱಘ͢Δ͜ͱ͋Δ͆• ී௨ݟੵΓ͕࣌ਖ਼ͳͷͰɺஃަবྑ͘ͳ͍͚ͲɺରԠͯ͘͠Εͯ͋Γ͕ͱ͏υεύϥʂ
• ݟੵ̏ɺൃ̍ɺ౸ண·Ͱ2ʙ3ि• ʮόοςϦʔʹ͘ΒΕΠʔδʔϞʔυ͗͢Δʯ• ͔͠͠ɺఆ֎͕ͳ͍Θ͚Ͱͳ͔ͬͨʂ
ϩοτ͕มΘΔ• શ͘ಉ͡ʹΈ͑Δ͕ผϞϊ• ϊʔϒϥϯυɺϞϊ͕มΘΔ
͕ҧ͏ʂʂ
༰ྔ͕ҧ͏ʂʂʂ• (ΞλϦͩͬͨΒ͓ΊͰͱ͏͍͟͝·͢ʂ)• (࣮༻্ʮ·ͬͬͨ͘ʯࠩ͋Γ·ͤΜ)
8GB != 8GB• ʢϒϥϯυͦΜͳࣄͳ͍͔ʣ• ͭ·ΓɺσΟεΫΠϝʔδΛSDҰഋʹ࡞ΔͱޙͰ٧Έ·͢ʂ• ࠓճ2GBҎԼͰΠϝʔδͭ͘Γ·ͨ͠• খ͍͞ํ͕Ϗϧυָͩ͠• (raspbianͷॳճىಈ࣌ͷresizeΛফͨ͠)• ʮ2GBҎԼͳΒGitHubͷReleaseʹULͰ͖ͯศརʂʯ
ͱ͍͏͜ͱͰ• RPz,EPD,൘,όοςϦʔ,USBέʔϒϧ,microSD• ᘳͩͳʂ• ͍͍͑ɺ·ͩ͋Γ·͢
ωδʂ• ʮ྆໘ςʔϓͰ…ʯʮΊΖʯ• ωδΛങ͏ɺͰͲ͜Ͱʁ
• ϗϜηϯ → ·ͣM2.6ͱ͔ແ͍• amazonͱ͔ → ΄ͱΜͲແ͍• ۀൢ → ࠷খϩοτ͕ສ୯Ґɺʮૉਓ͝ԕྀ͍ͩ͘͞ʯ• ϓϩ͚௨ൢ → ݁ߏ͔͍ͨ…ʢ͠ɺຊདྷݸਓͬͨΒବʣʢ·͋ϑϦʔϥϯεͰ͋Δ͠…ʣ• ʮͦͦن֨දݟͯɺਖ਼Α͘Θ͔ΒΜͳʯ
ͦΜͳ࣌ळ༿ݪ• ిࢠʹߦ͘• => ݱΛݸങͬͯΈΔ• => ͦͷͰ٤ళʹߦ͖ɺ͘ΈͨͯͯΈΔ• => ʮΑ͠ʂ͜Εͩʂʯ• (ඇৗʹ໌շɺ̎࣌ؒάάΔͳΒͬ͞͞ͱΞΩόʹߦ͖͘)
• ʮ͜Ε͍ͩ͘͞ʯʮԿݸͰ͔͢ʁʯʮ4000ݸ͘Β͍ʯʮ4000͋Δ͔ͳʙʙʯʢ͓ΉΖʹ͔Γʹβϥβϥͱྲྀ͠ࠐΉʣ• ʢ͕͢͞ઐళɺऔΓཚ͞ͳ͍ʣ• ʢ͜ΕܥͷళΫϨΧ͔ͭ͑ͳ͍ࣄଟ͍ͷͰҙʣ
• ʮ೦ɺ΄͍͠φοτͷࡏݿ͕ΪϦΪϦޙ500ݸͨΓͳ͍ʯ• ͳͷͰɺφοτͷ༷Λͪΐͬͱม͑ͨɻ• ͳ͓ɺΕ͍ͯ͠ΔͷΛൃ͢Δͱ2ϲ݄ͩͦ͏Ͱ͢• (͜ͷ࣌Ͱ2ϲ݄͓ͬͯΓɺϠό͔ͬͨʣ• ωοτͰݟ͔͚ͨΑ͏ͳಛघͳωδ·ͬͨ͘ແ͍ࣄ͋Δ͠ʮങ͑Δʢങ͍͍͢ʣʯϞϊͰఘΊΔͷॏཁ
• ݁Ռɺ4ສԁڧ• ωδଟ͍ͱ݁ߏ͔͍ͨͳʂʢωδΛݟΔ͕มΘΔ…ɹEPDʹ࠷ॳ͔Β͍͍ͭͯͨωδશ෦ࣺ͕ͣͯͯͨ͠…ɹ͜Εී௨ʹങ͑2ສҐͨ͠ͷͰ…ʣ
ྔΓചΓ͍ͭͯ• ʮ͜Ε…͋ͬͯΜͷ͔ͳʁʯʢ͔֬Ίͨ͘ͳ͍ʣ• ݁ɺωδΪϦΪϦΓͯʢͭ·Γਖ਼͍͠φοτ݁ߏ༨ͬͨ• (1%ҎԼͷޡࠩͩͱࢥ͏)• ͕͢͞ʹͪΌΜͱͯ͠Δɻ• ༨ΒͤΔͷԿ͕ͩɺଟগ༨༟Λͬͨํ͕Αͦ͞͏ɻ
Tips• ྔ͕͋ΔͱεοΰΠॏ͍ɺ͍ͭͰͷ༻ࣄઌʹ͢·ͤ·͠ΐ͏
Αʔ͜͠ΕͰʂ• ͍ɺ·ͩ͋Γ·͢• ؇িࡐʢͱ͍͏͔ࠝแࡐʣɺϓνϓνͷ੩ిࢭା• 2(ย໘͕ತԜ)ͱ3(྆໘͕ฏ໘)͕͋Γ·͢ɻένΒͣ3͕Α͍Ͱ͠ΐ͏ɻ• ੇ๏ʹ͓͍ͯɺॎԣ͚ͩͰͳ͘ɺϖίϦʢંΓฦ͠෦ʣΛͪΌΜͱݟ·͠ΐ͏ɻ• ී௨ʹamazonͰߪೖʢָ͗͢Δ…ʣ
ͱ͍͏͜ͱͰ• શ෦͕͋ͭ·ͬͨͧʂʂʂ• (ଞʹΰϜόϯυ͕͕͋ͬͨɺamazonͰങͬͨ)• ϓϩτλΠϓ(?)ʂ͋ͱΈཱͯΔ͚ͩʂ
ʮ࡞ͬͨʂͱ͍͏͕…ʯ• ·ʮࠓճզʑ͕ͬͨ͜ͱ…ͭ·ΓͳͷͰʁʯ• ͏ʮγʔοʂʂʯ
͋Β͢͡ʮଓʑͱू·Δ෦ʂͦͯ͠શ෦ͱ༐ऀ͕ौ୩ʹू݁ʂօӈखʹυϥΠόʔΛͪɺ·ΔͰϚγʔϯͷΑ͏ʹऔΓΉʂʂ࣍ʑʹΈ্͕Δిࢠ໊ࡳʂઓ૪ͷΑ͏ͳΈཱ͕ͯऴΘͬͨ࣌ɺօͷલʹେྔͷిࢠ໊ࡳ͕͍ͬͨμϯϘʔϧ͕ͦͼཱ͑ͭͷͩͬͨʂʂʂʯ
ࢼ͠ʹҰݸΜͰΈͨ• Ұݸେମ5ʙ10͘Β͍• 200ݸ͘Β͍͋Δ• ͳΔ΄Ͳ2000ʁ• ʹ 33.3hourʢٳΈແ͠ʣ• ͗ΐ͑ͬʂ
ਓւઓज़• ϏϧίϯSlackʹͯʮٸืɿωδճ͕͠ಘҙͳਓʯ• ελοϑͷπςͰVOYAGE GROUP༷ͷΦϑΟε͓आΓͰ͖ͨɺ͋Γ͕ͱ͏͍͟͝·͢ʂ• ंͰશ෦ࡐΛ࣋ͪࠐΈɺେྔੜ࢈• 9ਓ͕͔ΓɺҰͰͳΜͱ͔ྃ• chocopie116ࢯɺdoi-tࢯɺmorizoooࢯɺsatoࢯɺuessyࢯɺmacopyࢯɺlestrratࢯɺͦͯ͠࠺ɺ͋Γ͕ͱ͏…ɻ
ཱ͔࣌͠͠ʹ༙͍ͯ͘Δ
ෆྑ• EPDͱج൫ͷϑϨΩΛ͜͡Δͱ෮׆ʂ• ͠ͳ͍ͭ͋ͬͨ…• ϥζύΠͱͭͳ͙έʔϒϧ͕͓͔͍͠ͷ• → ෆ҆ͳͷͰɺ͘ɻ
όοςϦʔ• ௨ి͠ͳ͍ͳʁ์ిͯ͠Δͷ͔ʁ-> ॆిͰ͖ͳ͍ɺյΕͯΔ…• ʮ͓͍ɺ͜Εࢠ͓Εͨͧʁʯ
ԚΕ• (ͳΜ͔ϕλϦͱΑ͝ΕͯΔͳɺ১͜͏)• ʮ…ʁʯ• ͜ͷԚΕ…อޢγʔϧͷԼʹ͍Δͩͱ…ʁ• QC OKͷγʔϧҰମͳΜͩͬͨͷ͔
ඍົͳϐϯζϨ• Ұݸ͚ͩɺϐϯ͕ͣΕ͍ͯΔͷ͋ͬͨ• ʮ࣏ͤΔ͠ɺ͜Εྑʢ͍ͩͿζϨ͖͍ͯͯΔՁ؍ʣʯ• ஸೡʹઌग़͠ηϯυόοΫରԠ͍͍ͨͩͨ• KSY͞Μ࠷ߴʂࠓޙޚࣾͰϥζύΠങ͍·͢ʂ
݁Ռతʹશݕࠪ• EPDɿ (ԚΕɺέʔϒϧؚ) ෆྑ 2% ΄Ͳ• όοςϦʔɿ ෆྑ 5% • ϥζύΠɿ 1͚ͭͩϐϯζϨɺަ• microSDʀ̍ຕॻ͖ࠐΈ͕ົʹ͍ͷ• ʮશݕࠪɺඞཁ͗͢Δ…ʯ
ಥʹɺ෦ࡏݿཧͷ• ʮ։ൃ༻ʯʢࣗෲͰ͋ͬͨͱͯ͠ʣ• ʮྔ࢈༻ʯ• ʮࣄલ༻ʯʢςετελοϑͳͲʣ• ʮσϞ͓͠༻ʯʢڠࢍاۀ༷ͳͲʣ• શ෦ผͰݕ౼ɾཧͨ͠΄͏͕Α͍• ʮྔ࢈ʯ͚ͩͰཧͯͨ͠Β͍ͩͿࠞཚͨ͠ɻ
શ์ిͨ͠USBόοςϦʔ• ͪΐͬͱҐిྗ͋Δͱࢥ͕ͬͨɺશ์ి͕ଟ͗͢Δɻॆి͠Α͏ɻ• Ұຊ̐࣌ؒʢʁʣ* 210ຊ = 840h• ≒ 35• (͜ͷ࣌ͰɺΓ݄Ґʣ• ࢁҰʹॆి͠Α͏ʂʂ
• 16ϙʔτͰ16ഒͩʂ• Πϧϛωʔγϣϯ៉ྷ• ࠺ʮ͜ΕՐࣄʹͳΒͳ͍ͷʁʯ͏ʮͳΒͳ͍…ͱࢥ͍͍ͨ…ʯ(ͳΒͳ͔ͬͨ)• 4ϙʔτߴग़ྗUSBॆిث೩͑Δ΄Ͳൃͨ͠ͷͰ3ϙʔτʹ͕ͨ͠ɺͲ͏Ͱ͍͍13ϙʔτͷσʔλHUB13ݸͿΒԼ͛ͯԹ͔͍ఔͰॆిͰ͖ͯศརͩͬͨ…ɻ(ຊʹॆిͰ͖ͯΔ͔ෆ҆ͳ΄Ͳʹ)
ຊମ͕ग़དྷͨʂmicroSDমͧ͘ʂ• खͰম͘ͱɺҰݸম͘ͷʹ5• 5 * 210 / 60 = 17.5h• ʢ5ʹҰׂΓࠐΈ͕ೖΔ࡞ۀΛٳΈແ͠Ͱͬͨ߹ʣ• ·͋ɺΘ͔͍ͬͯͨΑʂ
• σϡϓϦέʔγϣϯۀऀΛ͔ͭ͏ͱɺେମ10ʙ30ສ͢ΔͷͰݕ౼֎• ϓϩ༻ͷσϡϓϦέʔλʔػࡐߴ͍(20ʙ50ສͱ͔͢Δ)• ͜ΕྲྀੴʹݸਓͰങ͍ͨ͘ͳ͍…• ͱ͍͏͜ͱͰ…
ʮϏϧίϯϚγϯʯര• 10 ϙʔτͷUSBΛଓͨͭ͠• USB3.0ߏʂ• Ұຊ̍ສԁʂ• 30Ͱ10ຕম͚·͢ʂʢ࣮ʣ• 10ഒͰͳ͍ɺҊ֎͍
• 210ຕ / 10 * 30 / 60• = 10.5࣌ؒ(ٳΈແ͠)• ॏཁͳͷɺख͕ؒ30ʹҰͳ͜ͱͱख͕ؒ1/10ͳ͜ͱʂ• ʮ10࣌ؒΩϥΩϥͰΩϨΠʂ()ʯ• ιϑτແʹEtcher• ৴པੑˍָ͞ˍϕϦϑΝΠ͖• (EtcherෳυϥΠϒॻ͖ࠐΈػೳ͕͋Δ)
ͱ͍͏͜ͱͰ• ϋʔυΣΞམͪண͍ͨͷͰ͋ͬͨ…• ʮ͏ʰͰ͖ͨʱͳʂʂʯʢຫ৺ʣ• (͜ͷ࣌͢Ͱʹ͓ຍޙ…)
͋Β͢͡ʮϋʔυ͕ͯ͠ιϑτ͕ͳ͚Ελμͷ൘ʂʰ͜ΕͲ͏͔ͬͯͭ͏ΜͰ͔͢ʁʱʰ͑ͬɺεϚϗͰ͔ͭ͑ͳ͍ͷʁʱʰೝࣝ͠ͳ͍ΜͰ͚͢Ͳ…ʱ༷ʑͳόάཁٻ͕զઌʹऻ͍͔͔Δʂʂࠁʑͱ͗͢Δ࣌ؒʂʂݟ͑ͳ͍ϦϦʔεʂʂखݩͰ࠶ݱ͠ͳ͍όάʂʂՌͨͯ͠ιϑτΣΞ͢Δͷ͔ʂʁʯ
Φν: ͠·ͨ͠ʂʢʁʣ• https://github.com/builderscon/electronic_badge_2018• ҰԠࠓͷࣗιϑτΣΞ͕ຊۀͳͷͰؤுͬͨʢͳ͓ɺ͜ͷεϥΠυॻ͍ͯΔ࣌Ͱͯ͠ͳ͍͔ʣ
ॳͷఆ• ʮօϋοΧʔͩ͠ɺɾόϥͷ෦Ͱͯ͠ɾHelloworld͘Β͍ͷςετίʔυɾυΩϡϝϯτID/PASS͘Β͍Ͱ͍͍ΑͶʂʯ
͝ҙݟ• ʮઈରΈΜͳ࡞ΒΜʯ => ཱࡁΈ• ʮsshΒͳ͍ਓ͍ΔͰ͠ΐʯ => USBϝϞϦϚϯτՄೳʹ• ʮεϚϗͷਓͲ͏͢Δͷʁʯ => ΫϥυରԠʂʂ• ͲΕ͍͍ͪͪ͝ɺଞਓͷҙݟॏཁʂ
ແݶʹ৳ͼΔTodo• ΊͬͪΌେมͩͳ…• (ݟ͍ͯΔ͚ͩͰ಄௧͕)• ఘΊ߲͍͔ͨͭ͘…
• ໊ࡳͷϥΠϒϥϦ͕Python2ͩͬͨͷͰɺ3ରԠ• ໊ࡳΞϓϦࣗମɺςΩετ,ը૾ΛEPDʹදࣔ͢ΔCLIπʔϧ• ໊ࡳΛUSB υϥΠϒNICͱͯ͠ೝࣝͤ͞Δߏ• USBυϥΠϒʹઃఆϑΝΠϧΛஔ͘ͱڍಈذ• ݎ࿚(?)ʹͳΔΑ͏ʹ֤छىಈ࣌ࣗݾஅɺࣗݾम෮• ΫϥυʹΑΔը૾ొ• etc,etc.
• ࠭യͷgithubʹଟগ͕ੜ͑Δ• (squashͨ͠ͷΛؚΊΔͱɺ300ίϛοτ΄Ͳ)• ʮࣄ͡ΌΜ͜Εʯ
ిࢠ໊ࡳ։ൃ࣌ͷख๏
ίʔσΟϯάڥ• MacͱpycharmͰ։ൃͯ͠సૹ͠• ࣮ػʹsshͯ͠vimͰඍௐ• ࣮ػʹPython3.6ΛೖΕΔͷఘΊͨ• खؒɺσΟεΫ༰ྔɺ݁ߏඞཁ• pyenvͰ3.5ΛMacʹ
MacͰ։ൃ͢ΔͨΊʹ• EPDͷϥΠϒϥϦɺPILΛड͚͚͍ͯͨ• PIL.show()ͰϨϯμϦϯά݁ՌΛදࣔͰ͖Δ•EPD_PSEUDO_MODEͳͲεΠονΛ͚ͭͯɺPCͰඳըϩδοΫςετ͕Ͱ͖ΔΑ͏ʹ• ৼΓฦΔͱɺ͜Ε͔ͳΓॏཁͩͬͨ
Linuxڥ͋ͬͨ΄͏͕ྑ͍• ext4Λ͖ͪΜͱϚϯτͰ͖Δ͔Β• ىಈ͠ͳ͘ͳͬͨ࣌ʹதΛݟΔඞཁ͕͋Δ͔Β• ԾڥͰՄɻ• ྫɿParallelsMacͷཧUSBΛVMʹૠͤΔ• (VirtualBoxͱ͔Ͱɺ·ͱʹಈ͘ͷ͔Βͳ͍)
Tips ΠϝʔδϑΝΠϧΛϚϯτ• ΠϝʔδϑΝΠϧΦϑηοτࢦఆ͢ΕϚϯτͰ͖Δ• ޙ͔Βࠟগͳ͘ΠϝʔδΛվม͢Δ͜ͱͰ͖Δ$ mount -v -o offset=50331648 -t ext4 micro_sd.img /mnt/nafuda
Windows͋ͬͨ΄͏͕Α͍• વͳ͕ΒɺWindowsͰͷಈ࡞ςετඞཁͳͷͰɻ• ಉ༷ʹɺ·ͱͳԾԽιϑτΣΞͳΒVMͰςετ͢Δ͜ͱͰ͖Δͣʢg_etherͷυϥΠόΛࢼͨ͠ΓͳͲͨ͠ʣ
։ൃ࣌ͷཧɾίʔυసૹ• Git(Hub)͔Zip͔ → GitͰʂ• ࣮ػͰͪ͝Όͬͱ͍ͬͯ͡ɺdiff͕ݟΕΔͷ࠷ߴʂ• ΰϛίϛοτ͕૿͑·͘Δ…ͷఘΊΔʢ͋Δ͍ྺ࢙վ͟Μʣ• ࣮ػͰ͍ͬͯ͡ɺίϛοτ࿙Εͷ··ॳظԽͯ͠ফ͑ͨίʔυগʑ͋Δ
• ΠϝʔδΛͲ͏ϦϦʔε͢Δ͔• 2GB͋ΔBLOB• Ͳ͔͜ͷΣϒαʔόʔʹஔ͘ʁίετ͔͚ͨ͘ͳ͍ͳ…• lestrratࢯʮGitHub ͷReleaseʁʯ• ͑ͬɺ2GB·Ͱλμʁʙ͍͍ͷʁଠͬෲʙʙ• ͨͩɺULʹ̍࣌ؒ͘Β͍͔͔ΔͷͭΒ͍…
journaldΛͪΌΜͱ͏• ։ൃػͰϩάΛ͢Α͏ʹઃఆ͢Δʢແઃఆͩͱɺشൃʣ• journalctl -b -1 -u nafuda-bootup• buΦϓγϣϯͰʮNճલͷిݯೖ࣌ɺಛఆͷαʔϏεʯ͚ͩݟΕΔ• lessͰϩϩ͠ͳ͍͍ͯ͘ʂศརʂ• (୯ʹϑΝΠϧʹग़͍ͨ࣌͠ෆศ…)
ઃఆ# /etc/systemd/journald.conf ʹه[Journal]Storage=persistentSystemMaxUse=128Mөsudo mkdir /var/log/journalsudo systemctl restart systemd-journald
੍࡞ͨ͠ιϑτΣΞʹ͍ͭͯ• େ͖͚ͯ͘2ͭ• EPDඳըͷαϯϓϧίʔυ• Py3ରԠͷϥΠϒϥϦɺ໊ࡳ༻εϥΠυγϣʔͳͲ• bootup• ʮిࢠ໊ࡳʯͷϑΝʔϜΣΞΈ͍ͨͳͷ• NAFUDAυϥΠϒ࣮ݱɺىಈ࣌ࣗݾॳظઃఆͳͲ
simple-nafuda• Կͷมͳ͍ը૾εϥΠυγϣʔ• ʮ͑ͬɺ͜Εύιίϯ͕ͳ͍ͱ͑ͳ͍ͷʁʯͱ͍͏࠺ͷҰݴͰΫϥυػೳՃ• ࠷ॳPHPͰॻ͜͏ͱࢥ͍͕ͬͯͨɺ͕࣌ؒͳ͔ͬͨͷͰPythonʹͳͬͨ• มͳ͍͠ɺ಄ͷʮిࢠ໊ࡳհʯͱ͔ͿΔͷͰলུ
bootup• ύεϫʔυॳظԽ• ϗετωʔϜॳظԽ• NAFUDAυϥΠϒ༗ޮԽ• ͋Δ͍Gadget Ether,serial༗ޮԽ• simple-nafuda ໊ࡳϓϩάϥϜىಈ• Λىಈ࣌ʹߦ͏ɺେͳBashεΫϦϓτ
ϔουϨεͳϚγϯ• ىಈεΫϦϓτΛ৭ʑՃ͍ͯ͠Δ• ϛεΔͱىಈʹࣦഊ͢Δʂ• 㙽ʹ֯ϋʔυΣΞͷγϦΞϧඞཁ• ϒʔτϩά͕ݟΕͯɺwifi͕ࢮΜͰγΣϧʹ৮ΕΔ• quietɺ࠷ޙ·Ͱͷͨ͜͠΄͏͕҆৺• Linux ڥอݥͱͯ͠ཉ͍͠ॴʢSDΛ֎ͰϚϯτʣ
ύεϫʔυੜʁ͍Δͷʁ• linuxͷΨδΣοτʹϦϞʔτϩάΠϯͰ͖Δ࠷ߴʂ͕ͩ…ɻ• RaspbianͷσϑΥϧτ pi / raspberry• ʮύεϫʔυͲ͏ͤσϑΥϧτͰ͠ΐʁจࣈ௨ΓϦϞʔτͰϋοΫ͠·͘ΔΘʂʂʂʢসإʯͱ͍͏ํ͕͍Βͬ͠ΌͬͨͷͰ…• ύεϫʔυੜ͠ͳ͍ͱବͩͳ…
# ϥϯμϜจࣈྻΛύεϫʔυ༻ʹੜ͢Δ/usr/bin/openssl rand -base64 6 > /boot/default_passwd.txt/bin/echo "pi:`/bin/cat /boot/default_passwd.txt`" | /usr/sbin/chpasswd• chpasswdSTDIN͔ΒύεϫʔυΛ͏͚͚ͭͯมߋͯ͘͠ΕΔ
• ੜͨ͠ύεϫʔυɺNAFUDAυϥΠϒ͔Βݟ͑ΔΑ͏ʹ͓͍ͯͨ͠• ىಈ࣌ͷใදࣔʹɺύεϫʔυΛද͍ࣔͯ͠Δ• ʢͭ·Γɺ͜Ε໊ࡳΛϦϞʔτͰָʹϋοΫͤ͞ͳ͍ҝͰɺ໊ࡳͷηΩϡΞ͞Λ্͛ΔҝͰͳ͍ɻ໊ࡳʹॏཁͳσʔλΛ͍Εͳ͍Α͏ʹʂʣ
͜ͷॲཧʮॳظύεϫʔυ࣌ͷΈʯ• Raspbianݩʑ/run/sshwarnͷΈ͕͋ΓɺσϑΥϧτύεϫʔυͩͱlogin࣌ʹܯࠂ͕ग़Δ• ར༻͔͕ͨͬͨ͠ɺPAMͷΈΛ͍ͬͯͯboot࣌ʹͳ͍• ͔ͨ͠ͳ͍ͷͰɺPythonͰ/etc/shadow͔Βpiͷߦ͔ΒsaltΛरͬͯraspberryΛϋογϡԽ͠ɺҰக͢Δ͔νΣοΫ͢Δπʔϧॻ͍ͨ
ಉ༷ʹϗετ໊ੜ• avahiʢBonjourʣͰϗετ໊͕িಥͨ͠ΒհͳͷͰ• ʢͦ͜·Ͱॏཁߴ͘ͳ͍ʣ
NAFUDAυϥΠϒ• g_mass_storageΛར༻͠ɺ໊ࡳΛPCʹଓ͢ΔͱɺPC͔ΒUSBυϥΠϒʹݟ͑Δ• ϑΝΠϧίϐʔͰ͖ͳը૾͕ηοτͰ͖Δ• WifiઃఆϑΝΠϧΛஔ͚࠶ىಈ࣌ʹө• ͳΜͳΒɺࣗͷίʔυஔ͚Δ(startup.sh)• ศརʂΨδΣοτͬΆ͍ʂʢࣗݾຬʣ
g_mass_storage• vfatͰϑΥʔϚοτͨ͠σΟεΫΠϝʔδΛࢦఆͰ͖Δ• (࣮ࡍʹɺத͕vfat͔Ͳ͏͔͋Μ·Γؔແ͍)• fs͕յΕ͍ͯͯͳ͍ʢࣗʹ͋Δͳ͋…ʣ• MacWinͰ࠶ϑΥʔϚοτ͢Δͱڍಈ͕มΘΔ͜ͱ…• ʢ͍ͬͯ͏͔mkfs.vfatͰ࡞Δͱwin͕จ۟ݴΘͳ͍ʁʣ
FSΛ͜ΘΕͨ··ʹ͠ͳ͍ྗ• յΕͨ··ͩͱɺԿͰ͖ͣʹ٧ΜͰ͠·͏ɻ• Τϥʔ͕͋Εɺͱʹ͔͘mkfs͢͠ʂ• fs͕݈શͰதʹimgσΟϨΫτϦ͕ͳ͔ͬͨΒϦϏϧυ• ≒ ࠷ѱɺPCଆ͔ΒϑΥʔϚοτ͓͚ͯ͠ڧ੍ϦϏϧυ• ͦΕͰϚϯτͰ͖ͳ͍͜ͱ͋Δ͔…ෆ҆…ɻ• (ςετͷઈରྔ͕Γͳ͍…)
NAFUDAυϥΠϒͷ֎ಉ࣌Ϛϯτ• /home/pi/virtual_sd.imgϒϩοΫϑΝΠϧΛUSBͰ֎ʹఏڙͭͭ͠ɺதͰloopbackͰ/dev/virtual_sdʹmount• ແةݥɺ͔ͦ͠͠͏͠ͳ͍ͱதͷΛಡΊͳ͍ͷͰɻ• ʮͰ͖Δ͚ͩʯroͰϚϯτ͍ͯ͠Δɻ• ͳ͓ɺroͰϚϯτ͍ͯͯ͠ةͳ͍ةͳ͍Ͱ͢ɻ• ʢύοͱࢥ͍ͭ͘ɺྑ͍ղܾࡦ͕ແ͍…ʣ
՝• ڥͳͷ͔ɺwrite backͷ߹ͳͷ͔ɺॻ͖ࠐΜͰ͙͢ʹஅ͢ΔͱϑΝΠϧ͕ফ͑Δ• ʮ࣌ͷϑΝʔϜΣΞʯΑΓ৽͍͠όʔδϣϯͰɺΧʔωϧύϥϝλΛ͍͍ͬͯ͡ΔɺΑΖ͚͠ΕόʔδϣϯΞοϓ͓ئ͍͠·͢ɻ• ͜ͷ͋ͨΓɺςετͷઈରྔ͕ෆ͍ͯͯ͠ख़ͤ͞Δ͜ͱ͕Ͱ͖ͳ͔ͬͨɻ
USB ΨδΣοτϞʔυͷΓ͚• USBυϥΠϒҎ֎ʹωοτϫʔΫΠϯλʔϑΣΠεγϦΞϧʢCOMʣϙʔτͱͯ͠PCʹೝࣝͤ͞ΒΕΔɻͦΕΛNAFUDAυϥΠϒʹ͓͍ͨϑΝΠϧͰΓସ͑ɻ• ϥζύΠఆ൪ͷʮcmdline.txtʹॻ͖·͠ΐ͏ʯͰͳ͘ɺىಈதʹࣗલͰmodprobe͍ͯ͠Δ
if [ -e ${VSD_BASE_DIR}/enable_g_ether ]thenG_MODE="g_ether"${VSD_RW}/bin/rm ${VSD_BASE_DIR}/enable_g_ether${VSD_RO}modprobe g_etherifconfig usb0 upifconfig usb0 169.254.123.45/16 # IPݻఆfiif [ -e ${VSD_BASE_DIR}/enable_g_serial ]thenG_MODE="g_serial"${VSD_RW}/bin/rm ${VSD_BASE_DIR}/enable_g_serial${VSD_RO}modprobe g_serialsystemctl start [email protected]fiif [ -z "${G_MODE}" ]thenG_MODE="g_mass_storage"modprobe g_mass_storage file=${VSD_IMG_PATH} stall=0 removable=1fi
• lsmod,rmmodͰޙ͔ΒͰ֎ͤΔͧʂ• rmmod͢ΔͱσόΠε͔Βফ͑Δɺͨͷ͍͠ʂ• → Γ͗͢Δͱ؋ͷMac͕ڍಈෆ৹ʹͳͬͨΓɺPanic͢Δ͜ͱ͕͋Γ·͢
ىಈͷߴԽ• ࠷ॳͷόʔδϣϯىಈʹ100ʙ120ඵ• ௐͯ͠ɺ40ʙ50ඵʹ• ʢ͜ͷىಈͱɺEPD͕ͳΜΒ͔ಈ͖ग़͢·Ͱͷ࣌ؒʣ
Ͳ͏ௐ࣮ͯࢪ͢Δʁ• systemd֤αʔϏεىಈ࣌ؒΛௐΒΕΔ• ·ͣܭଌʂ• ޙ͍ͷΛҰݸҰݸࡴͨ͠ΓɺରࡦΛߟ͑Δ• systemdΑ͘Ͱ͖ͯΔ…͍͢͝…• (͔͠͠ɺ͜ΜͳࣄͰͳ͚Ε͋Μ·ΓΘͳ͍͔)
systemd-analyze time$ systemd-analyze timeStartup finished in 2.745s (kernel) + 40.594s (userspace) = 43.340s
systemd-analyze blame
systemd-analyze plot > systemd.svg
systemd-analyze critical-chain
ߦͬͨࣄ• hciuart.serviceͷແޮԽ (BT serial)• ΧʔωϧίϚϯυϥΠϯ(cmdline.txt)मਖ਼• rootࢦఆΛUUID͔Β/dev/ࢦఆ• quietՃ
• ࣗ࡞ϒʔτΞοϓεΫϦϓτͷҐஔௐ• ॳmulti-user͕ͩͬͨnetworkͷafterʹͨ͠• dhcpcdɺ߹͋Γ์͠• 110 -> 45ඵ΄Ͳɺ͏ʔΜɺ·͍͍͔͋ɻ
͜ΕҎ্Λૂ͏ʹ…• dhcpcdΛௐ͢Δʢ͋Δ͍ωοτϫʔΫΛఘΊΔʣ• ໊ࡳͷBootupίʔυࣗମΛݟ͢• ↑͜ΕΒҎ֎ޡࠩɺͬͯ͋Μ·ҙຯͳ͍• ࣮ʹ໌֬Ͱྑ͍ɺແବ͕ͳ͍ʂ(ਖ਼͘͠ແବͳ͕࣌ؒͳ͔ͬͨ)
ͱ͍ͬͨײ͡ͰɺιϑτΣΞͰ͖ͨʂ• ͩʂ• ͦͷͨΊʹ…
ϥΠηϯεʂ• ීஈͳΒʮࣗͷίʔυΛ͚ͩ͢Ε͍͍ʂɹϥΠϒϥϦґଘੑղܾπʔϧͰʂʯ• ࠓճͰ͖ͳ͍ʂʂ• Disk imageͳͷͰʂ• blob blob
ιʔείʔυެ։• ίʔυಉࠝͰ͖ͳ͍͕ɺαΠτ͕͋Εྑ͍• ʮίʔυ͔͜͜ΒDLͰ͖ΔΑʂʯ• rabpbianެࣜͷϦϯΫ• EPDϥΠϒϥϦެࣜͷϦϯΫ• ిࢠ໊ࡳGitHubϨϙδτϦͷϦϯΫ
• ͱ͍͏͕…• ࣮ࡍ࠶Ͱ͖ͳ͍ιϑτΣΞ͕ೖͬͯͳ͍͔ෆ҆• ʢEPDϥΠϒϥϦ݁ߏ৭ʑ͍ͬͯͯෆ҆ͳͷͰɺPythonҎ֎ެࣜαΠτ͔ΒDLͯ͠Β͏͜ͱʹ͠·ͨ͠ʣ• ʮRaspbian͕࠶Ͱ͖ΔͳΒɺେମOKͩΑͶʂʯ
Raspbian• DLϖʔδʹҙॻ͖͕• Oracle - Java,• Wolfram Research - Mathematica,• ͳΔ΄Ͳʂ྆ํͱແ͍͔ؾΛ͚ͭΑ͏ʂ• dpkg-query -l |grep java• ೖͬͯͳ͍ͷͰηʔϑ
• ଞͳʹ͕͍ͬͯΔΜͩʁ• /usr/share/doc/*/copyrightΛΈΑ͏ʂ$ grep -h '^License:' \/usr/share/doc/*/copyright | \sort -i | \uniq -ic | \sort -n
;͓͓…
(ൃද࣌GIFΞχϝ)
ଟ͗͢ʂ
238छྨͷϥΠηϯεʂ• ಉ໊͡લͷϥΠηϯεΛ·ͱΊͯ͜Ε• (ࡶͳूܭͷͰ͢ͷͰɺ࣮ଶද͍ͤͯͳ͍)• Raspbian LiteͰ࠷ݶͷύοέʔδͳͷʹ͜Μͳʹ…• GPLͱͷσϡΞϧϥΠηϯεʢ࣮࣭GPLʣ͕ଟ͍• ͳΜͳͷ͜Εʁͱ͍͏ϥΠηϯεଟ͍…
ൈਮ1 License: Binary redistribution (Atheros)4 License: Beer-ware• ͳΔ΄ͲόΠφϦͳΒOK• ͳΔ΄ͲϏʔϧΣΞʢ͍͔ͭػձ͕͋ΕϏʔϧΛ…ʣ• ͜ΕΒΘ͔Δɺ͔͠͠…
ൈਮ2 License: probably-PD2 License: config-h4 License: none5 License: custom12 License: other
none!
other!!
custom!!!
probably!!!!
͜ΕϠό͍• ݟͳ͔ͬͨ͜ͱʹ…Ͱ͖ͳ͍Αͳ͋ɻ• ҰԠࢹؤுͬͨʢग़དྷͨͱݴ͍ͬͯͳ͍ʣ• BLOBͷυϥΠόόΠφϦ࠶ͳΒOKͬΆ͍• Ұ෦ͷʮຊʹṖʯͳϥΠηϯεͳΜͱݴ͑ͳ͍• (LinuxͷσΟετϦϏϡʔγϣϯ͍ͬͯ͢͝ͳ…)
ιʔείʔυҎ֎…• mercari͞Μͷϩΰ͕ೖͬͨը૾ͱ͔ʢͪ͜Β࠶ېࢭͰ͢ʣ• buildersconͷը૾ͱ͔ʢCC BY-SA)• ʮଟେৎʂͰ͠ΐʂʂʯ
·͋㙽ʹ֯Πϝʔδ͢Δͧʂ• ͰɺෳͷͨΊʹSDΧʔυΛಡΈࠐΜͰɺσΟεΫΠϝʔδʹ͠Α͏ʂ
·ͣऔΓࠐΉ• SDΧʔυΛMacʹͭͳ͍Ͱɺ͓ͳ͡ΈddίϚϯυΛ͏• dd if=/dev/rdisk2 of=bc.img count=1776 bs=1m• /dev/diskXͰͳ͘ɺ/dev/rdiskXΛ͔͍ͭ·͠ΐ͏ɺ͕10ഒ͍ɻ• (bs=1mͷ࣌ͷ)count=1776ͬͯͲ͔͜Βग़͖ͯͨʁ→ʢΦϚέΛݟͯͶ
• ͔͠͠ɺ࡞ۀsd͔ΒΠϝʔδ࡞ΔͱΰϛͩΒ͚• ΫϦʔϯͳRaspbianΠϯετʔϧࡁΈΠϝʔδ͔ΒϦϦʔεΠϝʔδΛϏϧυ͢Δͧʂ
ͭΒ͍ʂ• 1Ϗϧυ 1࣌ؒʢେମaptͪʣ• ϚελSD͔ΒΠϝʔδʢ10ʣ• ਅ৺ςετ30ʢେମ࠶ىಈͪʣ• ͷͨΊʹGH Releaseʢ60)• 1प2࣌ؒ• ͭΒ͍ʂʢ·͋ͳΜͱ͔ͬͨ…ʣ
ʮCI͖ͯ͘Εʂʂʯ• ͕࣌ؒͳ͔ͬͨͷͰɺඋͰ͖·ͤΜͰͨ͠ɻ• ࣍ճͷ՝Ͱ͢ɻ
ελοϑϏϧυΛͯ͠ςετͯ͠Β͏• ʮͰ͖ͨʂσόοάͯ͠ʂʯ=>ʮΘ͔ͬͨʂʯ• ʮͳΜ͔chroimum͕͏͔͝ͳ͍ͳʙʯ• …ͦΕϑΝʔϜΣΞͷσόοάͱؔͳ͘Ͷ͑ʁ• ʮέʔϒϧͲ͔͍͖͜·ͨ͠ʯ• ͦ͏͔…ͦΕ೦ͩ…
ଞਓࣄʹ͓͍ͯ༏ઌॱҐ͍ʂ• Έͳ͍͠ʂͨΓલͩͳʂΦϨͩͬͯଟͦ͏ͩΘʂ• ͭ·Γɺ͕ࣗΔ͔͠ͳ͍ͬͯ͜ͱͩͳΨοϋοϋʂ• ͦΕͰ̍ʙ̎ճɺىಈςετΛͯ͠ΒͬͯوॏͳόάϨϙήοτʂʢͷ͋͘͢͝Γ͕͔ͨͬͨʂ͋Γ͕ͱ͏macopyʂʂʣ• ʢͨΓલ͕ͩʣؒͰʮνʔϜʯͱʮϔϧϓʯҧ͏
ςετͯ͘͠ΕΔਓوॏʂʂʂʂԿΑΓوॏʂʂ
• ୯ҰڥͰ࠶ݱ͠ͳ͍όάΛ֬ೝ͢Δ͜ͱ΄΅ෆՄೳ• ඞࢮʹVM࣮ػΛͳΒͯࣗͰςετ͢Δ• ࣗ༝͕ߴ͍ͷόάͷྔ͕ҟৗʹଟ͍ʂ• ͬͯ͘͠ΕΔਓ͕͍ͨΒɺશྗͰαϙʔτ͠Α͏
• ͼدΔखൈ͖• ςετ͕େม͗ͯ͢ɺҰ෦ఆखॱΛʮ࣮ࡍͷӡ༻ͱҟͳΔʯखॱͰͬͯ͠·͍ͬͯͨʢ̍࣌ؒॖͰ͖Δ…ʣ• ྫɿγϦΞϧίϯιʔϧͰWifiύεϫʔυઃఆ• Ҋͷఆఆ֎ͷόά͕͍ͨ• set -eͰίέΔఔͷ…• ࣮ػͰɺఆͷखॱͰɺςετ͠ͳ͚Εବʂ
ͨ͠ʂ• ʮࢼͯ͠Έ͚ͨͲಈ͔ͳ͍Ͱ͢ʯʮͦΕଟ࠷৽ϑΝʔϜͰͳ͓͍ͬͯ·͢ɺম͍ͯΈͯΒ͑·͔͢ʁʯ• ʢͦͯ͠ɺԠ్͕ΕΔʣ• ͔ͨ͠ͳ͍…͔ͨ͠ͳ͍…ɻ
• ࠺ʹ͓ئ͍ͯ͠ςετͯ͠Β͏→ ࠺ʹͰ͖ͨʂ• ͜Εʹ͔ͳΓࣗ৴͕༙͍ͨ• ʢͨͩɺ͜͜Ͱόάݟ͚ͭͨʣ
Γ͔ͨͬͨ…ʂʂ• ςελʔͷखؒΛΒͨ͢ΊʹOTAΞοϓσʔτΛ࡞Γ͔ͨͬͨɻ• ໊ࡳͷిݯΛ͍ΕΔͱશࣗಈͰΠϝʔδΞοϓσʔτ• ख๏ΛΜͰ͍͕͍͍ͨҊ͕ࢥ͍͔ͭͣɺແཧͩͬͨ• ࣍Δͧʂʂʂʢ͕࣍͋Δͷ͔ʁʣ
͏ҰͭͷςΫɺ࣮ػΛଟ͘Ε• ଟ͘ͷਓʹ͘Εɺϫϯνϟϯͬͯ͘ΕΔਓ͕ग़Δ• ΔϞϊΛ࡞Δˠ·͋ɺͲ͏ʹ͔ͳΔ• ʮͬͯ͘ΕΔਓʯΛ୳͢ˠͭɺͭΒ͍…• ʮ͜ͷۤ࿑ຊ࣭తͰͳ͍ʂʢ͍͍͑͜Ε͕ຊ࣭Ͱ͢ʣʯ• ͔ͭͬͯΈ͍ͨʂͱࢥΘΕΔϓϩμΫτͳΒྑ͍ͣͩ!(?)
• ͋Δ͍ɺ͏ޏͬͪΌͬͨ΄͏͕ྑ͍͔• ΄ͱΜͲࣄͩ͠ɺ͜Εࣄͩʂ• (ͱɺݴͬͨΒʮႢಹత͗͢ͳ͍ʁʯͱ͍ΘΕͨͷͰɺਫ਼ਆ͕ζϨ͖͍ͯͯΔՄೳੑ͕͋Γ·͢)• ͜Ε·͋ɺίετͷ߹Ͱ͍͠Ͱ͢Ͷ…• ʮίετμϯ͠·͢ʂʯͱ͔ܾҙ͠ͳ͍΄͏͕ྑ͍͆
ςετ͕ͭΒ͍• 㙽ʹ࣮֯ػͷςετ͍ͨΜ• ͭ͘Γͳ͕Βςετ͢Δͷ͍ͨΜ• ػೳ͕;͑ͯɺόοαϦػೳΛ͓ͱͯ͠ɺϦϑΝΫλͯ͠=>σάϨʂ
• օ༷ෆ۩߹͕͋Εɺ͓ڭ͍͑ͩ͘͞ɻ• …ͨͩɺ࠷ॳʹυΩϡϝϯτͷTROUBLESHOOT.mdΛΈͯ͘ΕΔͱ͏Ε͍͠Ͱ͢• ʢ͏͔͝ͳ͍ཧ༝ͷׂ̓ɺϙʔτΛ·͕͍ͪ͑ͯΔ͔ɺผͷॴ͔Β͖ͬͯͨ૬ੑͷѱ͍USBέʔϒϧΛͭͳ͍Ͱ͍ΔɺͰ͢ʣ• ʢWifiʹ͍ͭͯύεϫʔυ͕ҧ͏ͱ͔…كʹಛघͳwpa_supplicant.confͷઃఆ͕ඞཁͳAP͋ΔΒ͍͕͠…ʣ
ಀ͍͛ͯ͘• ʮόάΈ͚ͭͨɺͳ͓ͦ͏ʢ-ʣʯ• ʮ͜ͷػೳ͍ΔΑͳɺ͚ͭΑ͏(-1)ʯ• ͕࣌ؒͲΜͲΜΔ• microSDΛম͕࣌ؒ͘…
…͏ʔΜ
ഒʹ͠Α͏ʂʂ• ϏϧίϯϚγʔϯҰຊ1ສ͘Β͍ͳͷͰɺ2ສͰ͢ɻ• ࣗͷਓΛৼΓฦΕɺ໌Β͔ʹ͍҆ࢿʂ• (USB HUB ˇ4000, SD reader ˇ500*10)
• ؾ߹Λ͍ΕΕ༦ํ6͔࣌Βਂ0࣌Ͱ210ຕম͚Δʂ• ࠷ߴʂ• (Ұʹ2ͭͭͳ͙ͱ͍ͷͰɺ࣮ࡍ2ͷMacͰΓ·ͨ͠)• ͜ΕͰ͏ͪΐͬͱ։ൃͷ͕࣌ؒՔ͛Δͧʂ
…ͱ͍͏͜ͱͰ• Ͱ͖·ͨ͠ʂʢಥʣ• ʢ͜ͷεϥΠυΛॻ͍͍ͯΔ࣌ͰʮͰ͖͍ͯΔͣʯʣ• ʢಉ࣌ظʹɺॆిͨ͠microSDͱόοςϦʔΛࠩ͠ࠐΈͳ͓ͯ͠ɺശ٧Ί͢Δɺͱ͍͏࡞ۀ͕͋Γɺ࠺ʹखͬͯΒͬͨɻιϑτΣΞΛॻ͖ɺ࠺͕ࠝแɻՈ੍खۀ͜͜ʹۃ·ΕΓɺ͋Γ͕ͱ͏࠺ɺ͋Γ͕ͱ͏ʣ
ͦͯ͠ૹͱͱαϙʔτ• TBD• (͜ͷεϥΠυΛॻ͍͍ͯΔ࣌Ͱ·ͩυΩϡϝϯτΛه͢Δ༧ఆ)
·ͱΊ• ͜ͷΑ͏ͳ༷ʑͰిࢠ໊ࡳͰ͖·ͨ͠• Γӽ͑ΒΕͳ͍นʢ࠷ॳ͔Βආ͚͍ͯͨͷͰʣͳ͔ͬͨ• ͨͷ͍͠ʂʂʂ• ͕࣌ؒ͋ΕͰ͖Δ͋Μͳࣄ͜Μͳࣄʹະ࿅
• ςετʹͤΑɺҙݟूΊʹͤΑʮؒʯ͕Ұ൪رগͰ͢• ࣌ؒރׇ͠·͢ʢஅݴʣͰ͖ΔݶΓר͖·͠ΐ͏• ͓ۚϞνϕͱͱަবͰͲ͏ʹ͔͢ΔͷͰ͢(ࠇ͞)• ٕज़ख࣋ͪΛ׆༻Ͱ͖ΕϥοΩʔɺҐͰͩ͜ΘΒͣ• ͋ͱΔؾʂʂΔؾ͕͋ΕԿͰͰ͖Δʂʂ
ϨοπτϥΠʂ• ʰԶొΓ࢝Ί͔ͨͬΓ͔ͩΒΑɺ͜ͷṖΨδΣοτࡔΛΑ…ʱ• ͭͮ͘…ʂʢʁʁʁʣ
͓·͚
ϏϧίϯϚγʔϯͷૉࡐ• ਖ਼ɺ͜͏͍͏ͷ৭ʑࢼ͞ͳ͍ͱʮͲΕ͕͍͍ʯ͔ෆ໌
• ৭ʑങͬͯΈͨΒɺOricoͷ10ϙʔτ͕͍҆ͷʹ҆ఆ͍ͯͨ͠• 4000ԁ• https://www.amazon.co.jp/dp/B00ZT9MRLW• 2ݸങ͚ͬͨͲෆྑແ͠
• ϦʔμʔυεύϥͷUSB3.0ରԠ500ԁͷ͕ͭ҆ఆ͍ͯͨ͠• Ұݸ500ԁ• http://www.dospara.co.jp/5shopping/detail_parts.php?ic=446699• 21ݸങ͚ͬͨͲෆྑແ͠• USB3.0ʹͭͳ͍ͩ࣌ɺൃ݁ߏ͍͢͝…• ʢ·͋ɺ6࣌ؒஅଓతʹম͍ͯେৎ͚ͩͬͨͲʣ
• ͋͘·Ͱɺࢲͷ߹ɺͰ͢ɻ• ৭ʑࢼ͠·͠ΐ͏ɻ
༨ஊ)USB3.0͍͢͝ʂ• USB 3.0ͷൺֱత৽͍͠MBP• USB 2.0ͷൺֱతݹ͍MBP• ੑೳ͕ࠩʂ
͍ʂ• 39 vs 49• 10ຕ࣌ͷ࣮ޮ1.2ഒ͘Β͍• (·͋ɺ͜ͷʮιϦϡʔγϣϯʯ͕ΠϚΠνͳͷͩ)• (ຊͷϚγʔϯύϥϨϧͰ͍Β͍͠ɺॴḨ·͕͍ͩ…·͋ࠓճे͚ͩͬͨͲ…)
ϠϓγʔϚγʔϯϦεϖΫτ• moznionࢯ࡞ͷൃϚγʔϯΛ݁Ռͱͯ͠ϦεϖΫτ• (DIYɺԹௐཧث)• (ʮYet Another Perl Cookingʯඞݟ)• 60ʹ͋ͱ10ಧ͔ͳ͔ͬͨ…
• ͳ͔ͥҰ෦ͷMacͩͱmicroSDϦʔμΛ̍̎ݸ·Ͱ͔͠ೝࣝ͠ͳ͔ͬͨɺݹ͍Macʹ͔͑ͨΒͪΌΜͱ̎̌ݸೝࣝͨ͠ɻṖͰ͢
༨ஊ)ޙμΠιʔʹ͍ͬͨΒ…• όοςϦʔΛผͳॴ͔ΒҾ͍ͨޙɺμΠιʔʹUSBόοςϦʔͷΞοϓσʔτ൛͕࠶ೖՙ͍ͯͨ͠ɻ• ʮ…·͋ɺͱΓ͋͑ͣങ͏͔…ʯ• ͦͯ͠όϥͯ͠Έͨ
• ಉ͡ݟ͕ͨͩɺΒͯ͠ΈΔͱݸੑ͕͋Δ• ج൫શ෦ҟͳΔɺઢํࣜҟͳΔɻ• μΠιʔ৽ܕʮόοςϦʔʹΜ͚ͩ͞Ε͍ͯͳ͍ʯɺηϧ͕ަͰ͖Δɺ͍͢͝ʂਐԽΛײ͡Δ…ʂ• (҆όοςϦʔେମ༹͕ବͰෆྑ͕ଟ͍Ά͍)• (ʔɺ͜ΕΛେྔจͰ͖ͨΒΑ͔ͬͨͷʹͳʔ…ʣ
༨ஊ)ϥϯμϜจࣈྻΛ࡞Δπʔϧͱͯ͠ͷopenssl• ͳΕ͍ͯΔ҆͠શͳؾ͕͢ΔʢݸਓͷײͰ͢ʣ• ؾ͋͠͞Δ• .rndΛੜͰ͖ͳ͍ͱɺʢฦΓ͕ʣΤϥʔ…• ͭ·Γɺsystemdͷىಈ࣌ʹΔͱΤϥʔʂ• set +eͰճආʢ͍ͩ͞…ʣ
༨ஊ)ddͰಡΈࠐΉ࣌ͷcountͷܭࢉ$ sudo fdisk -e /dev/disk2fdisk: 1> printDisk: /dev/disk2 geometry: 958/255/63 [15400960 sectors]Offset: 0 Signature: 0xAA55Starting Ending#: id cyl hd sec - cyl hd sec [ start - size]------------------------------------------------------------------------1: 0C 0 130 3 - 6 4 22 [ 8192 - 88472] Win95 FAT32L2: 83 6 30 25 - 226 104 6 [ 98304 - 3538944] Linux files*3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
#: id cyl hd sec - cyl hd sec [ start - size]------------------------------------------------------------------------1: 0C 0 130 3 - 6 4 22 [ 8192 - 88472] Win95 FAT32L2: 83 6 30 25 - 226 104 6 [ 98304 - 3538944] Linux files*3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused• ʮ͜ͷ߹ɺΦϑηοτ98304ηΫλ͔Βɺ 3538944ηΫλઌ͕ऴηΫλͩͳʂʯ• 2048ηΫλ = 1024KiBͳͷͰ…• (98304 + 3538944) / 2048 = 1776
ͳ͓ɺLinuxͰΔ߹• ͪ͜ΒऴηΫλ͕࠷ॳ͔ΒͰ͍ͯΔͷͰ͠ࢉෆཁ• 3637247 / 2048 = 1775.999511719• 1776 (Γ্͛Δ)
# ݸਓతʹΑ͘ݟͯͨ(?)γϣοϓ- AliExpress(৭ʑͳҙຯͰ࠷ڧɺࣗݾ)- Amazon.co.jp(ṖͷۀऀͰ҆৺(?))- εΠοναΠΤϯε (νϣΠεʹ͓͠ΌΕ͞Λײ͡Δ)- ळ݄ిࢠ- ઍੴి- Ϛϧπ- Aitendo- adafruit (ͷγϣοϓ)- KSY (ͷɺಛʹRspberry pi Shop)- pimoroni- RSίϯϙʔωϯπ- strawberry-linux (ిݯ͕ຊʹྑ͍…)- Digikey (࠷ڧ)- Mouser (ʮ͝ΊΜʂۭ༌Ͱ͖ͳ͔ͬͨ͆ʯΈ͍ͨͳ͓ͳࣄ͋ͬͯΊͳ͍)
༨ஊ)͔Θ͍͍motd• http://patorjk.com/software/taag/#p=testall&f=Graffiti&t=builderscon
༨ஊ OSXʢͷbashʣͱvfat$ ls -alls: .: Invalid argument• ͜ͷΑ͏ͳΤϥʔ͕ग़ͨΓͰͳ͔ͬͨΓ͢Δɻ• ʢexfatΛ͏ͱղܾ͢ΔΒ͍͕͠ɺϓϩϓϥΠΤλϦͰ࠷ॳ͔Βύοͱ͍Ε͓͖ͯͮΒ͍ʣ
༨ஊ)QEMUΛ͔ͭͬͨVMͲ͏͔ʁqemu-system-arm \-kernel kernel-qemu-4.9.59-stretch \-cpu arm1176 \-M versatilepb \-dtb versatile-pb.dtb \-m 512 \-no-reboot \-serial stdio \-curses \-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \-hda 2018-06-27-raspbian-stretch-lite.img \-net nic -net user,hostfwd=tcp::10022-:22• ࠓճEPDΛ͔ͭ͏͕ɺVMʹEPDͳ͍ͷͰ͔ͬͨ͠
༨ஊ) ຊ(?)தࠃ͔Βങ͏• aliexpressָʂ• amazon.co.jpͰങͬͯதࠃૹଟ͍• ͔͔࣌ؒΔ(1ʙ2w)͕ɺૹྉແྉଟ͍• ീԦࢠͷࣗʹʑɺṖͷখแ͕ಧ͘
खͯ͠͠͏• ۂ͕͍ͬͯΔϐϯ• Ϟή͍ͯΔઢ• σʔλγʔτΛάάΔ• ָ͍͠ʂʢʁʁʣ
aliexpressνϟοτͰΫϨʔϜͰ͖ͯศར• ϐϯͱ͔ͳ͓͍͍͕ͤ…• ෳݸങͬͨΒɺҰݸ͚ٕͩదγʔϧ͕ແ͍ࣄ͕͋ͬͨ• ʮͦΕ࣭ʹؔͳ͍ϤʂʯʮԶ͕ࠔΔʯ• ʮͦΕͷϛεͩϤʂόΠόΠʂʯ• ͭΑ͍…• ʢݸͳΒ͍͍͕ɺ͜͜Ͱඦݸങ͑Δ͔ʁʁʁʣ
100ۉ௨ൢTips• μΠιʔηϦΞࢁ(ྫ:300pc)ങ͏ͱɺ௨ൢͰ͖Δ• ͲͪΒΣϒΧλϩάͳ͍ɺళฮͰJANίʔυΛௐ͔ͯΒΣϒϑΥʔϜ͍߹ΘͤΔඞཁ͕͋Δ• Can˒DoΣϒΧλϩά͋Γɺ࠷গͳ͘จՄೳ(ͨͩɺిࢠখͷἧ͑͋Μ·Γ…ʣ
# νΣοΫϦετ- ࠒ͔ΒΞΠσΟΞΛஷΊɺ৭ʑങͬͯࢼ͓ͯ͜͠͏- Αͦ͞͏ͳؒΛ͕͓ͯ͜͞͠͏- ݟੵΓલʹϢʔβʔςετΛ͠Α͏ʂൿີओٛϋϯσʂ- ͭΒ͍ʂʢਏ͍Ͱͳ͍ʣ- ૣ༷͘ݻΊΑ͏ʂ- ༧ࢉॊೈʹͰ͖ΔΑ͏ʹ͠Α͏ʂ༧උඅΛͭ͏ʂ- ෦ࡐ͕औΕΔ͔·ͣʹ͍߹ΘͤʂͪΜͨΒͬͯΔͱ෦ࡐ͕σΟείϯʂ- ͭΒ͍ʂʢਏ͍Ͱͳ͍ʣ- खʹ͍Γͦ͏ͳΒૣ͘จʂ- ؒΛΈ͚ͭΑ͏ʂ- ͍ॴΛ༻ҙʂʢϞϊΛஔ͍͓ͯ͘ʹͤΑɺΈཱͯΔʹͤΑʣ- βςετ༻ͷςετػૣΊʹ४උ͠Α͏ʂ- ΣϒͱҧͬͯޙͰσϓϩΠͰ͖ͳ͍͔Βग़དྷΔ͚ͩૣ͘ϕʔλ൛Λʂ- కΊΓΛ৳ͨ͢ΊͷͰͳ͘ɺվળͷͨΊʹʢͱݴͬͯʣۚΛ͓͏ʂ- ҙݟʹ͖͜͏ʂ͔ࣗ͠͠ͷඪ͔ͬ͠Γ࣋ͱ͏ʂ- ҙݟΛ͍ͬͯ͘ΕΔςελʔΛखްͯ͘ͳͦ͏ʂ- ͨͷ͍͠ʂ