ich habe eine Frage zu meinem anstehendem Projekt und erhoffe mir hier hilfreiche Antworten!
Das Projekt:
Mein RC Auto (Verbrenner) soll mit Sensoren ausgestattet werden die von einem Mikrocontroller Board (Arduino) ausgelesen und ausgewertet werden.
Die Sensoren:
1-2 Temperatursensoren
1 Drehzahlsensor RPM
1 Tank-Level Sensor PWM
Weiterhin sollen die Sensordaten an mein Notebook gesendet werden.
Ist das mit einem Arduino möglich? Oder ist hierfür eher ein Raspberri Pi geeignet?
Weiterhin sollen die Sensordaten an mein Notebook gesendet werden.
Über was für eine Schnittstelle willst du die Daten an dein Notebook
senden?
Vermutlich will der die Sensordaten an die Telemetrie-Schnittstelle des RC-Empfängers geben, und vom RC-Sender über den dortigen Telemetrie-Ausgang per BT an sein Notebook. So ist das jedenfalls üblich ...
Laut Radio Eriwan: Im Prinzip ja, aber wie lange es dauert, kommt darauf
an wieviel Erfahrung du bereits mit µC und Elektronik hast.
Was hast du mit welchem µC bisher realisiert? Wieviel Zeit hast du für
dieses Projekt? Wann ist Abgabeschluss?
Ich habe ca 2 Wochen Zeit für das Projekt und bisher einiges mit µC experimentiert aber nicht so, dass ich mehrere Sensoren auslese und Daten über Telemetrie oder ähnlich sende, sondern per USB direkt auslese.
Verstehst du unter Arduino auch die "typischen" Boards und angebotenen Sensoren?
Dann ist es mit einem "Arduino" eher nicht dauerhaft möglich, zumindest nicht so wie normalerweise die Arduino Hardware und die typischerweise aufgebauten Sensoren (als Sensorboards) genutzt werden.
Steckverbindungen der Art, wie sie beim Arduino und den Sensorboards üblich sind schon für ein (ernsthaftes) E-Modell ungeeignet bzw. werden in kürzester Zeit Probleme verursachen - bei einem lauten (nervigen) immer irgendwie Kraftstoff und Öl von sich gebenden (allein schon, was da aus dem Auspuff an schmierig ekeligen Kram kommt) und noch mehr Vibrationen und Schläge als ein E-RC Auto (Basher, richtige Crawler, RC Rennautos nicht jetzt das 19,99€ Komplettset für das Laminat im Kinderzimmer) schon gar nicht.
Löten und oder hochwertig, mechanisch abgefangene Stecker und Leitungsführung ist ein Muss, möglichst wenig Stoßstellen (also Sensoren direkt an die Leitungen - keine Boards) relativ "Wasserdichte" Gehäuse für den Arduino (Pro Mini oder mechanisch noch kleiner ist, sehr zu empfehlen, schwere Komponenten (Elkos, Kühlkörper,...) dürfen nicht einfach nur auf der Platine verlötet sein, sondern durch geeignete Maßnahmen zusätzlich gesichert werden usw.
Schau dir einfach an, wie dein Empfänger, der Motoregler und eventuell schon vorhandene Sensoren aufgebaut und untergebracht sind - ähnlich muss es dann auch beim Arduino und den "neuen" Sensoren sein.
Rein von der Rechenleistung und wenn mann sich ein wenig von den Arduinosystem auf der Softwareseite löst (Registernutzung nah am Datenblatt, timer und counter nach seinen Vorstellungen und ebenfalls nah am Datenblatt nutzen, verzicht auf manche zwar einfach aber auch leistungshungrige "Arduino" Funktionen -das fänft schon bei Nutzung eines Pin an, nicht blind jede Libary nutzen,...) dürfte das für einen "typischen" (klassischen?) Arduino mit einem ATMega328 kein Problem sein - selbst wenn man reinen "Arduino" Code fernab des Datenblatts nutzt ist der erstaunlich leistungsfähig - wenn man dann aber Hardwarenah (Datenblatt nah) programmiert dürfte es keinerlei Leistungsprobleme geben.
Löten und oder hochwertig, mechanisch abgefangene Stecker und
Leitungsführung ist ein Muss, möglichst wenig Stoßstellen (also Sensoren
direkt an die Leitungen - keine Boards) relativ "Wasserdichte" Gehäuse
für den Arduino (Pro Mini oder mechanisch noch kleiner ist, sehr zu
empfehlen, schwere Komponenten (Elkos, Kühlkörper,...) dürfen nicht
einfach nur auf der Platine verlötet sein, sondern durch geeignete
Maßnahmen zusätzlich gesichert werden usw.
Das soll zunächst einmal für einen Testaufbau reichen, ehe ich mir langfristig eine Platine erstelle und einen "professionelleren" Aufbau bastle.
Aber für das Prototyping erstmal mit Arduino und übliche Sensoren
Ich habe ca 2 Wochen Zeit für das Projekt und bisher einiges mit µC
experimentiert aber nicht so, dass ich mehrere Sensoren auslese und
Daten über Telemetrie oder ähnlich sende, sondern per USB direkt
auslese.
Also ich mache regelmäßig Sensoren für Multiplex M-Link und JETI.
Aber mit deinen Fragen bekommst DU das niemals in 2 Wochen hin. Da entwickelt man deutlich länger.
Da es ein privates Projekt bzw für unseren Verein ist, ist die Zeit
nicht sehr kritisch.
Du widersprichst dir ja jetzt schon ständig:
Ich habe ca 2 Wochen Zeit für das Projekt
Was hält dich nun eigentlich davon ab anzufangen? Arduino Projekt aufziehen. MAVLink Kommunikation mit Dummy Daten an den Start bringen. Dann externe Sensoren auslesen und deren Daten senden.
Ich vermute mal dass du einen 8 Bit Arduino mit AVR Mikrocontroller meinst. Arduino unterstützt auch eine ganze Reihe 32 Bit ARM Controller.
Wie dem auch sei, ich gehe mal stark davon aus, dass dafür selbst die kleinen AVR Mikrocontroller geeignet sind. Spannend stelle ich mir allerdings die Messung des Füllstandes vom Tank vor, denn der wird ja kräftig durch geschüttelt.
Kannst du dann einfach mal KONKRET sagen was jetzt dein Problem ist?
Kann der Arduino diese Sensoren gleichzeitig auswerten und die Daten verarbeiten? Wie mache ich das am besten? WIe ist das mit den verschiedenen Signal, die müssten doch konvertiert (auf Seriell) werden oder?
Ich denke da an Software Interrupts?
Kann der Arduino diese Sensoren gleichzeitig auswerten und die Daten
verarbeiten? Wie mache ich das am besten? WIe ist das mit den
verschiedenen Signal, die müssten doch konvertiert (auf Seriell) werden
oder?
Ich denke da an Software Interrupts?
Du brauchst noch mehr als 2 Wochen um Überhaupt die Grundzüge des Programmierens zu erlernen, rechne eher 2 Jahre.
Stelle konkrete Fragen mit den nötigen Infos, damit man besser antworten kann. Fragen der Art "Wie funktioniert die Welt" sind zu umfangreich für ein Diskussionsforum.
Kann der Arduino diese Sensoren gleichzeitig auswerten und die Daten
verarbeiten?
Wie oft möchtest du Temperatur und Tankfüllstand messen? Selbst ein Mal pro Sekunde wäre sicher mehr als ausreichen. So schnell ändern sich diese Parameter nicht.
Und was hast du dir als Drehzahlsensor vorgestellt? Liefert der häufiger als 10 mal pro Sekunde neue Daten?
Es macht wenig Sinn, die Parameter häufiger zu übertragen, als du sie messen und auf deiner Anzeige ablesen kannst.
Bei nicht zu ungeschickter Programmierung wird der ATmega sich langweilen. Die ausreichend gleichzeitige Messung funktioniert, weil dir entweder die Sensoren oder die Hardware im uC viel Arbeit abnehmen und der uC nur für das Auslesen und die Steuerung der Übertragung ran muss.
Enttäuschend ist dass du behauptest mit Controllern und Programmierung Erfahrung zu haben. Was nicht der Fall ist.
Enttäuschend ist, dass wieder mal jemand mit Null Vorkenntnissen kommt und eine relativ komplexe Anwendung, mal schnell, und mit Hilfe des Forums stemmen will. Was einfach nicht geht.
Enttäuschend ist, dass du nicht willens bist, dir erst mal gewisse Grundlagen beizubringen.
Hast du überhaupt schon mal eine LED blinken lassen?
Hast du mal Daten über UART gesendet und empfangen?
Hast du mal einen Analogwert abgerufen, umgerechnet und irgendwo ausgegeben?
Und das ganze womöglich noch ohne 100% Copy&Paste?
Absolute BASICS! Und sicher hast du nichts davon gemacht.
Und vorher braucht man an so ein Projekt einfach nicht denken.
Ich wollte keine Schritt für Schritt Anleitung, aber ein Leitfaden hätte mich gefreut!
Wörter die ich benutze (Interrupt) verstehe ich auch..
Hast du überhaupt schon mal eine LED blinken lassen?
Hast du mal Daten über UART gesendet und empfangen?
Hast du mal einen Analogwert abgerufen, umgerechnet und irgendwo
ausgegeben?
Wie oft möchtest du Temperatur und Tankfüllstand messen? Selbst ein Mal
pro Sekunde wäre sicher mehr als ausreichen. So schnell ändern sich
diese Parameter nicht.
Und was hast du dir als Drehzahlsensor vorgestellt? Liefert der häufiger
als 10 mal pro Sekunde neue Daten?
Es macht wenig Sinn, die Parameter häufiger zu übertragen, als du sie
messen und auf deiner Anzeige ablesen kannst.
Lüge. Denn ansonsten hättest du schon längst einfach mal angefangen. Und wärst nicht noch bei der Frage ob nicht doch eher einen Raspi besser wäre.
Wenn es so wäre, könntest du deine Aufgabe in sinnvolle Teile aufteilen und LOSLEGEN.
Nichts davon kannst.
Noch nicht mal die HW grob zusammengesteckt hast du.
Ich sehe bei der oben genannten Aufgabe erstmal keinen Bedarf für einen Interrupt. Oder andersrum: die obige Aufgabe könnte ich auch ohne Interrupt lösen.
Das wäre jetzt das, was tatsächlich anliegt: werde konkret zu deinen Sensoren und teste ganz ohne µC z.B. mit einem Oszilloskop aus, wie sich deren Signal bei bestimmten Betriebsbedingungen verhält. Untersuche, ob du aus diesen Daten auf einem Blatt Papier oder auf dem PC das ermitteln kannst, was du später anzeigen willst.
Dann denk dir eine Hardware aus, die das Ganze an den µC ankoppelt, und erst fang an, ein Programm zu schreiben, die die ganze Hardware einliest, verarbeitet und ansteuert.
Du brauchst noch mehr als 2 Wochen um Überhaupt die Grundzüge des
Programmierens zu erlernen, rechne eher 2 Jahre.
..immer Diese Übertreibungen.
..vielleicht hat er aber den Funktionsaufbau in 2-3 Wochen fertig.
Nicht immer gleich an eine professionelle Lösung denken,
eine Bastellösung reicht erst mal.
Nicht immer gleich an eine professionelle Lösung denken,
eine Bastellösung reicht erst mal.
Niemand denkt hier an eine prof. Lösung.
Aber ein paar staubige Relais und ein paar alte LEDs, hässlich zusammengestümpert, wird hier nicht viel ausrichten und dem TE nicht helfen.
Jederzeit. Weil mit so wenig Vorwissen nutzen einem weder fertige libs noch Tutorials. Da geht nur wirklich 1:1 nachbauen. Wenn überhaupt. Er will aber eine eigene Applikation machen.
Mittlerweile habe ich jemanden gefunden der mit mir an diesem Projekt arbeitet. Bis auf wenige Ausnahmen sind hier ja nur hochnasige "Experten" unterwegs.
Danke an alle die tatsächlich helfen wollten!
Alle andere sollten sich mal überlegen ob man auf diese Art jemanden zum weiter machen motiviert oder eher abschreckt!!
Mit hochnasige "Experten" bist Du gemeint, falls Du das nicht mitgekriegt hast.
Ich weiß gar nicht warum Du überhaupt in einem Arduino Thread rumtrollst - willst Du nicht lieber irgendwo mit Moby Assembler programmieren? Arduino ist ja ganz eindeutig zu "hoch" für Dich - wenn Du zwei Jahre brauchst wofür andere fertige Libs nehmen.
Danke an alle die tatsächlich helfen wollten!
Alle andere sollten sich mal überlegen ob man auf diese Art jemanden zum
weiter machen motiviert oder eher abschreckt!!
Um dir helfen zu können muss man vor dir etwas Eigeninitiative und ein Minimum an Vorkenntnissen erwarten können.
In wie weit meinst du "weiter machen motivieren"? Du hast ja noch nicht einmal angefangen.
In wie weit meinst du "weiter machen motivieren"? Du hast ja noch nicht
einmal angefangen.
Außerdem sollte man schon in der Lage sein SICH SELBST zu motivieren etwas zu lernen. Daran fehlt es hier mal wieder. Da soll einfach mal schnell irgendein Projekt hingerotzt werden. Egal wie. Ob es nun das Forum macht, ein Bekannter oder gleich Copy&Paste. Alles egal.
Zum Glück scheitern alle diese Ansätze trotzdem.
Die Wortwahl von Cyblord ist zwar etwas gewoehnungsbeduerfig, aber prinzipiell wahr. Ein Zitat aus diesem Forum aus dem Jahr 2021:
Beitrag "Re: Hilfe bei Z80 Opcodes"
Und nein, dieses Forum ist zwar hilfreich, aber es ist kein
Cola-Automat, wo man auf den Knopf drückt und schon kommt der Pappbecher
mit dem fertigen Drink heraus. Etwas eigene Arbeit (auch
Einarbeitungsarbeit in den Z80) wäre vonnöten gewesen, schließlich ist
es DEINE Maschine, die jetzt doof herumsteht und nicht mehr benutzbar
ist.
Ich fühl mich gerade danach, eifnach nochmal auf den Eingangs-Post ein zu gehen, versuchen konstruktiv zu helfen - aber auch konstruktiv zu spiegeln, wo der Eindruck eines limitierten technischen Verständniss entsteht.
Zeithorizont
Ich würde das als Winterprojekt betrachten. Zwei Wochen (auch zu zweit) ist keine realistischen Zielline. Auch ein Monat nicht. Nur, wenn man mehr oder weniger das gleiche schon mal gemacht hat und sich jeden Nachmitag / Abend und Wochenende dran setzt ist das realistisch.
Deswegen zur Frustvermeidung - peile das eher als Winterprojekt an.
Zerlegung in Komponenten
Isoliere einzelne Funktionalitäten in einzeln zu lösende Aktivitäten und gehe jede einzeln an.
Auf den ersten Blick sind das die drei Spiegelpunkte, die schon gelistet sind, dann die Wireless Verbindung, Selektierung des Boards.
Hier entsteht der erste Eindruck eines Interessierten, dem aber das Handwerkszeug fehlt, deterministisch zum Ziel zu kommen. Die "Sensoren", die aufgezählt wurden, sind nicht alles Sensoren. Genau genommen, gibt es nur Sensoren für unmittelbar physikalisch messbare Größen. D.h. es gibt keine Füllstandssensoren - nur Einrichtungen, welche sich physikalische Prinzipien zunutze machen, welche einen Rückschluss auf den Füllstand zu lassen.
Letztlich gilt das gleiche Für Drehzahlsensoren. Ein Drehzahlsensor in seinem Kern misst den zeitliche Abstand zwischen zwei Pulsen und berechnet daraus die Drehzahl. Es kann gut sein, dass sich z.B. integrierte "Drehzahlsensoren" finden, die sich meinetwegen über I2C auslesen lassen (das würde ich wenn möglich heir auch empfehlen weil einfacher). Will man das ohne Schnickschnack auf dem Board machen, muss man sich Gedanken über eine stabile Zeitbasis machen. Da wird es für Neulinge schon einigermaßen kompliziert, weil es weiteres Verständniss über Konzepte erfordert und weitere Fehlerquellen bringt (die garantiert eintreten :> )
Boardwahl / Wireless / Arduino
Vorab: Auf ein PI würde ich verzichten.
Grundsätzlich halte ich Arduino hier für eine gute Idee. In meinen Augen ist das Framework gut geeignet, wenn man es sich leisten will / kann mit Kanonen auf Spatzen zu schießen, um Entwicklungszeit zu sparen. Klingt hetzerisch, aber ich meine das ganz wertneutral. Ich mache das auch so. Wenn ich ein Dingise brauche, wo ich WS2812 steuern will, nen Rc-PPM lesen und noch 10PWM Kanäle haben will, nehme ich ne Bluepill her statt wochen / monatelang das irgendwie in einen AtMega zu quetschen.
Ardunio ist nur ein Framework - weder eine Programmiersprache per-sé, noch ein bestimmtes Board. Die richtige Sichtweise ist "Es gibt Boards, für die eine Arduino-Integration existiert"
Mit der Idee wireless würde ich z.B. einen Gedanken an die ESP32 unter Ardino vergeben und mal etwas recherchieren, wie sich die einzelnen gewünschten "Sensoren" bzw. Messwerte realisieren lassen. Ggf. am besten in einem jeweils eigenen Thread.
Man könnte auch andere Arduino-unterstützte Boards nehmen und dann z.B. einen HC06/ HC05 Bluetooth Dongle anschließen.
Es könnte tatsächlich eine gute Idee sein, zu versuchen sich mit ChatGPT eine Lösung zu erfragen. Aber auch dafür muss man ein bisschen Orientierung haben. Ich habe es damit letztens hinbekommen auf Android eine Qt-Applikation mit Android-Boardmitteln zu einem festgelegten Alarmzeitpunkt neu starten zu lassen. Obwohl ich nur minimalst Ahnung von Android und Java habe.
UND das gute an ChatGPT - es wird niemals hochnäsig antworten :)
Aber es lügt einem im Zweifel straigt ins Gesicht und man muss die Antwort einschätzen und / oder verifizeiren.
Was bedeutet "Auswerten"?
Hier entsteht auch der Eindruck, der OP weiß nicht genau, wovon er redet. Messwerte aufnehmen (und vll. irgendwo als Zahl darstellen) ist das eine, Auswerten (Bewerten, in Kontext setzten) ist etwas anderes.
Was bedeutet hier "Auswerten" ?
Das ist ja prinzipiell richtig, nur trifft es hier absolut nicht zu.
Einfach noch mal die Fragestellung lesen. Brainstorming ist absolut
legitim.
Ja, das ist richtig. Nur leider kommt/kam beim TO genau Null/Nada/niente: Keine Auswahl der Sensorik, keine Idee, wie er die Probleme loesen will. Dann Widersprueche wg. Zeitrahmen.
Du hast in diesem Forum einen Fundus von Ingenieuren, Technikern, Naturwissenschaftlern und ambitionierten Bastlern die ihre Lebenszeit einsetzen sollen um das Problem des TO zu loesen. Und da muss der TO Vorarbeit leisten.
Diese Vorarbeit (und der Wille oder die Faehigkeit) fehlt.
Alle andere sollten sich mal überlegen ob man auf diese Art jemanden zum
weiter machen motiviert oder eher abschreckt!!
Überlege dir, wenn jemand zu einem erfahrenen Musiker ankommt, die Gitarre falsch hält, und ihn bittet ob er ihm nicht beibringen könnte, auch nur ein bestimmtes Lied in 2 Wochen so zu spielen, dass er auf der Hochzeit als Alleinunterhalter auftreten kann.
Die Antwort muss Nein sein, denn du unterschätzt wie unendlich viel der Musiker geübt hat und sich mit dem Thema beschäftigt hat, bis er es konnte.
Ich hatte die Impulse gegeben: zuerst muss erst einmal ermittel werden, wie die Sensoren funktionieren und welche Signale sie bei welchen Bedinungen wie stabil ausgeben.
habe ich jemanden gefunden der mit mir an diesem Projekt arbeitet
Was haben wir in diesem Thread gelernt? Die Abk. "Team" lautet ausgeschrieben "Toll, ein anderer machts".
ob man auf diese Art jemanden zum weiter machen motiviert
Und was sollte irgendwen motivieren, dich zu irgendwas zu motivieren, wenn du bei deinem eigenen von dir gestarteten Thread den ganzen Tag über nicht mitmachst?
Du wirst noch viel lernen müssen fürs echte Leben. Motiviere dich, damit anzufangen. Irgendwann motiviert dich nämlich keiner mehr, sondern du wirst selber auf eigenen Beinen stehen und ganz ohne Team dein Leben meistern müssen.
Ok, das war jetzt gegen Ende ein wenig philosophisch... ;-)
Wo genau kann man DEINE Hilfestellung zum Thema nachlesen?
Meine Hilfe ist moralischer Art.
Das ist aber auch nur eine Reaktion, welche besser ist als den Fragestellenden nur nieder zu machen.
Dabei bist du Cyblord , einer der Größten.
Deine Hilfe ist wie jemandem die Hand zu streicheln, der vom Baum gefallen ist und den Oberschenkel gebrochen hat. Es beruhigt ihn vielleicht, es hilft ihm aber überhaupt nicht.
Cyblord sagt ganz ohne Streicheleinheiten "Der ist ab, das dauert sicher 8 Wochen, bis du damit wieder gehen kannst!"
@TO
Nehme dir einen neuen Nick, die Fragestellung etwas Anders.
Ja, und vor allem: beim eigenen Thread aktiv mitmachen, angefragte Informationen beibringen und nicht in bester Bullshit-Bingo-Manier mit Fachbegriffen um sich werfen und behaupten, man könne das alles eh' schon, was man zur Lösung der Aufgabe braucht.
Deine Hilfe ist wie jemandem die Hand zu streicheln, der vom Baum
gefallen ist und den Oberschenkel gebrochen hat. Es beruhigt ihn
vielleicht, es hilft ihm aber überhaupt nicht.
Ich öffne nur einem Unbedarften die Augen in die Richtung, dass selbst dieses "kleine" Projekt noch aus einigen "Unterprojekten" besteht, die man einzeln für sich lösen kann. Und es auch sollte, wenn man was dabei lernen will oder mal Probleme damit bekommt.
Es geht doch nur erst einmal um ein Funktionsmuster welches schnell
erstellt werden kann.
Auch dafür braucht man Willen, Wissen und Können.
Oder Geld.
Oder einen, der es kann und es für umme macht.
Spannend waere wirklich eine Loesung fuer den Tankinhalt gewesen. Weil nicht ganz trivial (T ist o.B.d.A. trivial, rpm kann man mit einem Encoder oder Lichtschranke erschlagen), aber den Fluessigkeitstand in einem bewegten Tank, dass waere mal eine Aufgabe.
Spannend waere wirklich eine Loesung fuer den Tankinhalt gewesen.
Ich finde es erst mal spannend ob der TO sich zusammenrauft,
mal das Arbeiten anfängt und (Teil-)Lösungen präsentiert oder
ob er für alle Ewigkeit darauf wartet dass ihm fertige Lösungen
auf dem Silbertablett serviert werden.
Wie kommt es dass du so gar nichts zur Sache beitragen kannst? Bei deinen ach so großen Erfahrungen, deinen vielen Projekten, vielen Platinen, Modellbahnprojekten und ach so vielen Stunden mit irgendwelchen fiktiven Jugendlichen?
Am Ende doch nur ein bisschen trivialer Pfusch, heiße Luft und nichts dahinter?
Spannend waere wirklich eine Loesung fuer den Tankinhalt gewesen.
Ich finde es erst mal spannend ob der TO sich zusammenrauft,
mal das Arbeiten anfängt und (Teil-)Lösungen präsentiert oder
ob er für alle Ewigkeit darauf wartet dass ihm fertige Lösungen
auf dem Silbertablett serviert werden.
Mittlerweile habe ich jemanden gefunden der mit mir an diesem Projekt
arbeitet. Bis auf wenige Ausnahmen sind hier ja nur hochnasige
"Experten" unterwegs.
Von Software erzeugte Interrupts werden i.A. nämlich Exceptions
genannt, weil allgemein übliche Interrupts von irgendwelcher Hardware
erzeugt werden.
Naja, bei ARM ist das so klar nicht: der Systick-Interrupt (eine HW-Komponente) heißt dort Systick-Exception, weil er bspw. zum Cortex-M gehört und damit einen negativen enum-value hat. Andererseits heißen die Software-Triggers für die EXTI bei den STM32-ARM dann Software-Interrupts.