{"id":2894,"date":"2022-03-28T20:20:22","date_gmt":"2022-03-28T11:20:22","guid":{"rendered":"http:\/\/blog.ictjp.com\/?p=2894"},"modified":"2022-05-05T21:19:40","modified_gmt":"2022-05-05T12:19:40","slug":"2022-03-28-arduino%e3%81%a7r2d2%e3%81%a83d%e3%83%97%e3%83%aa%e3%83%b3%e3%82%bf%e3%81%a7%e3%83%a9%e3%82%b8%e3%82%b3%e3%83%b3%e3%82%92%e9%96%8b%e7%99%ba%e3%81%97%e3%81%be%e3%81%97%e3%81%9f","status":"publish","type":"post","link":"https:\/\/blog.ictjp.com\/?p=2894","title":{"rendered":"Arduino\u3067R2D2\u3092\u958b\u767a\u3057\u307e\u3057\u305f"},"content":{"rendered":"<p>PCR\u691c\u67fb\u306e\u305f\u3081\u3001\u6c17\u4ed9\u6cbc\u306b\u884c\u3051\u306a\u304b\u3063\u305f\u306e\u3067Arduino\u3067R2D2\u30683D\u30d7\u30ea\u30f3\u30bf\u3067\u30e9\u30b8\u30b3\u30f3\u3092\u958b\u767a\u3057\u307e\u3057\u305f<\/p>\n<p>\u30b7\u30f3\u30b0\u30eb\u30dc\u30fc\u30c9\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u300cArduino\u300d\u3067\u3001\u30ed\u30dc\u30c3\u30c8\uff08R2-D2\uff09\u3092\u4f5c\u308a\u307e\u3057\u305f\u3002<br \/>\n\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3092\u4f7f\u3044\u3001\u64cd\u7e26\u3057\u307e\u3059\u3002<\/p>\n<p>*\u4f7f\u7528\u3057\u305f\u90e8\u54c1*<br \/>\nArdino UNO R3\uff08\u4e92\u63db\u6a5f\uff09<br \/>\nL293D \u30e2\u30fc\u30bf\u30fc\u30b7\u30fc\u30eb\u30c9<br \/>\nHC-05 Bluetooth\u30e2\u30b8\u30e5\u30fc\u30eb<br \/>\nDFPlayer mini\uff08\u4e92\u63db\u6a5f\uff09<br \/>\n\u30c7\u30b8\u30bf\u30eb\u96fb\u5727\u8a08<br \/>\n\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30dc\u30002\u500b<br \/>\nDC\u30e2\u30fc\u30bf\u30fc\u30002\u500b<br \/>\nLED\u30d5\u30e9\u30c3\u30b7\u30e5\u30e9\u30a4\u30c8<br \/>\n\u30b9\u30d4\u30fc\u30ab\u30fc<br \/>\n\u5404\u7a2e\u30b1\u30fc\u30d6\u30eb<br \/>\nP206 \u30e2\u30d0\u30a4\u30eb\u30d0\u30c3\u30c6\u30ea\u30fc<br \/>\n\u5916\u88c5\uff08R2-D2\u306e\u304a\u3082\u3061\u3083\uff09<\/p>\n<p>*\u6a5f\u80fd*<br \/>\nBluetooth\u9060\u9694\u64cd\u4f5c<br \/>\n\u8d70\u884c\uff08\u524d\u9032\u30fb\u5f8c\u9000\u30fb\u53f3\u6298\u30fb\u5de6\u6298\uff09<br \/>\n\u30ed\u30dc\u30c3\u30c8\u30a2\u30fc\u30e0\u52d5\u4f5c<br \/>\n\u982d\u56de\u8ee2<br \/>\n\u767a\u8a71\uff08\u521d\u97f3\u30df\u30af\u3068R2-D2\u306e\u58f0\uff09<br \/>\n\u30d5\u30e9\u30c3\u30b7\u30e5\u30e9\u30a4\u30c8\u70b9\u706f<br \/>\n\u51fa\u529b\u96fb\u5727\u8868\u793a\uff085V\u51fa\u529b\u30d4\u30f3\uff09<\/p>\n<p>*\u5de5\u592b\u3057\u305f\u3053\u3068*<br \/>\n\u30fb\u5fdc\u7b54\u901f\u5ea6\u304c\u901f\u304f\u306a\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fb\u58ca\u308c\u306b\u304f\u304f\u3001\u6301\u3061\u904b\u3073\u3057\u3084\u3059\u304f\u306a\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fb\u898b\u3066\u3044\u3066\u300c\u697d\u3057\u3044\u300d\u3084\u3001\u300c\u304b\u308f\u3044\u3044\u300d\u306a\u3069\u3068\u601d\u3046\u3088\u3046\u306a\u30ed\u30dc\u30c3\u30c8\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30fb\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u304c\u3057\u3084\u3059\u3044\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2791\" src=\"http:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-1024x768.jpg\" alt=\"\" width=\"620\" height=\"465\" srcset=\"https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-1024x768.jpg 1024w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-640x480.jpg 640w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-768x576.jpg 768w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-1536x1152.jpg 1536w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-2048x1536.jpg 2048w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-973x730.jpg 973w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_132404-508x381.jpg 508w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2793\" src=\"http:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-768x1024.jpg\" alt=\"\" width=\"620\" height=\"827\" srcset=\"https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-768x1024.jpg 768w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-480x640.jpg 480w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-1152x1536.jpg 1152w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-1536x2048.jpg 1536w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-973x1297.jpg 973w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-508x677.jpg 508w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143705-scaled.jpg 1920w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2792\" src=\"http:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-768x1024.jpg\" alt=\"\" width=\"620\" height=\"827\" srcset=\"https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-768x1024.jpg 768w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-480x640.jpg 480w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-1152x1536.jpg 1152w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-1536x2048.jpg 1536w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-973x1297.jpg 973w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-508x677.jpg 508w, https:\/\/blog.ictjp.com\/wp-content\/uploads\/2022\/05\/IMG_20220328_143701-scaled.jpg 1920w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>*\u30d7\u30ed\u30b0\u30e9\u30e0*<br \/>\n\/\/ DC\u30e2\u30fc\u30bf\u30fc\u306e\u5236\u5fa1<br \/>\n#include <Servo.h>  \/\/ Servo\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30af\u30eb\u30fc\u30c9<br \/>\n#include <AFMotor.h>  \/\/ AFMotor\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30af\u30eb\u30fc\u30c9<br \/>\n#include &#8220;SoftwareSerial.h&#8221;<br \/>\n#include &#8220;DFRobotDFPlayerMini.h&#8221;<br \/>\n#define BUTTON 19<br \/>\nDFRobotDFPlayerMini myDFPlayer;<br \/>\nSoftwareSerial mySerial(14, 15); \/\/ RX, TX<br \/>\nAF_DCMotor motor1(1);  \/\/ \u30e2\u30fc\u30bf\u30fc\u2460\u3092\u30e2\u30fc\u30bf\u30fc\u7aef\u5b501\u306b\u63a5\u7d9a<br \/>\nAF_DCMotor motor2(2);  \/\/ \u30e2\u30fc\u30bf\u30fc\u2460\u3092\u30e2\u30fc\u30bf\u30fc\u7aef\u5b501\u306b\u63a5\u7d9a<br \/>\nServo myservo1;<br \/>\nServo myservo2;\/\/ \u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210<br \/>\nconst int Servo1_PIN = 9;  \/\/ \u30b5\u30fc\u30dc\u63a5\u7d9a\u30d4\u30f3\u306e\u6307\u5b9a<br \/>\nconst int Servo2_PIN = 10;<br \/>\nint numfile;   \/\/\u697d\u66f2\u30d5\u30a1\u30a4\u30eb\u6570<br \/>\nint lastval=0; \/\/\u30dc\u30bf\u30f3\u306e\u5024\u4fdd\u5b58\u7528<\/p>\n<p>\/\/\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u304b\u3089\u306e\u30c7\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u308b<br \/>\nchar data;<br \/>\n#define RX_PIN 14<br \/>\n#define TX_PIN 15<\/p>\n<p>SoftwareSerial mySoftwareSerial(RX_PIN, TX_PIN); \/\/ RX, TX<br \/>\nvoid setup() {<\/p>\n<p>pinMode( 16, OUTPUT );<br \/>\n  \/\/2\u3064\u306e\u30e2\u30fc\u30bf\u30fc\u306e\u305d\u308c\u305e\u308c\u306e\u30d4\u30f3\u3092\u51fa\u529b\u306b\u8a2d\u5b9a<br \/>\n  Serial.begin(9600);<br \/>\n  motor1.run(RELEASE);  \/\/ \u30e2\u30fc\u30bf\u30fc\u3092\u4e00\u65e6\u505c\u6b62\u3055\u305b\u308b<br \/>\n  motor2.run(RELEASE);  \/\/ \u30e2\u30fc\u30bf\u30fc\u3092\u4e00\u65e6\u505c\u6b62\u3055\u305b\u308b<br \/>\n  myservo1.attach(Servo1_PIN);  \/\/ \u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\u30fc\u306e\u8a2d\u5b9a<br \/>\n  myservo2.attach(Servo2_PIN);  \/\/ \u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\u30fc\u306e\u8a2d\u5b9a<\/p>\n<p>  delay(2000); \/\/\u30e2\u30b8\u30e5\u30fc\u30eb\u8d77\u52d5\u306e\u5f85\u6a5f\u6642\u9593<br \/>\n  pinMode(BUTTON, INPUT);<br \/>\n  randomSeed(analogRead(0)); <\/p>\n<p>  \/\/ SoftwareSerial\u3068DFPlayer\u306e\u521d\u671f\u5316<br \/>\n  mySoftwareSerial.begin(9600);<br \/>\n  if (!myDFPlayer.begin(mySoftwareSerial)) {  \/\/Use softwareSerial to communicate with mp3.<br \/>\n    while(true);<br \/>\n}<br \/>\nnumfile = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);<br \/>\n}<\/p>\n<p>void loop() {<\/p>\n<p>  lastval = (lastval << 1) | digitalRead(BUTTON); \/\/ \u30c1\u30e3\u30bf\u30ea\u30f3\u30b0\u56de\u907f\n  motor1.setSpeed(255);  \/\/ \u30e2\u30fc\u30bf\u30fc\u30b9\u30d4\u30fc\u30c9\u3092\u8a2d\u5b9a(0~255\u306e\u7bc4\u56f2)\n  motor2.setSpeed(255);  \/\/ \u30e2\u30fc\u30bf\u30fc\u30b9\u30d4\u30fc\u30c9\u3092\u8a2d\u5b9a(0~255\u306e\u7bc4\u56f2)\n  if (Serial.available() > 0) { \/\/\u3082\u3057\u3001\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u304b\u3089\u306e\u30c7\u30fc\u30bf\u304c\u3042\u3063\u305f\u3089<br \/>\n    data = Serial.read();<br \/>\n  }<\/p>\n<p>  if (data == &#8216;F&#8217;) { \/\/\u2191\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u524d\u9032<br \/>\n    Serial.println(&#8220;\u524d\u9032&#8221;);<br \/>\n    myservo1.write(60);    \/\/ \u6307\u5b9a\u89d2\u5ea6\u306b\u30b5\u30fc\u30dc\u3092\u52d5\u304b\u3059<br \/>\n    motor1.run(FORWARD);   \/\/ \u30e2\u30fc\u30bf\u30fc1\u3068\u30e2\u30fc\u30bf\u30fc2\u3092\u6b63\u56de\u8ee2\u3055\u305b\u308b<br \/>\n  } else if (data == &#8216;R&#8217;) { \/\/\u2192\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u53f3\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u53f3\u56de\u8ee2&#8221;);<br \/>\n    myservo1.write(30);<br \/>\n  } else if (data == &#8216;L&#8217;) { \/\/\u2192\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u53f3\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u5de6\u56de\u8ee2&#8221;);<br \/>\n    myservo1.write(90);<br \/>\n  } else if (data == &#8216;I&#8217;) { \/\/\u2190\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5de6\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u53f3\u56de\u8ee2\u524d\u9032&#8221;);<br \/>\n    myservo1.write(30);<br \/>\n    motor1.run(FORWARD);<br \/>\n  } else if (data == &#8216;J&#8217;) { \/\/\u2190\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5de6\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u53f3\u56de\u8ee2\u5f8c\u9032&#8221;);<br \/>\n    myservo1.write(30);<br \/>\n    motor1.run(BACKWARD);<br \/>\n  } else if (data == &#8216;H&#8217;) { \/\/\u2190\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5de6\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u5de6\u56de\u8ee2\u5f8c\u9032&#8221;);<br \/>\n    myservo1.write(90);<br \/>\n    motor1.run(BACKWARD);<br \/>\n  } else if (data == &#8216;G&#8217;) { \/\/\u2190\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5de6\u56de\u8ee2<br \/>\n    Serial.println(&#8220;\u5de6\u56de\u8ee2\u5f8c\u9032&#8221;);<br \/>\n    myservo1.write(90);<br \/>\n    motor1.run(FORWARD);<br \/>\n  } else if (data == &#8216;B&#8217;) { \/\/\u2193\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5f8c\u9032<br \/>\n    Serial.println(&#8220;\u5f8c\u9032&#8221;);<br \/>\n    myservo1.write(60);<br \/>\n    motor1.run(BACKWARD);  \/\/ \u30e2\u30fc\u30bf\u30fc1\u3068\u30e2\u30fc\u30bf\u30fc2\u3092\u9006\u56de\u8ee2\u3055\u305b\u308b<br \/>\n    \/\/mp3_play (1);<br \/>\n    \/\/delay (6000);<br \/>\n    \/\/mp3_stop ();<br \/>\n  }else if (data == &#8216;W&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;ARM120&#8221;);<br \/>\n    myservo2.write(120);<br \/>\n    motor1.run(RELEASE);<br \/>\n  }else if (data == &#8216;w&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;ARM60&#8221;);<br \/>\n    myservo2.write(60);<br \/>\n    motor1.run(RELEASE);<br \/>\n  } else if (data == &#8216;U&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;head&#8221;);<br \/>\n    myservo1.write(60);<br \/>\n    motor2.run(FORWARD);<br \/>\n  } else if (data == &#8216;u&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;headoff&#8221;);<br \/>\n    myservo1.write(60);<br \/>\n    motor2.run(RELEASE);<br \/>\n  } else if (data == &#8216;V&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;music&#8221;);<br \/>\n    myDFPlayer.play(random(numfile)+1); \/\/\u30e9\u30f3\u30c0\u30e0\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u518d\u751f [1, numfile]<br \/>\n    delay (10);<\/p>\n<p>  } else if (data == &#8216;v&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    Serial.println(&#8220;music_off&#8221;);<\/p>\n<p>  } else if (data == &#8216;X&#8217;){<br \/>\n    digitalWrite( 16, HIGH );<br \/>\n  } else if (data == &#8216;x&#8217;){<br \/>\n    digitalWrite( 16, LOW );<br \/>\n  } else if (data == &#8216;S&#8217;) { \/\/\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u306a\u3051\u308c\u3070\u505c\u6b62<br \/>\n    myservo1.write(60);<br \/>\n    motor1.run(RELEASE);<br \/>\n  }<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PCR\u691c\u67fb\u306e\u305f\u3081\u3001\u6c17\u4ed9\u6cbc\u306b\u884c\u3051\u306a\u304b\u3063\u305f\u306e\u3067Arduino\u3067R2D2\u30683D\u30d7\u30ea\u30f3\u30bf\u3067\u30e9\u30b8\u30b3\u30f3\u3092\u958b\u767a\u3057\u307e&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2791,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2894","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-licht"],"_links":{"self":[{"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/posts\/2894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2894"}],"version-history":[{"count":3,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/posts\/2894\/revisions"}],"predecessor-version":[{"id":2932,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/posts\/2894\/revisions\/2932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=\/wp\/v2\/media\/2791"}],"wp:attachment":[{"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ictjp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}