You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

新建文本文档.txt 5.7 kB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. #include <Servo.h>
  2. int _ABVAR_1_i = 0 ;
  3. Servo servo_pin_4;
  4. const int s0 = A3;
  5. const int s1 = A4;
  6. const int s2 = A1;
  7. const int s3 = A5;
  8. const int out = 8;
  9. const int led = 7;
  10. const int xun_ji1 = A2;
  11. const int xun_ji2 = 3;
  12. const int xun_ji3 = A0;
  13. int red = 0;
  14. int green = 0;
  15. int blue = 0;
  16. int _ABVAR_2_a = 0;
  17. int _ABVAR_3_b = 0;
  18. void trunright();
  19. void trunleft();
  20. void stop();
  21. void duo_ji();
  22. void forwoard_drop();
  23. void forwoard_rise();
  24. void back();
  25. void forwoard();
  26. void color();
  27. void pan_duan_yan_se();
  28. void setup()
  29. {
  30. pinMode(xun_ji1 , INPUT);
  31. pinMode( xun_ji2, INPUT);
  32. pinMode( xun_ji3, INPUT);
  33. pinMode( 10, OUTPUT);
  34. pinMode( 6, OUTPUT);
  35. pinMode( 5, OUTPUT);
  36. pinMode( 9, OUTPUT);
  37. pinMode( 9 , OUTPUT);
  38. pinMode( 10 , OUTPUT);
  39. pinMode( 5 , OUTPUT);
  40. pinMode( 6 , OUTPUT);
  41. servo_pin_4.attach(4);
  42. _ABVAR_1_i = 0 ;
  43. pinMode(s0, OUTPUT);
  44. pinMode(s1, OUTPUT);
  45. pinMode(s2, OUTPUT);
  46. pinMode(s3, OUTPUT);
  47. pinMode(out, INPUT);
  48. pinMode(led, OUTPUT);
  49. digitalWrite(s0, HIGH);
  50. digitalWrite(s1, HIGH);
  51. }
  52. void loop()
  53. {
  54. if (( ( digitalRead(xun_ji3) && digitalRead(xun_ji1) ) && digitalRead(xun_ji2) ))
  55. {
  56. back();
  57. }
  58. else
  59. {
  60. if (( ( digitalRead(xun_ji3) && digitalRead(xun_ji2) ) && !( digitalRead(xun_ji1) ) ))
  61. {
  62. trunleft();
  63. }
  64. else
  65. {
  66. if (( ( digitalRead(xun_ji3) && digitalRead(xun_ji1) ) && !( digitalRead(xun_ji2) ) ))
  67. {
  68. forwoard();
  69. }
  70. else
  71. {
  72. if (( digitalRead(xun_ji3) && ( !( digitalRead(xun_ji2) ) && !( digitalRead(xun_ji1) ) ) ))
  73. {
  74. trunleft();
  75. }
  76. else
  77. {
  78. if (( !( digitalRead(xun_ji3) ) && ( digitalRead(xun_ji2) && digitalRead(xun_ji1) ) ))
  79. {
  80. trunright();
  81. }
  82. else
  83. {
  84. if (( ( !( digitalRead(xun_ji3) ) && !( digitalRead(xun_ji2) ) ) && digitalRead(xun_ji1) ))
  85. {
  86. trunright();
  87. }
  88. else
  89. {
  90. if (( ( !( digitalRead(xun_ji3) ) && !( digitalRead(xun_ji2) ) ) && !( digitalRead(xun_ji1) ) ))
  91. {
  92. _ABVAR_1_i = ( _ABVAR_1_i + 1 ) ;
  93. if (( ( _ABVAR_1_i ) == ( 1 ) ))
  94. {
  95. forwoard_rise();
  96. delay( 1500 );
  97. forwoard();
  98. delay( 5000 );
  99. }
  100. else
  101. {
  102. if (( ( _ABVAR_1_i ) == ( 2 ) ))
  103. {
  104. forwoard_rise();
  105. delay( 3000 );
  106. forwoard();
  107. delay( 500 );
  108. }
  109. else
  110. {
  111. if (( ( _ABVAR_1_i ) == ( 3 ) ))
  112. {
  113. stop();
  114. digitalWrite(led, HIGH);
  115. delay(500);
  116. color();
  117. digitalWrite(led, LOW);
  118. if (red < blue && red < green)
  119. {
  120. _ABVAR_2_a = 1;
  121. //LcdDisplay(" - (Red Color)");
  122. }
  123. else if (blue < red && blue < green)
  124. {
  125. _ABVAR_2_a = 2;
  126. // LcdDisplay(" - (Blue Color)");
  127. }
  128. else if (green < red && green < blue)
  129. {
  130. _ABVAR_2_a = 3;
  131. // LcdDisplay(" - (Green Color)");
  132. }
  133. while(((_ABVAR_2_a)!= (_ABVAR_3_b)))
  134. {
  135. pan_duan_yan_se();
  136. }
  137. duo_ji();
  138. }
  139. }
  140. }
  141. }
  142. }
  143. }
  144. }
  145. }
  146. }
  147. }
  148. }
  149. void trunright()
  150. {
  151. analogWrite(9 , 180);
  152. analogWrite(10 , 0);
  153. analogWrite(5 , 0);
  154. analogWrite(6 , 0);
  155. }
  156. void stop()
  157. {
  158. digitalWrite( 9 , LOW );
  159. digitalWrite( 10 , LOW );
  160. digitalWrite( 5 , LOW );
  161. digitalWrite( 6 , LOW );
  162. }
  163. void forwoard_drop()
  164. {
  165. analogWrite(9 , 80);
  166. analogWrite(10 , 0);
  167. analogWrite(5 , 80);
  168. analogWrite(6 , 0);
  169. }
  170. void duo_ji()
  171. {
  172. servo_pin_4.write( 90 );
  173. delay( 300 );
  174. servo_pin_4.write( 180 );
  175. delay( 600 );
  176. servo_pin_4.write( 90 );
  177. delay( 300 );
  178. }
  179. void trunleft()
  180. {
  181. analogWrite(9 , 0);
  182. analogWrite(10 , 0);
  183. analogWrite(5 , 180);
  184. analogWrite(6 , 0);
  185. }
  186. void forwoard()
  187. {
  188. analogWrite(9 , 180);
  189. analogWrite(10 , 0);
  190. analogWrite(5 , 180);
  191. analogWrite(6 , 0);
  192. }
  193. void back()
  194. {
  195. analogWrite(9 , 0);
  196. analogWrite(10 , 120);
  197. analogWrite(5 , 0);
  198. analogWrite(6 , 120);
  199. }
  200. void forwoard_rise()
  201. {
  202. analogWrite(9 , 255);
  203. analogWrite(10 , 0);
  204. analogWrite(5 , 255);
  205. analogWrite(6 , 0);
  206. }
  207. void color()
  208. {
  209. digitalWrite(s2, LOW);
  210. digitalWrite(s3, LOW);
  211. //count OUT, pRed, RED
  212. red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  213. digitalWrite(s3, HIGH);
  214. //count OUT, pBLUE, BLUE
  215. blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  216. digitalWrite(s2, HIGH);
  217. //count OUT, pGreen, GREEN
  218. green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
  219. }
  220. void pan_duan_yan_se()
  221. {
  222. forwoard();
  223. delay(600);
  224. stop();
  225. digitalWrite(led, HIGH);
  226. delay(500);
  227. color();
  228. digitalWrite(led, LOW);
  229. if (red < blue && red < green)
  230. {
  231. _ABVAR_3_b = 1;
  232. // LcdDisplay(" - (Red Color)");
  233. }
  234. else if (blue < red && blue < green)
  235. {
  236. _ABVAR_3_b = 2;
  237. // LcdDisplay(" - (Blue Color)");
  238. }
  239. else if (green < red && green < blue)
  240. {
  241. _ABVAR_3_b = 3;
  242. // LcdDisplay(" - (Green Color)");
  243. }
  244. }

TensorLayer3.0 是一款兼容多种深度学习框架为计算后端的深度学习库。计划兼容TensorFlow, Pytorch, MindSpore, Paddle.