PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC-Car über PC steuern



Marsupilami
12.08.2005, 14:29
Hallo erstmal!
Ich bin neu hier, drum stell ich mich kurz vor.
Ich heiße Tobias, bin 16 Jahre alt und komme jetzt dann in die 3. Klasse HTL, Fachzwei industrielle Elektronik!
Mein größtes Hobby ist der RC-Modellbau und in Sachen Elektronik bin ich auch sehr interessiert!

Nun zu meinem vorhaben:
Ich möchte mein Ferngesteuertes Auto über den PC fersteuern! Dabei nehme ich ne normale Fernsteuerung und anstatt der 2 Potentiometer baue ich schlicht digitale Potis ein!
Mir wurde geraten das ganze über einen IO Warrior zu machen, wenns dafür aber spezielle µC gibt die billiger sind wäre mir das auch recht!

Programmieren dachte ich an C++, da ich das am besten kann, Delphi wäre auch noch eine Möglichkeit!
Wenns nicht viel kompliierter wird, möchte ich es per USB machen!

Kann mir vielleicht wer einen Link geben wo schonmal wer sowas gemacht hat, damit ich mich erkundigen kann, und kann mir evtl. auch wer bei dem ganzen helfen, ich glaub kaum das ich das alleine schaffe (Entwicklung und programmierung)

Naja, besten Dank schonmal :)

Tobi

Marsupilami
12.08.2005, 21:10
ich wäre auch dankbar, wenn mir jemand einen passenden Link geben würde!
ich bräuchte:
den Source, der beim Druck auf eine Taste 1x den auf I setzt!
und den Schaltplan für das Poti und evtl. Driver oder was man noch braucht!

Danke, im Internet finde ich sehr viele Themen wo das gleiche jemand fragt, aber niemand kriegt eine Lösung dafür :(

Tobi

Psiyou
12.08.2005, 21:47
Hi,
schau Dich zu den Themen mal nach
Paralellport unter WinXX an, oder womit Du das auch immer machen willst.
Bzw, vorher ins Datenblatt zu den digitaken Poties (wie werden die gestellt...)
Und dann kanst die Schnittstelle auswählen, bzw das Porg schreiben.

christian Perazzini
02.09.2005, 14:11
Hallo,
Ich interessiere mich auch fuer Fernsteurung durch PC zusammen mit Uebertragung von Video Signalen auf dem LCD-Bild.
Ich baue ferngesteuerte Kettenfahrzeuge, und ein Laptop waere super um sie zu fahren.
Ich habe ein Paar Berichte davon gefunden, leider sind auf Italienisch und manche auf Englisch, auf jedem Fall kann ich versuchen es zu uebersetzen.
Bist Du zum Englisch/Italienisch bewohnt.
Bis bald
Christian

Mars zu faul zum login :)
02.09.2005, 18:34
englisch geht ein wenig, bin zwar kein Profi was das Englische Fachchienesisch ange´ht, aber bitte gib mir mal die Berichte!

Italienisch kann ich nicht mal "ein großes Bier, bitte" :-#

03.09.2005, 12:08
@Marsupilami

Meine Hobbis sind Programieren und Modellbau.
Ich habe 2 ferngesteuerte Modellautos mit 3,5ccm Dieselmotoren.
Einen Buggy und einen 25 Jahre alten Flachbahner.
Der Flachbahner gehört eigentlich meinem Bruder und mir. Ein echt irres Geschoß das laut PKW-Tacho 115Km/h läuft ;o)

Also Marsupilami, Welchen Typ von Modellauto willst du steuern?

Wenn es das Auto ist dass du in der Signatur hast wird es etwas kitzlig.
(Ich vermute mal dass es auch ein 1:8 Buggy mit 3,5ccm Motor ist.)

Bei solchen Autos hast du das Problem dass sie gans schön hurtig laufen.

Da kommt zur Zeaktionszeit des Menschen noch die Reaktionszeit des Computers dazu.

Da die weit verbreiteten Betriebssysteme Wie Windows, Linux,... nicht echtzeitfähig sind, kann es sein dass das Auto erst irgendwann reagiert oder wenn sich der Rechner aufhängt GAR NICHT !!!

Da würde ich umbedingt DOS als Betriebssystem empfehlen!!
Dieses Betriebssystem kommt einem Echtzeitbetriebssystem am nähesten.

Du kannst entweder eine Win95/98 Startdiskette oder ein echtes Dos verewenden.

Ich kann dir Beispiele zur Tastenerkennung und Portzugriff(Gameport,LPT,...) für Turbo Paskal unter Dos geben.
(Turbo Paskal 7 ist in der Französischen Version Freeware.)

Wenn du es trotzdem riskieren willst und dein Auto mit einem Programm unter Windows steuern willst kann ich dir Beispiele zum Auswerten beliebiger Josticks, der Tastendrücke und des LPT's unter Windows 98/2000/XP geben.
Diese Beispiele sind für Visual Studio.Net.

Schau mal in den Bereich PC,Laptop,.... Da haben mein Bruder und ich (unter meinem Namen) schon ein paar Beispiele zum Ansteuern des LPT's reingegeben.)

USB ist etwas kompliziert zum Ansteuern.

Wenn es jermanden interresiert, mein Bruder erstellt gerade eine Homepage, auf der er zeigt wie man eine Schutzbeschaltung für den LPT baut und wie man den LPT unter Win 98/200/XP ansteuert.

Weiters hat er Beispielprogramme die zeigen, wie man das Kammerabild von allen instalierten Kameras anzeigt.
(Es funktionieren USB-Webkams und Kameras über TV-Karte, sowie Firewire.)

Bastlwastl
03.09.2005, 12:12
Der Gast war übrigens ich.
(Hatte vergessen mich anzumelden)

06.09.2005, 05:13
@Marsupilami
Da die weit verbreiteten Betriebssysteme Wie Windows, Linux,... nicht echtzeitfähig sind, kann es sein dass das Auto erst irgendwann reagiert oder wenn sich der Rechner aufhängt GAR NICHT !!!




Sowohl für Windows als auch Linux Echtzeitkernel, die das sehr wohl können!
Windows kostet, Linux ist gratis, z.B.:
http://www.rtai.org/

Bastlwastl
06.09.2005, 19:12
Ich würd mich trotzdem nicht auf solche Kernel verlassen und Dos verwenden.

Da kommt man außerdem einfacher an die Port-Register ran.
Außerdem hat der PC weit mehr Rechnerleistung für das abzuarbeitende Programm übrig.

mfg Bastlwastl

07.09.2005, 05:00
Ich würd mich trotzdem nicht auf solche Kernel verlassen und Dos verwenden.

Tja, wieso das denn? Die Kernel sind garantiert echtzeitfähig. Exakt dafür wurden sie gemacht. Und werden im industriellen Umfeld auch erfolgreich genutzt.




Da kommt man außerdem einfacher an die Port-Register ran.
Außerdem hat der PC weit mehr Rechnerleistung für das abzuarbeitende Programm übrig.


Das ist ein Trugschluß. Ein Echtzeitlinux kann man auch wie Dos nutzen und Singletasking machen oder aber man nutzt das richtig und verbrät dann nicht - wie unter Dos üblich - die Zeit in Warteschleifen.
Das ist ja gerade der Vorteil eines Echtzeitsystems: Die automatische Aufteilung der Rechenzeit.

Und ist:

#include <stdio.h>
#include <sys/io.h>

int main(int argc, char **argv)
{
int addr = 0x378;

if(ioperm(addr, 3, 1) == -1) {
perror("ioperm");
exit(1);
}
printf("0x%02x\n", inb(addr + 1));
}

wirklich so schwer?

Bastlwastl
08.09.2005, 19:12
Im Bezug Linux kann ich nichts sagen.

Aber WinXP ist ein Resourcenfresser wie ich es noch nie gesehen habe.

Die gleiche Berechnung mit dem gleichen Programm ist auf einem 1GHz Rechner mit 256MB Ram mit Windows 2000 um 10Sekunden schneller als auf einem 3GHz Rechner mit 512MB Ram und WinXP.

Wenn der 1GHz Rechner mit Dos läuft ist er sogar um 25 Sekunden schneller.

Es sind zwar auf keinem Rechner Echtzeitkernel installiert, aber das wird höchstwarscheinlich auch nicht viel an den benötigten Resourcen ändern.

Beim Portzugriff bin ich von W2K bzw. WinXP ausgegangen, da die Kiddis heutzutage fast nichts anderes verwenden.

mfg Bastlwastl

08.09.2005, 22:06
Im Bezug Linux kann ich nichts sagen.

Aber WinXP ist ein Resourcenfresser wie ich es noch nie gesehen habe.

Die gleiche Berechnung mit dem gleichen Programm ist auf einem 1GHz Rechner mit 256MB Ram mit Windows 2000 um 10Sekunden schneller als auf einem 3GHz Rechner mit 512MB Ram und WinXP.


Das ist natürlich so auch nicht richtig. Etliche API-Funktionen hat Microsoft verbessert, auch das MemoryManagement und den Scheduler.
Deshalb ist das durchaus vom Programm abhängig, ob das nun schneller oder langsamer läuft.




Wenn der 1GHz Rechner mit Dos läuft ist er sogar um 25 Sekunden schneller.


Das ist logisch, da das ohne GUI läuft.




Es sind zwar auf keinem Rechner Echtzeitkernel installiert, aber das wird höchstwarscheinlich auch nicht viel an den benötigten Resourcen ändern.


Dadurch, daß man der GUI die niedrigste Priorität läßt, läuft der Rest des Programms natürlich mit viel höherer Geschwindigkeit als unter "normalem" XP.




Beim Portzugriff bin ich von W2K bzw. WinXP ausgegangen, da die Kiddis heutzutage fast nichts anderes verwenden.


Ich weiß zwar nicht, wer Kiddies sind, aber so wie sich das anhört, verwenden die sicherlich auch kein Win2K.
Dazu gibt es mittlerweile eine Reihe kostenloser XP-Treiber für den direkten Zugriff auf IO-Adressen, so daß das auch nicht komplizierter als unter Linux ist.

Marsupilami
12.09.2005, 11:30
Da will man das schon in die "wird nix mehr" Schublade schieben, und dann kommen auf einmal 10mails in 4 Wochen wegen dem Thema.

Naja, ich bin noch keinen Schritt weiter, ich hab ja auch noch was anderes zu tun :(

Desweiteren hab ich mir einen Japan Transistor zerschossen, der erst aus China (oder wars japan) kommt.
(Danke an die Firma die den mal Vertrieben hat! Das Teil gibts in Europa nimmer, aber die Firma hat sich bereit erklärt mir 3 Musterstücke zu hohlen \:D/ )

Naja, dann kommt noch das Problem mit DOS.
und zwar hab ich keine Ahnung von Dos! :(

Ja, es ist der Buggy mit 3,5ccm, die Reaktionszeiten wären nicht so schlimm, da ich es sowieso nur auf der Strasse und nicht im Gelände benutzen werde! (und größer als ein paar 10tel Sekunden ist die hoffentlich nicht 8-[ )

@bastlwastl: ich werd mir das mal anschauen, ihr habt das interesse an dem Projekt wieder in mir geweckt :D

Tobi

achja, selbstverständlich würd ich sämtliche Schaltungen und Codes Open Source bereitstellen, nicht das jemand glaubt, er hilft mir jetzt, und dann bleibt das ganze Projkt mein Geheimnis´ [-X

tux1
12.09.2005, 12:31
Echtzeitfähigkeit eines OS

Für Linux gibt es zweifellos sehr interessante Echtzeiterweiterungen, die allerdings nicht so einfach zu verwenden sind wie eine moderne Standarddistribution (für Anfänger recht schwierig)! Wenn du allerdings lediglich ein RC-Car steuern willst, benötigst du ja fast keine Bandbreite, wenn außerdem die besagte Anwendung als einziger "Anwendungsprozess" läuft, wirst du auch mit einer Standarddistribution niemals Probleme bekommen. Wie „Echtzeitfähig“ ein System sind muss hängt von der Dynamik des zu steuernden Prozesses ab, wirkliche Echtzeitfähigkeit (ist natürlich sehr theoretisch) lässt sich mit einem digitalen Verarbeitungssystem grundsätzlich nicht erreichen!

Marsupilami
12.09.2005, 12:57
ok, das heißt das gleiche gilt auch für Windows, oder?

20.09.2005, 20:33
oh, genau das, was ich schon den ganzen abend suche :)
@marsupilami: ich habe im prinzip was ähnliches im kopf, ein rc-auto per pc fernsteuern, das wäre der erste schritt.
was ich z.z. suche, ist eine fernsteuerung/ein sender, den ich an den pc anschließen und auch programmieren kann.

was die echtzeitsache angeht:
ich denke wenn man mit einer funk-maus echtzeitnah den cursor bewegen kann, oder ein spiel spielen kann, wird auch der umgekehrte weg nicht so schwer sein. zurnot gibts immernoch die thread-priorität, die man erhöhen kann.

danke,
daniel

Roll_.
11.10.2005, 11:34
sorry ich glaub ich bin damals nicht mehr dazu gekommen bin eine projektbeschreibung zu posten


Aber bei unsremem Projekt RACOUN (RAdio Controled Observation UNit)

Haben wir das ein ferngesteuertes auto mit schwenkbaren funkkamera aufsatz mit dem laptop gesteuert


wir haben es uns damals so einfach wie möglich gemacht (glaube ich :O) )

Vier kanal flugfernsteuerung (fahrtenregler,lenkung,kamera X, kamera Y achse )

Die Potis in der fernsteuerung abgehängt
die vier steuerkanäle mit unseren dac outputs zusammengeschlossen

wir hatten einen i2c fähigen dac von philips den wir mit dem roboternetz i2c - rs232 adapter verbunden hatten :O)


gesteuert haben wir das dann mit unserem selbstgeschriebenen 0815visualbasic programm

hat später super funktioniert und verzögerungen sind mir auch keine aufgefallen.

einziges manko war das die vorgespeicherten routen nie 100% gleich nachgefahren wurden ...ein rc auto ist ja auch nicht irgendeine prezisions maschiene

lg Patrick

ICH_
15.10.2005, 10:06
@ Daniel

Du kannst auch einen HF-Teil von so einer RC-Fernsteuerung nehmen und selbst die Signale erstellen die gesendet werden. Ist ganz einfach, such einfach mal ein bisschen.

navyseal
30.10.2005, 12:14
hi!

also ich besuche auch eine htl ... da war letztes jahr ein maturaprojekt wo sie ein rc car über bluetooth angesprochen haben! geprogt wurde das ganze glaub ich über c (bin mir da aber nit sicher) und über ein bluetooth entwicklungsboard.... was du glaub ich beachten musst sind die kanäle oder so irgendwie war das ;)

vllt bringt dich das auf neue gedanken

mfg navyseal

Basti87
06.11.2005, 20:02
Man kann auch einfach eine normale Funke nehmen und das Signal abnehmen bevor es in PPL für den Sender / Empfänger umgewandelt wird. Dieses wiederum kann ganz einfach vom JoyWarriorRC in ein USB-Signal umgewandelt werden (besser gesagt der Controller meldet sich als Spielecontroller im System an und bietet dort 4 Achsen und x Tasten). Das dürfte für euch ausreichen. Dann hat man zumindest die Signale im Computer. Wie man dann die Signale zum RC-Car bekommt ist ganz euch überlassen, jedoch muss man beim Senden den Kanal beachten (sprich wenn im Empfänger die 89 - 40.935MHz drin ist, dann muss auch der Sender auf der Frequenz senden) und außerdem ist mir nicht klar, ob dort ein bestimmter Frameaufbau benötigt wird. Dies sollte sich jedoch ergooglen lassen.

masc_23
29.01.2006, 09:07
ciao leute

ich habe absolut vom prog. keine ahnung, vom modellbau schon

wie marsupilami will ich auch mein auto über den joystick resp. tastatur steuern

ich würde gerne mal den aufbau eines min. 5 kanäligen SENDERS und
EMPFÄNGERS sehen (als bild)

danke

s4ll4c
04.02.2007, 15:32
An alle Bastler:
Was die Diskussion mit den Betriebssystemen anbelangt, würde ich mir keine Sorgen um die Echtzeitfähigkeit bei einer Steuerung eines Modellbau Fahrzeugs machen, sofern kein wirklicher "Schaden" entstehen kann.

Mit Schaden meine ich: Kann man sich einen Ausfall des Betriebssystems leisten ? ("harte Echtzeitbedinung")

Bei einem ferngesteuerten Auto, das mit langsamer Geschwindigkeit fährt ist das sicher der Fall, weil vermutlich überhaupt kein Schaden entstehen wird, falls das Ding im schlimmsten Fall gegen eine Wand fährt.

WinXP ist prinzipiell schon echtzeitfähig.
Das Problem ist, dass die Echtzeitfähigkeit nicht garantiert wird wie z.B. bei Realtime Linux. Auch XP leistet in der Regel eine Reaktionszeit von einigen ms. Jedes 3D Computerspiel ist ein weiches Echtzeitprogramm ! Wenn man aber z.B. eine DVD in sein Laufwerk einschiebt, kann es gravierende Verzögerungen unter XP geben.

Ich stimme voll mit dem überein, was ihr über die Betriebssysteme gesagt habt (bis auf die "wirkliche Echtzeitfähigkeit"), aber ein echtzeitfähiges Betriebssystem für Hobby Bastler einzusetzen ist wie mit Kanonen auf Spatzen zu schießen.

Es sei denn es will jemand z.B. einen RC Hubschrauber steuern.

@Basti87 und co:
Kannst du genauer erklären, wie man die RC Signale in den Computer bekommt ? Vielleicht ein paar Links oder Buchempfehlungen, welches Wissen man sich aneignen muss.