{"id":33,"date":"2006-10-01T12:33:47","date_gmt":"2006-10-01T12:33:47","guid":{"rendered":"https:\/\/hostadm.lithium.selfhost.de\/?p=33"},"modified":"2020-09-09T20:09:57","modified_gmt":"2020-09-09T20:09:57","slug":"faller-ams-computeranbindung","status":"publish","type":"post","link":"https:\/\/martin-seewaldt.de\/?p=33","title":{"rendered":"Faller AMS-Computeranbindung"},"content":{"rendered":"<p><b><\/b><b>Gestelltes Problem<\/b><br \/>\nAls Kind hatte ich eine Autorennbahn der Firma Faller.<br \/>\n<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg\" \/><br \/>\nEigentlich ein Zwei-Personen-Spielzeug, aber leider wollte niemand ein zweites Mal gegen mich antreten. In Ermangelung eines menschlichen Gegners musste ich deshalb den zweiten Wagen immer mit auf einer mittleren Position arretierten &#8220;Gasgriff&#8221; fahren lassen. Es zeigte sich, dass ich diesen Wagen zwar leicht \u00fcberholen konnte, sich die Sache aber recht schnell drehte, wenn mein Auto aufgrund eines Fahrfehlers herausflog. Speziell wenn ich dadurch in R\u00fcckstand und Stress geriet, folgten dann oft weitere Fehler meinerseits.<br \/>\nWie dem auch sei, um 2000 rum holte ich das Ding aus dem Keller und baute es nach langer Zeit einmal wieder auf. Meinen Mangel an Sparringspartnern hatte die Zeit nicht heilen k\u00f6nnen.<br \/>\nVielleicht konnte da der Computer helfen, einen Gegner zu emulieren?<\/p>\n<p><b>Algorithmus<\/b><br \/>\nIn den 1980ern schwebte mir schon einmal eine automatische Fahrzeugsteuerung vor. Damals h\u00e4tte man jedoch jede einzelne Fahrbahnschiene um einen elektronischen Melder erg\u00e4nzen m\u00fcssen, um ermitteln zu k\u00f6nnen, wo sich der Wagen gerade befindet. Aber mittlerweile gabs ja Webcams. Damit musste es doch m\u00f6glich sein, herauszufinden wo sich der Renner gerade auf der Strecke befand. Der erste Ansatz war, den Streckenaufbau Schiene f\u00fcr Schiene am PC zu erfassen. Dann sollte jeder Schiene eine Maximalgeschwindigkeit zugeordnet werden. Ein Streckenmodellierprogramm das s\u00e4mtliche Faller-Schienen eingebaut bekam und Strecken grafisch darstellen konnte, hatte ich schon geschrieben. Wie jetzt das von der Webcam aufgenommene Bild dieser Strecke zugeordnet werden sollte, war mir noch zun\u00e4chst unklar. Sp\u00e4ter kam mir bei nochmaligem Nachdenken der Gedanke, dass man eigentlich drauf pfeifen kann, wie der Streckenaufbau ist. Aus der Sicht der Kamera beschreibt das Fahrzeug eine irgendwie geartete Schleife. Jedem Segment dieser Schleife muss eine Geschwindigkeit zugeordnet werden. Die Form dieser Schleife kann durch einigen Testrunden ermittelt werden. Bei diesen Testrunden f\u00e4hrt nur das vom Rechner zu steuernde Auto. Dadurch ist dem Programm bekannt, in welchem Bereich sich das Fahrzeug befinden kann. Diese Schleife wird in Segmente eingeteilt. In der n\u00e4chsten Phase, dem Training, wird die f\u00fcr jedes Schleifensegment maximal zul\u00e4ssige Geschwindigkeit ermittelt. Die Geschwindigkeit ist dann zu hoch, wenn der Wagen rausfliegt.<\/p>\n<p><b>Hardware<\/b><br \/>\nDamit der PC keinen Vorteil besitzt, musste auf jeden Fall der Standard-&#8220;Gasgriff&#8221; angesteuert werden. Deshalb erwarb ich ein \u00fcber USB ansteuerbares Experimentierboard mit zwei 0-5 Volt Analogausg\u00e4ngen.<br \/>\n<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/usbboard.jpg\" \/><\/p>\n<p>In meiner Naivit\u00e4t ging ich davon aus, dass man damit ein Servo, wie es aus dem RC-Bereich bekannt ist, ansteuern k\u00f6nne. Nun brauchen diese Servos aber ein PWM(Pulsweitenmodulation)-Signal. Deshalb musste ich noch einen Bausatz f\u00fcr einen &#8220;Servotester&#8221; ranflicken.<br \/>\n<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/st_baus.jpg\" \/><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/st_fertig.jpg\" \/><\/p>\n<p>Damit liess sich das Servo jetzt vom PC aus ansteuern. Der Winkel war nicht unbedingt proportional zum an die USB-Karte angelegten Wert, aber es w\u00fcrde reichen.<br \/>\nJetzt mussten Gasgriff und Servo zusammengebracht werden. Laubs\u00e4ge raus und eine entsprechende Halterung gebastelt.<br \/>\n<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/g4.jpg\" width=\"418\" \/><img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/g2.jpg\" width=\"418\" \/><\/p>\n<p>Damit war an Hardware alles N\u00f6tige verf\u00fcgbar.<\/p>\n<p><b>Software<\/b><br \/>\nZun\u00e4chst f\u00fcr jeden Teil erst einmal Prototypen erstellt. Das \u00dcbertragen der jeweils gew\u00fcnschten Servostellung an die USB-Karte, das Einlesen der Bilder von der Webcam. Die einzelnen Komponenten kommunizieren dabei \u00fcber Sockets miteinander. Es stellte sich dabei heraus, dass die Bilder von der Webcam mit einer Verz\u00f6gerung von ungef\u00e4hr einer halben Sekunde eintrafen. Das ist ein Problem, welches man sich sehr gut f\u00fcr sp\u00e4ter aufbewahren kann.<\/p>\n<p>Hier ein Screenshot des Prototypen f\u00fcr den Zugriff auf die Webcam und die Bewegungserkennung:\u00a0<img decoding=\"async\" src=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Prototyp1.gif\" \/><\/p>\n<p>Wieder einmal zeigte sich, dass die grobe Vorstellung eines Algorithmus noch kein fertiges Programm ergibt. Und wieder einmal musste ich mich jedes kleinen Problemchens annehmen (Alter: 39, gel\u00f6ste EDV-Probleme: 18.250, gef\u00fchlt: 3 Milliarden). Bezeichnenderweise waren die Erkennung der Fahrzeugposition und auch die Beschr\u00e4nkung der Bewegungserkennung auf die Fahrzeugspur ein Klacks. Schwer getan habe ich mich dann aber mit dem Aufbau der Sektorenliste. Wie sollten die \u00fcber mehrere Runden gesammelten X,Y-Positionen zu einer gerichteten Liste konsolidiert werden? Was ist mit Fahrbahnkreuzungen? Viel Gefummel, aber irgendwann ging auch das.<br \/>\nAls N\u00e4chstes war die Erkennung zu langsam, d.h. die eingehenden Frames konnten nicht in Echtzeit verarbeitet werden.<br \/>\nDa bin ich noch bei.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestelltes Problem Als Kind hatte ich eine Autorennbahn der Firma Faller. Eigentlich ein Zwei-Personen-Spielzeug, aber leider wollte niemand ein zweites Mal gegen mich antreten. In Ermangelung eines menschlichen Gegners musste ich deshalb den zweiten Wagen immer mit auf einer mittleren Position arretierten &#8220;Gasgriff&#8221; fahren lassen. Es zeigte sich, dass ich diesen Wagen zwar leicht \u00fcberholen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3],"tags":[],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-programme_apps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Faller AMS-Computeranbindung - Martin Seewaldt<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/martin-seewaldt.de\/?p=33\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Faller AMS-Computeranbindung - Martin Seewaldt\" \/>\n<meta property=\"og:description\" content=\"Gestelltes Problem Als Kind hatte ich eine Autorennbahn der Firma Faller. Eigentlich ein Zwei-Personen-Spielzeug, aber leider wollte niemand ein zweites Mal gegen mich antreten. In Ermangelung eines menschlichen Gegners musste ich deshalb den zweiten Wagen immer mit auf einer mittleren Position arretierten &#8220;Gasgriff&#8221; fahren lassen. Es zeigte sich, dass ich diesen Wagen zwar leicht \u00fcberholen [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martin-seewaldt.de\/?p=33\" \/>\n<meta property=\"og:site_name\" content=\"Martin Seewaldt\" \/>\n<meta property=\"article:published_time\" content=\"2006-10-01T12:33:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-09T20:09:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\"},\"headline\":\"Faller AMS-Computeranbindung\",\"datePublished\":\"2006-10-01T12:33:47+00:00\",\"dateModified\":\"2020-09-09T20:09:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33\"},\"wordCount\":683,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/Faller\\\/Faller.jpg\",\"articleSection\":[\"Programme\\\/Apps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33\",\"name\":\"Faller AMS-Computeranbindung - Martin Seewaldt\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/Faller\\\/Faller.jpg\",\"datePublished\":\"2006-10-01T12:33:47+00:00\",\"dateModified\":\"2020-09-09T20:09:57+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#primaryimage\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/Faller\\\/Faller.jpg\",\"contentUrl\":\"https:\\\/\\\/martin-seewaldt.de\\\/Programme\\\/Faller\\\/Faller.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/?p=33#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/martin-seewaldt.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Faller AMS-Computeranbindung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#website\",\"url\":\"https:\\\/\\\/martin-seewaldt.de\\\/\",\"name\":\"Martin Seewaldt\",\"description\":\"Einige meiner Projekte\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/martin-seewaldt.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/martin-seewaldt.de\\\/#\\\/schema\\\/person\\\/a1a6571321f54991629bb99be16f5e5f\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Faller AMS-Computeranbindung - Martin Seewaldt","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/martin-seewaldt.de\/?p=33","og_locale":"en_US","og_type":"article","og_title":"Faller AMS-Computeranbindung - Martin Seewaldt","og_description":"Gestelltes Problem Als Kind hatte ich eine Autorennbahn der Firma Faller. Eigentlich ein Zwei-Personen-Spielzeug, aber leider wollte niemand ein zweites Mal gegen mich antreten. In Ermangelung eines menschlichen Gegners musste ich deshalb den zweiten Wagen immer mit auf einer mittleren Position arretierten &#8220;Gasgriff&#8221; fahren lassen. Es zeigte sich, dass ich diesen Wagen zwar leicht \u00fcberholen [&hellip;]","og_url":"https:\/\/martin-seewaldt.de\/?p=33","og_site_name":"Martin Seewaldt","article_published_time":"2006-10-01T12:33:47+00:00","article_modified_time":"2020-09-09T20:09:57+00:00","og_image":[{"url":"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/martin-seewaldt.de\/?p=33#article","isPartOf":{"@id":"https:\/\/martin-seewaldt.de\/?p=33"},"author":{"name":"admin","@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f"},"headline":"Faller AMS-Computeranbindung","datePublished":"2006-10-01T12:33:47+00:00","dateModified":"2020-09-09T20:09:57+00:00","mainEntityOfPage":{"@id":"https:\/\/martin-seewaldt.de\/?p=33"},"wordCount":683,"commentCount":2,"image":{"@id":"https:\/\/martin-seewaldt.de\/?p=33#primaryimage"},"thumbnailUrl":"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg","articleSection":["Programme\/Apps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/martin-seewaldt.de\/?p=33#respond"]}]},{"@type":"WebPage","@id":"https:\/\/martin-seewaldt.de\/?p=33","url":"https:\/\/martin-seewaldt.de\/?p=33","name":"Faller AMS-Computeranbindung - Martin Seewaldt","isPartOf":{"@id":"https:\/\/martin-seewaldt.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/martin-seewaldt.de\/?p=33#primaryimage"},"image":{"@id":"https:\/\/martin-seewaldt.de\/?p=33#primaryimage"},"thumbnailUrl":"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg","datePublished":"2006-10-01T12:33:47+00:00","dateModified":"2020-09-09T20:09:57+00:00","author":{"@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f"},"breadcrumb":{"@id":"https:\/\/martin-seewaldt.de\/?p=33#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martin-seewaldt.de\/?p=33"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/martin-seewaldt.de\/?p=33#primaryimage","url":"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg","contentUrl":"https:\/\/martin-seewaldt.de\/Programme\/Faller\/Faller.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/martin-seewaldt.de\/?p=33#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/martin-seewaldt.de\/"},{"@type":"ListItem","position":2,"name":"Faller AMS-Computeranbindung"}]},{"@type":"WebSite","@id":"https:\/\/martin-seewaldt.de\/#website","url":"https:\/\/martin-seewaldt.de\/","name":"Martin Seewaldt","description":"Einige meiner Projekte","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/martin-seewaldt.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/martin-seewaldt.de\/#\/schema\/person\/a1a6571321f54991629bb99be16f5e5f","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c382657803c93429dee7a228c33968728e6adc9a850a0b0488abd4e9c466179?s=96&d=mm&r=g","caption":"admin"}}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33"}],"version-history":[{"count":4,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions"}],"predecessor-version":[{"id":515,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions\/515"}],"wp:attachment":[{"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martin-seewaldt.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}