{"id":1487,"date":"2018-04-11T18:53:20","date_gmt":"2018-04-11T16:53:20","guid":{"rendered":"http:\/\/projektkurs.ffgleo.de\/?page_id=1487"},"modified":"2018-06-12T15:05:04","modified_gmt":"2018-06-12T13:05:04","slug":"staubsaugerroboter","status":"publish","type":"page","link":"https:\/\/projektkurs.ffgleo.de\/index.php\/2018-2\/informatik-2018\/staubsaugerroboter\/","title":{"rendered":"Staubsaugerroboter"},"content":{"rendered":"<h3 style=\"text-align: center\">Wir bauen einen Staubsaugerroboter<\/h3>\n<p>Wir sind drei M\u00e4dels aus dem Projektkurs Mathe\/Informatik und interessieren uns f\u00fcr die Elektrotechnik. Vorerst werden wir einen einfachen Roboter bauen, den wir sp\u00e4ter zu einem Staubsaugerroboter umbauen.<\/p>\n<h5>Einkaufsliste<\/h5>\n<ul>\n<li>Chassis, 3 R\u00e4der, 2 Getriebemotoren, Bateriehalterung, Drehzahlgeber: <a href=\"https:\/\/www.amazon.de\/YIKESHU-Roboter-Chassis-Encoder-Arduino\/dp\/B072ZWRM2B\/ref=pd_bxgy_107_img_2?_encoding=UTF8&amp;refRID=M4AJHFS24RF2FV58SJFH&amp;th=1&lt;\/li&gt; &lt;p&gt;\">https:\/\/www.amazon.de\/YIKESHU-Roboter-Chassis-Encoder-Arduino\/dp\/B072ZWRM2B\/ref=pd_bxgy_107_img_2?_encoding=UTF8&amp;refRID=M4AJHFS24RF2FV58SJFH&amp;th=1<\/a><\/li>\n<li>L298N Motortreiber Modul: <a href=\"https:\/\/www.amazon.de\/Neuftech-H-Br%C3%BCcke-Motortreiber-Schrittmotor-Controller\/dp\/B01KBTNHS6\/ref=pd_bxgy_21_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=KK7YG74BA6AS22NPY7BR&lt;\/li&gt; &lt;p&gt;\">https:\/\/www.amazon.de\/Neuftech-H-Br%C3%BCcke-Motortreiber-Schrittmotor-Controller\/dp\/B01KBTNHS6\/ref=pd_bxgy_21_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=KK7YG74BA6AS22NPY7BR<\/a><\/li>\n<li>Ultraschallmodul: <a href=\"https:\/\/www.amazon.de\/Aukru-Ultraschall-HC-SR04-Distance-Raspberry\/dp\/B00R2U8HK6\/ref=pd_bxgy_107_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=TM4HM02WKAXHYYW0X4V6\">https:\/\/www.amazon.de\/Aukru-Ultraschall-HC-SR04-Distance-Raspberry\/dp\/B00R2U8HK6\/ref=pd_bxgy_107_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=TM4HM02WKAXHYYW0X4V6<\/a><\/li>\n<li>Arduino Mini Nano V 3.0: <a href=\"https:\/\/www.amazon.de\/IZOKEE-ATmega328P-Entwicklerboard-USB-Kabel-Verl%C3%B6tet\/dp\/B072XS9ZTX\/ref=sr_1_3?ie=UTF8&amp;qid=1519738471&amp;sr=8-3&amp;keywords=arduino+nano&amp;dpID=61KbvpFxKTL&amp;preST=_SY300_QL70_&amp;dpSrc=srch\">https:\/\/www.amazon.de\/IZOKEE-ATmega328P-Entwicklerboard-USB-Kabel-Verl%C3%B6tet\/dp\/B072XS9ZTX\/ref=sr_1_3?ie=UTF8&amp;qid=1519738471&amp;sr=8-3&amp;keywords=arduino+nano&amp;dpID=61KbvpFxKTL&amp;preST=_SY300_QL70_&amp;dpSrc=srch<\/a><\/li>\n<\/ul>\n<h5>Vorbereitungen:<\/h5>\n<p>Heute haben wir unsere Eink\u00e4ufe begutachtet und angefangen den Roboter zusammen zu bauen.<\/p>\n<p>Als erstes haben wir die Motoren auf das Chassis geschraubt (die Anleitung liegt dabei). Danach die R\u00e4der angeschraubt. Hier f\u00fcr haben wir einen Schlitzschraubendreher benutzt. Als letztes haben wir das Batteriefach und den Mortortreiber angebracht.<\/p>\n<p>Um den Arduino zu verstehen, haben wir uns ein paar Tutorials angeguckt und Beispielprogrammierungen ausprobiert. Daf\u00fcr brauchst du die Arduino Software und einen speziellen Treiber: CH340G<\/p>\n<p>N\u00e4chster Tag:<\/p>\n<p>Heute haben wir versucht den Arduino mit dem Motor mit dem Arduino Standartprogramm zu programmieren.<\/p>\n<p>Leider haben wir es nicht fertig bekommen, sodass wir n\u00e4chste Woche weiter machen m\u00fcssen.<\/p>\n<p>N\u00e4chster Tag:<\/p>\n<p>Heute haben wir uns nochmal nur um den Arduino gek\u00fcmmert und Grunds\u00e4tze programiert. Zu erst haben eine blaue LED und den Arduino auf ein Breadboard gesteckt und mit Kabeln so verbunden, dass sie leuchten kann.<\/p>\n<p>Dazu hatten wir einen 180 \u03a9 Widerstand f\u00fcr eine LED, die eine Spannung von 3-4 V ben\u00f6tigt.<\/p>\n<p>Quelltext:<\/p>\n<pre>\/\/ Das Setup\r\n\r\nvoid setup() {\r\n  pinMode(3, OUTPUT); \/\/ Den digitalen Pin 3 (D3) als Ausgang deklarieren.\r\n}\r\n\r\n\/\/ Die Haupt-Schleife (Main-Loop)\r\nvoid loop() {\r\n  digitalWrite(3, HIGH); \/\/ Den Ausgang D3 HIGH setzen.\r\n  delay(1000); \/\/ 1 Sekunde warten.\r\n  digitalWrite(3, LOW); \/\/ Den Ausgang D3 LOW setzen.\r\n  delay(1000); \/\/ 1 Sekunde warten.\r\n}<\/pre>\n<h6><\/h6>\n<h3 style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1519 alignleft\" src=\"http:\/\/woestside.de\/wp\/wp-content\/uploads\/2018\/04\/JVUF5009-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" \/><\/h3>\n<p>Danach haben wir eine zweite LED mit dem<\/p>\n<p>selben Widerstand hinzugef\u00fcgt und einen Taster mit 100k \u03a9 Widerstand.<\/p>\n<p>Quelltext:<\/p>\n<pre>const int in_button1 = 7; \/\/ An den Pin D7 ist der Taster angeschlossen.\r\nconst int out_LED1 = 3; \/\/ Die LED ist am Pin D3 angeschlossen.\r\n\r\nconst int in_button2 = 8; \/\/ Der neue Taster ist an Pin D8 angeschlossen.\r\nconst int out_LED2 = 5; \/\/ Die zweite LED ist immernoch am Pin D5 angeschlossen.\r\n\r\nint i_buttonState1 = 0; \/\/ In dieser Variablen speichern wir den Status des Eingangs.\r\nint i_buttonState2 = 0; \/\/ Nat\u00fcrlich wollen wir auch den Status des zweiten Tasters speichern.\r\n\r\nvoid setup(){\r\n  pinMode(in_button1, INPUT); \/\/ Der Pin des ersten Tasters wird als Eingang initialisiert.\r\n  pinMode(out_LED1, OUTPUT); \/\/ Der Pin der ersten LED wird als Ausgang initialisiert.\r\n\r\n  pinMode(in_button2, INPUT); \/\/ Dasselbe machen wir mit dem zweiten Eingang\r\n  pinMode(out_LED2, OUTPUT); \/\/ und mit der zweiten LED.\r\n}\r\n\r\nvoid loop(){\r\n  \/\/ Wir lesen den Status des Taster-Eingangs aus und speichern den Wert in der Variablen\r\n  i_buttonState1 = digitalRead(in_button1);\r\n\r\n  if (i_buttonState1 == HIGH) { \/\/ Ist der Taster gedr\u00fcckt,\r\n    digitalWrite(out_LED1, HIGH); \/\/ dann schalte die LED an.\r\n  }\r\n  else { \/\/ Ansonsten\r\n    digitalWrite(out_LED1, LOW); \/\/ schalte die LED wieder aus.\r\n  }\r\n<\/pre>\n<pre>i_buttonState2 = digitalRead(in_button2);\r\n\r\nif (i_buttonState2 == HIGH) { \/\/ Ist der zweite Taster NICHT gedr\u00fcckt,\r\n  digitalWrite(out_LED2, HIGH); \/\/ dann schalte die LED an.\r\n}\r\nelse { \/\/ Ansonsten\r\n  digitalWrite(out_LED2, LOW); \/\/ schalte die LED aus.\r\n}\r\n  delay(50); \/\/ Wir wollen ja nicht hetzen und warten 50ms.\r\n}<\/pre>\n<h6><\/h6>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1517 size-medium alignleft\" src=\"http:\/\/woestside.de\/wp\/wp-content\/uploads\/2018\/04\/IMG_4066-e1523366548603-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/h3>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>N\u00e4chster tag:<\/p>\n<p>heute haben wir zwei Motoren an den Arduino angeschlossen, wobei uns der arduino durchgebrannt ist.<\/p>\n<p>N\u00e4chster Tag:<\/p>\n<p>heute haben wir die zwei Motoren nochmal angeschlossen und verbunden. wir haben die schaltung ein bischen ge\u00e4ndert und eine andere Programierung benutzt. Danach hat sich einer der Motoren in regelm\u00e4\u00dfigen Abst\u00e4nden gedreht.<\/p>\n<p>F\u00fcr die Programierung haben wir diesen Quelltext verwendet:<\/p>\n<pre>\/\/ connect motor controller pins to Arduino digital pins\r\n\/\/ motor one\r\nint enA = 10;\r\nint in1 = 9;\r\nint in2 = 8;\r\n\/\/ motor two\r\nint enB = 5;\r\nint in3 = 7;\r\nint in4 = 6;\r\nvoid setup()\r\n{\r\n\/\/ set all the motor control pins to outputs\r\npinMode(enA, OUTPUT);\r\npinMode(enB, OUTPUT);\r\npinMode(in1, OUTPUT);\r\npinMode(in2, OUTPUT);\r\npinMode(in3, OUTPUT);\r\npinMode(in4, OUTPUT);\r\n}\r\nvoid demoOne()\r\n{\r\n\/\/ this function will run the motors in both directions at a fixed speed\r\n\/\/ turn on motor A\r\ndigitalWrite(in1, HIGH);\r\ndigitalWrite(in2, LOW);\r\n\/\/ set speed to 200 out of possible range 0~255\r\nanalogWrite(enA, 200);\r\n\/\/ turn on motor B\r\ndigitalWrite(in3, HIGH);\r\ndigitalWrite(in4, LOW);\r\n\/\/ set speed to 200 out of possible range 0~255\r\nanalogWrite(enB, 200);\r\ndelay(2000);\r\n\/\/ now change motor directions\r\ndigitalWrite(in1, LOW);\r\ndigitalWrite(in2, HIGH);\r\ndigitalWrite(in3, LOW);\r\ndigitalWrite(in4, HIGH);\r\ndelay(2000);\r\n\/\/ now turn off motors\r\ndigitalWrite(in1, LOW);\r\ndigitalWrite(in2, LOW);\r\ndigitalWrite(in3, LOW);\r\ndigitalWrite(in4, LOW);\r\n}\r\nvoid demoTwo()\r\n{\r\n\/\/ this function will run the motors across the range of possible speeds\r\n\/\/ note that maximum speed is determined by the motor itself and the operating voltage\r\n\/\/ the PWM values sent by analogWrite() are fractions of the maximum speed possible\r\n\/\/ by your hardware\r\n\/\/ turn on motors\r\ndigitalWrite(in1, LOW);\r\ndigitalWrite(in2, HIGH);\r\ndigitalWrite(in3, LOW);\r\ndigitalWrite(in4, HIGH);\r\n\/\/ accelerate from zero to maximum speed\r\nfor (int i = 0; i &lt; 256; i++)\r\n{\r\nanalogWrite(enA, i);\r\nanalogWrite(enB, i);\r\ndelay(20);\r\n}\r\n\/\/ decelerate from maximum speed to zero\r\nfor (int i = 255; i &gt;= 0; --i)\r\n{\r\nanalogWrite(enA, i);\r\nanalogWrite(enB, i);\r\ndelay(20);\r\n}\r\n\/\/ now turn off motors\r\ndigitalWrite(in1, LOW);\r\ndigitalWrite(in2, LOW);\r\ndigitalWrite(in3, LOW);\r\ndigitalWrite(in4, LOW);\r\n}\r\nvoid loop()\r\n{\r\ndemoOne();\r\ndelay(1000);\r\ndemoTwo();\r\ndelay(1000);\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Wir bauen einen Staubsaugerroboter Wir sind drei M\u00e4dels aus dem Projektkurs Mathe\/Informatik und interessieren uns f\u00fcr die Elektrotechnik. Vorerst werden wir einen einfachen Roboter bauen, den wir sp\u00e4ter zu einem Staubsaugerroboter umbauen. Einkaufsliste Chassis, 3 R\u00e4der, 2 Getriebemotoren, Bateriehalterung, Drehzahlgeber: https:\/\/www.amazon.de\/YIKESHU-Roboter-Chassis-Encoder-Arduino\/dp\/B072ZWRM2B\/ref=pd_bxgy_107_img_2?_encoding=UTF8&amp;refRID=M4AJHFS24RF2FV58SJFH&amp;th=1 L298N Motortreiber Modul: https:\/\/www.amazon.de\/Neuftech-H-Br%C3%BCcke-Motortreiber-Schrittmotor-Controller\/dp\/B01KBTNHS6\/ref=pd_bxgy_21_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=KK7YG74BA6AS22NPY7BR Ultraschallmodul: https:\/\/www.amazon.de\/Aukru-Ultraschall-HC-SR04-Distance-Raspberry\/dp\/B00R2U8HK6\/ref=pd_bxgy_107_img_3?_encoding=UTF8&amp;psc=1&amp;refRID=TM4HM02WKAXHYYW0X4V6 Arduino Mini Nano &hellip;<\/p>\n","protected":false},"author":25,"featured_media":0,"parent":1489,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1487","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/pages\/1487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/comments?post=1487"}],"version-history":[{"count":5,"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/pages\/1487\/revisions"}],"predecessor-version":[{"id":1584,"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/pages\/1487\/revisions\/1584"}],"up":[{"embeddable":true,"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/pages\/1489"}],"wp:attachment":[{"href":"https:\/\/projektkurs.ffgleo.de\/index.php\/wp-json\/wp\/v2\/media?parent=1487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}