Archiv verlassen und diese Seite im Standarddesign anzeigen : erster Bot - Frage zu Encoderscheibe
Hallo,
als erstes möchte ich mich kurz vorstellen. Bin 15, und damit noch Schüler, wohne in Baden Württemberg und möchte gerne ein kleinen Roboter bauen, damit ich etwas mehr programmierung lernen kann.
Der Bot soll etwa 25cm groß sein und Kreisförmig und mit zwei Antriebsrädern die Zentral angebracht sind, damit der Roboter auf der Stelle drehen kann. Als dritter Auflagepunkt soll ein halbierter Tischtennisball zum einsatz kommen. Als Energiequelle wird ein LiPo (http://de.wikipedia.org/wiki/Lithium-Polymer-Akku) aus dem Modellflugbereich zum verwendet (Nennspannung: 11,1V Kapazität: 2,2Ah), dieser ist leider nochnicht im Bauplan eingezeichnet wird aber auf der unteren Platte zwischen den zwei Motoren etwas weiter nach hinten platz finden. Als Motor soll ein Getriebemotor mit einer übersetztung von 1:21 und einer Leerlaufrehzahl von 175 Upm und einer max. Stromaufnahme von 250 mA platz finden. Diese Kosten 18,20€ inkl. Versand. Kann man da Sparen? Als Grundelektronik soll das RN-Control benutzt werden. Die Räder werden ein Durchmesser von ca. 80mm haben, damit wäre eine Spitzengeschwindigkeit von ca. 50cm/sek. möglich sein oder?
Nun zu meinen Fragen, der Bot soll einer Linie folgen und den hellsten Punkt im Raum finden. Als Lichtsensor wäre da ein SFH300 gut? Reichen als Liniesensoren 3x CNY70? Als Kollisions Sensoren wollte ich anfangs zwei IS471F einsetzen aber die IR-LEDs haben doch nur ein Abstrahlwinkel von 10° oder? Dann bräuchte ich von denen ja mind. 10 Stück...(siehe Bauplan)
Sind die genannten Getriebemotoren teuer, oder giebt es billigere? das Projekt sollte nicht mehr wie 50€ kosten...
So das wars erst einmal, im Anhang noch Baupläne als Konzept, werden wenn alle Maße 100% feststehen per SketchUp gezeichnet.
Hi, sieht schonmal ganz gut aus.
Die Antriebsräder solltest du etwas weiter nach hinten schieben,
ansonsten könnte der Roboter später hinten rüber fallen.
Den Schwerpunkt (Akku) möglichst zwischen Antriebs- und Stützrad setzen.
Bei den Motoren solltest du auch auf das Drehmoment achten,
einen Rechner dafür gibts hier im Wiki.
Ebenfalls wäre für die Haltbarkeit das Getriebe und die Lagerung entscheidend,
da keine separate Lagerung der Antriebsräder vorgesehen scheint.
Hey Tuxy,
der Akku wird so weit wie möglich nach hinten gebaut. Bezüglich Lagerung des Rades, hast du da eine Zeichnung oder Bild wie ich soetwas realisieren könnte? Auch habe ich mir überlegt zwischen Rad und Motor ein drehteller zu befestigen der wie beim ASURO schwarz/weiße felder hat die ein CNY70 zur drehzahlmessung auswertet damit eine relative gerade ausfahrt möglich ist...würde eine genauigkeit von ca. 5cm ausreichen um relative gerade fahren zu können?
Im Anhang ein Screen vom Motor, der sollte doch reichen oder? Akkuspannung sollte konstant auf ca. 11,3V bleiben bei der Last, je nach Akkuladung, diese ist aber bei einem LiPo sehr flach und zum ende stark abfallend. Schaffe ich damit ca. 50cm/sek.? Auch leichte steigungen von 10% sollten machbar sein oder?
Hallo,
keiner eine Antwort? Ja es weiss auch keiner wie schwer dein Bot wird. da solltest du schon mal eine Schätzung anstellen. Es weiss auch keiner, wie hoch die Nenndrehzahl ist, von deinem Motor, die verschweigt der Händler anscheinend. Meiner Meinung nach kommts schon so hin. Aber ohne Garantie und ohne Genauigkeit. Den Preis finde ich ok, aber ich habe keine Vergleichspreise, da ich Motoren um 90 Cent kaufe und die Getriebe selbst baue, das gibt 2 bis 2.5 Euro pro Antriebseinheit, ist aber eine Arbeit, die man gerne machen muss, sonst lohnts nicht. Du kannst ja mit anderen Angeboten vergleiche, aber das hast du sicher schon getan.
http://www.jbergsmann.at/DSCF0255-400x600-34-Getriebemotor.jpg
grüsse,
Hannes
Guten Abend Hannes,
ich meine ja nichtnur die frage Bezüglich des Antriebes sonder auch die Fragen vom ersten Tread. Reichen zur Kollisionserkennung zwei IS471F? Reicht für ein IS471F auch eine IR-LED weil so wie ich gelesen habe aben die nur ein Abstrahlwinkel von 10°....
Das Gewicht sollte Grundsätzlich nicht so schwer sein, also ich schätze das Gewicht auf ca. 1kg.
Ja guten Abend, besser guten Morgen,
tut mir leid, mit IS471F hab ich keine Erfahrung. Aber es wird sich schon wer finden.
Du kannst in diesem Forum, die Überschrift des Threads ändern oder ergänzen, um auf die jeweils neueste aktuelle Fragestellung aufmerksam zu machen. Wenn das Eröffnungspostng editierst, kannst du das Feld mit dem Titel neu ausfüllen. Beispielsweise: "erster Bot - Frage zu IS471F"
grüsse,
Hannes
Der Motor scheint auf den ersten Blick geeignet,
hier der Link zum Rechner (Info beachten)
https://www.roboternetz.de/phpBB2/motordrehmoment.php?raddurchmesser=8&gewicht=1%2C5&umin=175&untersetzung=1&Button=Berechnen&wegprorad=15.7&sekgeschwindigkeit=13.08&mingeschwindigkeit=7.85&stdgeschwindigkeit=0.47&TvorgetriebeNcm=1.5&TvorgetriebeNm=0.015&TnachgetriebeNcm=150&TnachgetriebeNm=1.5
Bei dem geringen Gewicht ist eine zusätzliche Lagerung der Antriebsräder meiner Meinung nicht erforderlich.
Zu deinen Restlichen Fragen kann ich leider auch keine qualifizierte Aussage machen.
Du hast mit dem Abstrahlwinkel einer IR-LED recht. Der ist sehr klein, weshalb nur eine punktuelle Messung möglich ist. Was man versuchen kann ist, dass man drei LEDs parallel an den Ausgang (über einen Transistor) anschließt. Ausprobiert habe ich das noch nicht, ich habe da nur kleinere Bedenken, da ich nicht weiß, wie groß der Öffnungswinkel des Sensors ist. Das Datenblatt sagt nicht direkt etwas über den Öffnungswinkel, anhand einer Grafik auf Seite 4 würde ich aber sagen, dass der mittlere winkel bei etwa 60° liegen sollte.
Letztendlich kann ich dir keine Lösung des Problems nennen. Nur; entweder, du probierst es mit mehreren LEDs (maximal drei, mehr sollten nichts bringen), oder du nimmst gleich ein paar mehr von den Sensoren.
Viele Grüße,
jon
oberallgeier
23.02.2009, 10:12
... Reichen zur Kollisionserkennung zwei IS471F ...Das kann ich schlecht beurteilen - es kommt ja immer darauf an, welche Aufgabenstellung "die Kollisionserkennung" genau darstellt. Nachteil des IS471F ist meiner Meinung nach der relativ geringe Abstand, den er für die Gegenstandserkennung braucht.
... IR-LED ... habe aben die nur ein Abstrahlwinkel von 10° ...Es gibt LED´s mit deutlich größerem Abstrahlwinkel.
Ich verwende in meinem Dottie (hier klicken) (https://www.roboternetz.de/phpBB2/viewtopic.php?p=390196#390196) die SFH415 mit einem Abstrahlwinkel laut Datenblatt von +/- 17°. Die entsprechende Abstandsmessung habe ich in diesem Thread ausführlich (https://www.roboternetz.de/phpBB2/viewtopic.php?t=38009) beschrieben. Dottie erkennt damit Hindernisse und Absturzgefahren (Tischkanten). Für meinen WALL R (https://www.roboternetz.de/phpBB2/viewtopic.php?t=45658) habe ich SMD-LED´s SFH4600 verwendet mit einem Abstrahlwinkel von +/- 20°. Schließlich gäbe es auch noch die CQY99 mit einem Abstrahlwinkel von 50° - aber etwas geringerer Strahlleistung.
Alle diese Daten sind in den Datenblättern enthalten - ich kann Dir nur empfehlen die Datenblätter in der möglichst aktuellen Version zu besorgen (z.B. bei Osram).
... Abstrahlwinkel ... sehr klein, weshalb nur eine punktuelle Messung möglich ist ...Nein, das stimmt eindeutig nicht - die Messung ist NICHT punktuell, siehe Abstrahlwinkel. Je nach Entfernung werden also auch grössere Objekte erfasst, siehe z.B. dieses Video von meinem WALL R. (http://www.youtube.com/watch?v=_TFtP1Xxpzk) Nataürlich kommt es auch auf den Erfassungswinkel des Empfängers/Sensors an. Die Aussage mit der punktuellen Messung trifft allenfalls auf bestimmte Abstandssensoren z.B. aus der Familie Sharp GP2D120 und so zu. Aber das ist eine andere Hochzeit.
... drei LEDs parallel an den Ausgang (über einen Transistor) anschließt. Ausprobiert habe ich das noch nicht ...Das läuft bei mir völlig problemlos - das ist auch in meinen Threads zu sehen. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=371690#371690)
@Tuxy: habe festgestellt das der Rechner kein Komma erkennt, statt Komma muss ein Punkt verwendet werde. Also als max. Gewichtsgrenze muss ich beim Bau 1kg anstreben, danke für den Link werde ihn gleich mal abspeichern.
@oberallgeier:
es kommt ja immer darauf an, welche Aufgabenstellung "die Kollisionserkennung" genau darstellt
Aufgabe soll es so sein wie bei dem Video vom WALL R, erkenne alle Objekte die sich vor dem Bot befinden. Objekte sind meist sehr Groß (Wand, Eimer usw.) selten aber auch etwas kleine z.B. Tischbein. Alle Objekte sind stehen. Also ich rechne weiterhin mit einer Geschwindigkeit mit ca. 50cm/sek, also sollte das Objekt von ca. 25cm "gemeldet" werden was aber machbar sein sollte, ist ja bei deinem Video auch sehr gut zu sehen. Ich schau mal bei Reichelt nach einer IR LED mit großem Abstrahlwinkel. Vielen dank für die Infos.
Ich merke aber schon das das Thema mit der Kollisionserkennung nicht gerade einfach ist. Problem ist halt das Budget liegt halt nunmal bei 50€ ich versuche schon viel Geld zu sparen, das RN-Control kostet mich komplett ca. 15€, obwohl mein Vatter schon viele Bauteile hat und die Platine selber gemacht wird...
giebt es andere möglichkeiten wie man eine Kollisionserkennung realisieren kann? Ist das mit so Tastern vernünftig lösbar? bin da eher skeptisch....
oberallgeier
23.02.2009, 17:48
Mein Thread zur Abstandsmessung/Kollisionserkennung ist oben zitiert und verlinkt, ebenso die Anwendung. Mein WALL R fährt fast 1,5 m/s und braucht knapp einen Meter "Vorlaufzeit" wenn er in voller Fahrt auf eine Wand, einen Schrank oder einen Hundenapf reagieren soll. Erkennen alleine ist ja nicht - er muss ja auch runterbremsen und wegsteuern.
Meine irDME-Ausrüstung (ohne Sharp, siehe Schaltung im letzten Link oben), bestehend aus 3 LED SFH415, 3 IR-Sensoren SFH5110-36, einem BC337, 11 Widerständen und drei Kondensatoren kostet mich fünf bis sechs Euro. Aber ein bisschen Aufwand an Software . . . .
mhmm ich werde mal wenn ich die Bauteile für das RN-Control bestelle paar experimentelle Bauteile mitbestellen und probieren. Eine andere Frage wie sieht das mit der erfassung der Drehzahl der Motoren/Räder aus?
geschätzte Umdrehungen des Motors: 140 U/m
wie mach ich das den genau?
oberallgeier
24.02.2009, 12:11
Hi Soeni,
... andere Frage ... erfassung der Drehzahl der Motoren/Räder ... 140 U/m ...Vermutlich sollen das Umdrehungen pro Minute, nicht pro Meter sein. Zur Lösung der Aufgabe gibt es (wie fast immer) mehrere Möglichkeiten. Ich hatte das mit einer Gabellichtschranke (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344432#344432) an der Motorwelle gemacht. Die Signale vom Encoder auf der Welle (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344795#344795) werden von meinem m168 mit INT0 und INT1 erfasst bei steigender Flanke (auch das ist kein Muss - nur eine Möglichkeit). In der ISR wird die Zeit ausgelesen die ein Timer bereitstellt. Drehzahl an der Motorwelle bei meinem Projektchen max. knapp über 750 Hz. Damit wird auch meine Regelung gefüttert.
Übrigens gibt es in alten Kugelmäusen prächtige Encoderscheiben für diese Zwecke. War nur in meiner Lösung wegen der etwas beengten Verhältnisse von wenigen Kubikmillimetern nicht unterzubringen.
http://oberallgeier.ob.funpic.de/encD15.jpg
klar meine ich Umdrehungen pro Minute, passiert halt wenn man schneller schreibt als denkt ](*,)
Also bei mir sollten es so etwa 12 Schlitze auf der Encoderscheibe sein, damit eine genauigkeit von fast 2cm ereicht werden kann. Das wären bei 140 U/min 28 Messungen in der Sekunde.
Nehmen wir mal an die Encoderscheibe hat ein Durchmesser von 2cm so wäre jeder von den 12 Abschnitten am äußersten Rand ~5,2mm groß.
Bei voller Fahrt des Bot (140 U/min) wäre die Gabelschranke jeweils für ~36ms ausgelöst. Wie hoch ist den die Abtastrate, oder wie man das nennt, bei so einer Lösung? Damit der Bot fernünftig gerade fährt muss mindestens die Gabelschranke mit 200Hz ausgelesen werden damit eine genauigkeit von 3mm pro sekunde möglich ist. Oder bin ich mit der ganzen Theorie völlig auf dem Holzweg?
https://www.roboternetz.de/wissen/index.php/Sensorarten#Drehgeber_Sharp_GP1A30_und_GP1A38
da stehen keine genauen Angaben (-->Datenblatt?) es wird jedoch erwähnt, dass die GP1A38 höhere Drehzahlen messen kann...
Falls du in Erwägung ziehst eine solche Lichtschranke zu verwenden, wirf am besten wirklich mla einen blick ins Datenblatt ;)
Ich habs mal nachgeschaut:
http://www.datasheetcatalog.com/datasheets_pdf/G/P/1/A/GP1A38L5.shtml
Hier steht was von Response Frequency: 3000Hz max
Sollte also, vorrausgesetzt deine Berechnungen stimmen, locker passen ;)
ich besitze einige hier (http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A55;GROUPID=3046;ARTICLE=668 1;START=0;OFFSET=16;SID=31eK08cawQAR8AABTdOLU2ed03 8c304df72c4eeb9742f0935ba40) von.
Konnte im Datenblatt aber nichts über die Frequenz oder ähnliches finden, aber sollte auch damit gehn, oder?
Edit: Wie oft kann ein Atmega16 den ein Analoges Eingangssignal abfragen? So schnell wie der Quarz ist, also 16kHz?
Ich gehe mal davon aus, dass das funktioniert :)
Ich habe es bei meinem Roboter anders gelöst:
Weil ich sowiso noch ein paar CNY70 da hatte und mein mechanisches Grundgerüst mir den Einsatz von Encoderscheiben nicht gestattete, habe ich einfach den schwarzen Reifen in regelmäßigen Abständen (keine besonder hohe Auflösung erforderlich) mit weißen Markierungen versehen.
Die CNY70 habe ich so angebracht, dass deren Licht von der schwarzen Farbe absorbiert, von der weißen jedoch reflektiert wurde, sodass ich die Drehung direkt am Reifen messen konnte :)
Hat prima funktiniert - aber ich glaube, wenn die Möglichkeit gegeben ist, dann ist die Gabellichtschranke die "bessere" Wahl ;)
Achja was mir noch einfällt...
Das schöne an den Sharp_GP1A30 ist halt, dass du, bei Bedarf auch die Drehrichtung über einen TTL-Signal auswerten kannst, was die CNY36 glaub ich nicht ermöglichen.
Jedoch lässt sich das auch einfach per Software realisieren:
Du weißt ja normalerweise in welcher Richtung das Rad dreht, weil du es steuerst und anhand dieser Information kannst du dann in der Interrupt-Routine entscheiden ob deine Countervariable (oder wie auch immer du das handhabst) erhöht, oder verringert werden soll
Achja was die Abfragerate angeht...
Das kommt auch drauf an, wie du das softwaremäßig umsetzen willst - Du solltest z.B. nicht in einer Schleife kontinuierlich den Status der Ports abfragen - Schöner ist es, wie bereits erwähnt, das ganze mit Interrupts zu Handhaben.
Ein External Interrupt kann von bestimmten Pins (mit Int gekennzeichnet) ausgelöst werden und wenn das der Fall ist, dann wird der normale Programmfluss unterbrochen und die ihm zugeordnete ISR (Interrupt-Service-Routine) ausgeführt - eine bestimmte Funktion also.
Schau dir dazu mal ein AVR-GCC Tutorial zum Thema Interrupts an (ich glaub auf mikrocontroller.net gibts ein ganz nettes) - vorrausgesetzt du schreibst das Program in C - Bei Bascom kann ich dir leider nicht weiterhelfen :)
was ist den ein TTL-Signal? Sorry für die dummen fragen aber ich hab mit uC noch garkeine erfahrung, aber deswegen bin ich ja hier. Eigendlich brauch ich keine Richtungserkennung. Habe eigendlich gedacht das ein Rad immer bei gerader Fahrt 95% Vollspeed fährt und das zweite Rad je nach dem ob dort weniger oder mehr Drehzahl anliegt die Geschwindigkeit anpässt. Mehr soll es vorerst garnicht machen...
Edit: Ja das ist ja das nächste, lieber Bascom oder in C programmieren? Ich behersche garnix von beidem und da ich glaube das C besser ist, da mehr benutzt und es auch am PC weiter helfen kann, oder?
Bei TTL handelt es sich einfach nur um den Logik-Pegel, also die Zustände "HIGH" und "LOW" guckst du hier :) (http://www.elektronik-kompendium.de/sites/dig/0205171.htm)
Und ja für o.g. Aufgabe sollten die von dir verwendeten Gabellichtschranken auf jeden fall geeignet sein ;)
Was die Programmiersprache angeht...
Egal ob Bascom oder C wirst du erstmal ein kleines Tutorial durcharbeiten müssen um über die Elemente der Sprache wie z.B. Syntax bescheid zu wissen - wenn du gar keine Erfahrung hast würde ich vielleicht nicht direkt mit µC-Programmierung anfangen, weil man da gerade als Neueinsteiger durch mehr oder weniger "kryptische" Register- und Bitoperationen zusätzlcih verwirrt werden könnte.
(Verbessert mich auch hier, falls das für Bascom nicht zutrifft)
Am PC kann dir sowohl C als auch Bascom (bzw Basic) weiterhelfen, dennoch sind die (meines Wissens nach) mehr oder weniger meist gebräuchlichen Sprachen (Situationsbeding) im Moment Java und C/C++ bzw C#, welche sich alle an der C Syntax orientieren, wodurch du also schon einen Vorteil hättest, wenn dir diese geläufig ist.
Aber wie gesagt - gerade bei C - lad dir nen C-Compiler runter und arbeite ein einfaches Tutorial durch - wenn du dann soweit bist, dass du einfache Konsolenanwendungen mit Eingabe, Ausgabe etc. schreiben kannst und dir über die Grundstruktutren der Programmiersprache im klaren bist, dann kannst du mit µC loslegen ;)
Mein persönliches Urteil ist noch, dass mir Basic nicht sonderlich symphatisch ist - hab nur ein Paar Erfahrungen mit VBA gemacht und ich mag es einfach nicht, aber das sollte dich nicht davon abhalten mit Basic anzufangen ;)
oberallgeier
24.02.2009, 17:54
... Konnte im Datenblatt aber nichts über die Frequenz oder ähnliches finden ...Oder Ähnliches?? Sicher steht dort etwas über Turn-on- und Turn-off-Zeiten. Oder so ähnlich.
... So schnell wie der Quarz ist, also 16kHz ...Schreibfehler? der m16 kann nämlich bis 16 MEGAHz.
... Wie oft kann ein Atmega16 den ein Analoges Eingangssignal abfragen? So schnell wie der Quarz ...?Also NIE so schnell wie der Quarz. Die Anzahl der Prozessortakte für eine AD-Wandlung steht im Doc. Wer auf den Button [• Suchen •] (https://www.roboternetz.de/phpBB2/search.php) drückt (der Button ist oben in der Steuerleiste), kann auch genauere Angaben (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=72417#72417) finden.
Aber: Willst Du die Gabellichtschranke mit AD-Wandler abfragen ? ? ? *Grübelgrübelwasfürn....". Mein Controller bekommt das auf INT0 bzw. ~1 - siehe oben.
ich glaube ich werde mir morgen mal "C Programmieren von Anfang an - Helmut Erlenkötter" in der Bücherrei ausleihen und etwas lesen, glaube das ist einfach das sinnvollste.
the.speciali
24.02.2009, 18:35
Hi,
zum Thema c-programmieren. Es gibt ein gutes Openbook von GalileoComputing.
Hier der Link:
http://www.hs-augsburg.de/~sandman/c_von_a_bis_z/
mfg
the.speciali
das kann ich dir auch ans Herz legen - ich kenne zwar das C-Openbook nicht, aber ich habe damals anhand des Openbook für Java von GalileoComputing Java gelernt und bisher nichts gefunden, was für Einsteiger besser geeignet ist.
oberallgeier
24.02.2009, 19:27
Zum Programmieren von µControllern gibt es doch hübsche Tutorials. Das hatte ich mal hier aufgelistet:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=413294#413294
Bücher beschäftigen sich ja im Allgemeinen nicht mit der prozessorspezifischen Hardware-Geschichte. Ich habe als eigentliche Bibel den Kernighan-Ritchie - sehr nett und nicht unflott zu lesen. Und absolut das "Wahre" - eben von den Sprachekonstukteuren selbst. Aber controllerspezifische Fragen habe ich aus den Tutorials gelernt - oder im Forum durch Hilfe von den Kollegen erklärt bekommen.
@Soeni: Du hast natürlich in Deinem Eingangsposting ziemlich genau beschrieben, was Du machst - aber nix darüber, dass Dir die Programmierung eher unbekannt ist. Dann hätte man anders antworten können. Na ja, und der Anfang - sich mit den Encoderscheiben zu beschäftigen - ist vielleicht auch nicht gerade der richtige Anfang. Ich würde an Deiner Stelle mit der RNControl (hast Du die schon oder willst Du die noch kaufen - oder ein anderes Board?) erstmal ein paar LEDs einschalten - am Besten in einem bestimmten Takt, einen Motor mal mit einer bestimmten Geschwindigkeit laufen lassen - sagen wir mal 1, 2 sek und danach schneller - wieder ne Weile, dann langsamer . . . . . Sprich: ich würde dann so die ersten Schritte machen. Wirklich Schrit für Schritt. Wenn Du anfängst zu klettern (oder sonst so Ähnliches), fängst Du (üblicherweise) auch nicht oberhalb von 8 free an . . . . . oder?
Nein besitze nochnicht das RN-Control, werde mir morgen fehlende teile bestellen und paar IR-LEDs paar CNY70 usw. und dann werde ich mir mal ein RN-Control bauen und ein ISP-Dongel und ein RS232 Kabel. Habe vom Modellflug paar Servos und paar kleine Motoren (glaub Solarmotoren heißen die teile) die werde ich einfach mal benutzen...und dann werde ich vllt. auf ner Lochrasterplatine mehrer LEDs anordnen und dafür ein Programm programmieren vllt. auch als so kleines Laufbanner realisieren, wie man es von Fußballstadien kennt.
Auf der Seite von the.speciali (vielen dank dafür!) habe ich angefangen zu lesen und wollte gleich mal "Hallo Welt" probieren...so nun schon erste banale problem: Texteditor brauch ich ja, da steht was von "Dinosaurier Edit" aber so richtig eine Downloadseite finde ich bei Google nicht, hat jemand ein Link? Genau das gleiche mit dem GCC Compiler oder ist der nur für Linux? Alternativen?
oberallgeier
25.02.2009, 09:23
Hi,
auf der RNControl sind schon acht LEDs, da kann man gut damit "spielen". Ebenfalls hat die ja einen Motortreiber für zwei DC-Motore. Und für erste Versuche reicht ein voll bestücktes 9poliges RS232-Kabel (DSub19) - wennn Du die RNControl kplt. mit dem Controller mit Bootloader bestellt hast.
Programmiert habe ich immer mit AVRStudio - den Editor darin finde ich sehr gut. Zum AVRStudio gehört der WINAVR, ein weit verbreiterer, sehr guter Compiler. Für kleinere Programmieraufgaben so "zwischendurch" - sprich: für ausgelagerte, projektbezogene Module programmiere ich auch schon mal mit notepad - genau - dieser Windös-Editor.
Geflasht hatte ich immer mit ISP, nie mit Bootloader, mit PonyProg und einem seriellen Programmierkabel. Übrigens hatte ich mir den originalen Controller der RNControl mit dem praktischen Bootloader für "alle Fälle" aufgehoben und mache meine Experimente mit einem ehemals fabrikfrischen Teil.
the.speciali
25.02.2009, 11:34
Also zum schreiben von Programmen und zum compilen würde ich dir Dev-C++ empfehlen. Steht zwar c++ da ist aber auch zu c kompitabel.
Direkter Downloadlink (http://sourceforge.net/project/downloading.php?groupname=dev-cpp&filename=devcpp-4.9.9.2_setup.exe&use_mirror=freefr)
Einfach installieren öffnen, neue quelldatei erstellen und das HalloWelt programm reinschreiben und "F9" drücken.
Sollte dann nur ganz kurz sich die Konsole (das Programm) öffnen und sich gleich wieder schließen ist das kein Fehler, das Programm führt das richtige aus nur es ist zu schnell;). Einfach vor dem "return 0;" eine Unendlichschleife setzen ("while (1);") und schon sieht man das Hallo Welt;)
mfg
the.speciali
@oberallgeier:
auf der RNControl sind schon acht LEDs, da kann man gut damit "spielen". Ebenfalls hat die ja einen Motortreiber für zwei DC-Motore. Und für erste Versuche reicht ein voll bestücktes 9poliges RS232-Kabel (DSub19) - wennn Du die RNControl kplt. mit dem Controller mit Bootloader bestellt hast.
ja weiß ich, aber ich bestell ja nicht ein RN-Controll sondern nur einige Bauteile, habe ja schon einige und dann wird alles auf ner Lochrasterplatine zusammengebaut. Und genau das gleiche mit einem ISP-Dongel.
@the.speciali
danke werde ich nach meim Urlaub ausprobieren, werde jetzt einige tage in den Urlaub fahren, ich melde mich wieder...
oberallgeier
25.02.2009, 14:44
... werde jetzt einige tage in den Urlaub fahren, ich melde mich wieder...Flims? Na dann alles Gute. Denk an zwei Dinge: Snwoboarding is as dangerous as you want to have it - - - und - - - kein Air höher als die Halfpipe tief ist.
bin wieder daheim, nein war nicht Ski fahren, wäre aber auch lustig gewesen.
Bauteile habe ich nun und werde doch jetzt ein RN-Control Board kaufen und nicht selber auf Lochrasterplatine löten also kann ich erst mitte/ende der Woche anfangen mit de zusammenbau.
021aet04
02.03.2009, 22:48
zu Frage 1: TTL-Signale sind Logiksignale mit 5V für high und 0V für low
TTL=Transistor Transistor Logik
Mit dem Rad, dass immer 95% fährt würde ich nicht machen, wie bleibst du stehen? Besser wäre beide Räder regeln.
zu Frage 2: Ich bevorzuge C. Habe die Grundlagen in der Schule gelernt. Ist aber eher geschmackssache. Angeblich ist C schneller als Basic, kann aber keine Aussage treffen (nicht probiert)
ok also die Programmiersprache ist klar --->C
habe auch angefangen mir Grundkenntnisse über C beizubringen, habe aber Probleme mit dem befehl scanf, kann sich das vllt. kurz jemand anschaun was ich falsch gemacht habe?
/* scanfl.c */
#include <stdio.h>
int main (void) { /*programmstart*/
int i; /*ganzzahliger datentyp*/
printf ("Bitte geben Sie eine Zahl ein : "); /*aufforderung zahleingabe*/
scanf ("%d,&i"); /*wartet auf eingabe*/
printf ("Die Zahl, die Sie eingegeben haben, war %d\n",i); /*ausgabe der zahleingabe*/
getchar(); /*pause*/
return 0; /*wiederholung*/
}
Wenn ich es Compiliere und eine Zahl eingebe und Eingabe drücke verschwindet das Fenster...benutze Dev-C++ (V: 4.9.9.2) unter XP
the.speciali
03.03.2009, 19:02
.
Sollte dann nur ganz kurz sich die Konsole (das Programm) öffnen und sich gleich wieder schließen ist das kein Fehler, das Programm führt das richtige aus nur es ist zu schnell;). Einfach vor dem "return 0;" eine Unendlichschleife setzen ("while (1);") und schon sieht man das Hallo Welt;)
Hi,
Hab das Problem schon weiter oben einmal beschrieben;)
Habs auch mal shcnell ausprobiert es funktioniert tadellos.
mfg
the.speciali
...mhmm auf der seite mit dem C-Tutorial stant das man auch "getchar ();" verwenden kann deswegen bin ich davon ausgegangen das es das gleiche ist. Nun bleibt es zwar offen aber es zeigt immer "2" an???
/* scanfl.c */
#include <stdio.h>
int main (void) { /*programmstart*/
int i; /*ganzzahliger datentyp*/
printf ("Bitte geben Sie eine Zahl ein : "); /*aufforderung zahleingabe*/
scanf ("%d,&i"); /*wartet auf eingabe*/
printf ("Die Zahl, die Sie eingegeben haben, war %d\n",i); /*ausgabe der zahleingabe*/
while(1); /*pause*/
return 0; /*wiederholung*/
}
the.speciali
03.03.2009, 19:16
joa das soll das programm auch machen. Was sollte es deiner Meinung nach machen?
joa getchar sollte auch funktionieren aber irgendwie mag es das Dev-C++ net sonderlich. ist halt von kompiler zu kompiler unterschiedlich gibt auch von pc zu pc unterschiede.
Was sollte es deiner Meinung nach machen?
...mhmm er soll eigendlich die Zahl wo oben eingetragen wurde wieder ausgeben aber er giebt immer die Zahl zwei aus egal was eingegeben wird...
the.speciali
03.03.2009, 19:40
ahh stimmt^^
du musst bei
scanf ("%d,&i");
stattdessen
scanf ("%d",&i);
nehmen.
dann sollte es funktionieren.
war/ist ein Steiniger weg aber ich komm voran. Danke für die Hilfe...jetzt kann ich es kaum abwarten endlich mein Board vom Hermes Boten zu bekommenn....
so also das RN-Control und ISP-Dongel hab ich nun komplett zusammengebaut vormir liegen. Wie lade ich denn das C-Demoprogramm mit Dev-C++ in den Controler?
the.speciali
08.03.2009, 23:38
Öhm das ist eine gute frage:D
Ich programmiere zwar sehr viel aber mit der Robotik bin ich dann doch nicht soooo sehr bewandert. Ich habe nur den Asuro und da gehts sehr einfach mit dem GNU-GCC der aus dem Sourcecode eine Hex-Datei erzeugt und Flashe sie einfach mit dem Asuro-Flash tool per infrarot direkt auf den asuro;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.