{"id":51,"date":"2014-02-28T00:36:42","date_gmt":"2014-02-27T22:36:42","guid":{"rendered":"http:\/\/sebastian.fam-knopp.de\/?p=51"},"modified":"2018-06-01T00:15:02","modified_gmt":"2018-05-31T22:15:02","slug":"smartbot-ein-roboter-mit-android-und-linux","status":"publish","type":"post","link":"https:\/\/sebastian.knopp.it\/?p=51","title":{"rendered":"SmartBot &#8211; Ein Roboter mit Android und Linux"},"content":{"rendered":"<p>2013 kaufte sich ein Freund von mir einen Raspberry Pi, also einen Einplatinencomputer im Kreditkartenformat, der zwar sehr wenig Rechenleistung hat (1GHz Single-Core ARM), jedoch durch seine Kompaktheit und Sparsamkeit eine gute Option zum Beispiel als Heimserver ist, wenn man eine externe Festplatte anschlie\u00dft.<br \/>\nEine besondere Eigenschaft des Raspberry Pi ist, dass er sogenannte GPIO-Pins hat, also kleine Pins, die sich direkt \u00fcber das Betriebssystem ansteuern lassen, und die man zum Beispiel mit anderen Platinen verbinden kann um LEDs zu steuern oder eben halt einen ganzen Roboter.<\/p>\n<p>Der erste Versuch von ihm war es, einen fahrbaren Untersatz, auf dem eine Butterbrotdose mit dem Raspberry liegt, \u00fcber den Computer steuern zu k\u00f6nnen. Hier kann man das Resultat betrachten:<\/p>\n<p><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"\/\/www.youtube.com\/embed\/0y5AfLbYoWs\" allowfullscreen=\"allowfullscreen\" frameborder=\"0\"><\/iframe><\/p>\n<p>Der Raspberry Pi stellt hier einfach \u00fcber einen Webserver (lighttpd) die Seite mit den Kn\u00f6pfen und einem Webcambild bereit. Wenn ein Knopf gedr\u00fcckt wird, wird \u00fcber AJAX ein PHP-Skript ge\u00f6ffnet, welches auf dem entsprechenden GPIO-Pin Spannung gibt, sodass die angeschlossenen Motoren sich bewegen.<\/p>\n<p>Ich schloss mich ihm an und schrieb mithilfe der Library Pi4J einen Server in Java, welchen wir auf dem Raspberry Pi betrieben und damit das PHP-Skript ersetzten. Au\u00dferdem entwickelte ich eine passende grafische Javaanwendung mit Swing, welche die Buttons darstellte und sich zun\u00e4chst \u00fcber einen TCP-Socket mit dem Server per WLAN verband.<br \/>\nMein Freund k\u00fcmmerte sich um ein geeigneteres Fahrgestell und und l\u00f6tete eine Schaltung, welche \u00fcber Microcontroller und eigene Stromversorgung nun gr\u00f6\u00dfere Motoren ansteuern konnte. Beides zusammen sah dann so aus:<\/p>\n<p><iframe loading=\"lazy\" width=\"853\" height=\"480\" src=\"\/\/www.youtube.com\/embed\/vJV69kW2TUc?list=UU7qqXKTSchbYLh2J7jZu9Bw\" allowfullscreen=\"allowfullscreen\" frameborder=\"0\"><\/iframe><br \/>\nNun ist leicht zu erkennen, dass die Steuerung \u00fcber das Netbook nicht gerade einfach oder komfortabel ist. Schnell kam der Gedanke auf, man k\u00f6nnte das Ganze doch \u00fcber das Smartphone steuern. Da ich gerade die CoJoBo-App fertiggestellt hatte, war ich zumindest ansatzweise mit Smartphone-Apps vertraut und da Android-Apps mit Java entwickelt werden, fiel die Entscheidung zur Entwicklung einer entsprechenden Anwendung leicht.<br \/>\nLangfristig stellte sich heraus, dass ich mir f\u00fcr dieses Projekt sogar, trotz meinem Hang zu Windows Phone, ein Google Nexus-Ger\u00e4t zulegte.<br \/>\nBei der Entwicklung der App baute ich auf <a title=\"GitHub - IPGamepad\" href=\"https:\/\/github.com\/ericbarch\/IPGamepad\" target=\"_blank\" rel=\"noopener\">dieses GitHub-Projekt zur Steuerung von Robotern auf<\/a> und entwickelte es mit meinem Freund zusammen weiter. Idee war, dass der Roboter selbstst\u00e4ndig von A nach B navigiert, wenn man ihm auf einer Karte einen Punkt angibt.<br \/>\nWir beworben uns mit dem Projekt beim <a title=\"Jugend forscht - offizielle Website\" href=\"http:\/\/www3.uni-bonn.de\/studium\/junge-uni\/jugend-forscht\" target=\"_blank\" rel=\"noopener\">Wettbewerb &#8222;jugend forscht&#8220; der Universit\u00e4t Bonn<\/a>, f\u00fcr den wir eine vollst\u00e4ndige Dokumentation verfassten. (Download: <a href=\"http:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/SmartBot_Dokumentation.pdf\">SmartBot_Dokumentation<\/a>) Der Wettbewerb ist n\u00e4chste Woche Freitag und ich bin gespannt wie gut wir abschneiden werden.<br \/>\nGanz aktuell sind noch Abstandsmessger\u00e4te hinzugekommen, bei denen es momentan allerdings noch Probleme mit der Verbindung an den Raspberry Pi gibt.<br \/>\nDas Projekt ist also noch aktuell&#8230;<\/p>\n<p>Der Roboter und die App sehen inzwischen \u00fcbrigens so aus:<\/p>\n<p><a href=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/DSCF1878.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"57\" data-permalink=\"https:\/\/sebastian.knopp.it\/?attachment_id=57\" data-orig-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878.jpg\" data-orig-size=\"3264,2448\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;3.5&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;FinePix S5800 S800&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1389821381&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;6.3&quot;,&quot;iso&quot;:&quot;800&quot;,&quot;shutter_speed&quot;:&quot;0.05&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"DSCF1878\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878-300x225.jpg\" data-large-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878-1024x768.jpg\" class=\"alignnone size-medium wp-image-57\" src=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/DSCF1878-300x225.jpg\" alt=\"DSCF1878\" width=\"300\" height=\"225\" srcset=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878-300x225.jpg 300w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878-1024x768.jpg 1024w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878-624x467.jpg 624w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"58\" data-permalink=\"https:\/\/sebastian.knopp.it\/?attachment_id=58\" data-orig-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37.png\" data-orig-size=\"1280,720\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Screenshot_2014-01-08-20-53-37\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-300x168.png\" data-large-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-1024x576.png\" class=\"alignnone size-medium wp-image-58\" src=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-300x168.png\" alt=\"Screenshot_2014-01-08-20-53-37\" width=\"300\" height=\"168\" srcset=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-300x168.png 300w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-1024x576.png 1024w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37-624x351.png 624w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-53-37.png 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"59\" data-permalink=\"https:\/\/sebastian.knopp.it\/?attachment_id=59\" data-orig-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53.png\" data-orig-size=\"1280,720\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Screenshot_2014-01-08-20-56-53\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-300x168.png\" data-large-file=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-1024x576.png\" class=\"alignnone size-medium wp-image-59\" src=\"https:\/\/sebastian.fam-knopp.de\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-300x168.png\" alt=\"Screenshot_2014-01-08-20-56-53\" width=\"300\" height=\"168\" srcset=\"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-300x168.png 300w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-1024x576.png 1024w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53-624x351.png 624w, https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/Screenshot_2014-01-08-20-56-53.png 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>2013 kaufte sich ein Freund von mir einen Raspberry Pi, also einen Einplatinencomputer im Kreditkartenformat, der zwar sehr wenig Rechenleistung hat (1GHz Single-Core ARM), jedoch durch seine Kompaktheit und Sparsamkeit eine gute Option zum Beispiel als Heimserver ist, wenn man eine externe Festplatte anschlie\u00dft. Eine besondere Eigenschaft des Raspberry Pi ist, dass er sogenannte GPIO-Pins [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":57,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projekt"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/sebastian.knopp.it\/wp-content\/uploads\/2014\/02\/DSCF1878.jpg","jetpack_shortlink":"https:\/\/wp.me\/p4onxe-P","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=51"}],"version-history":[{"count":9,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":442,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/posts\/51\/revisions\/442"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=\/wp\/v2\/media\/57"}],"wp:attachment":[{"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sebastian.knopp.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}