Ultraschallsensoren verwenden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo liebe Community,

    hoffe bin hier in der richtigen Rubrik für mein Thema.


    Zu meinem Projekt was ich mit 2 anderen Leuten verwirklichen will, für eine Facharbeit in der Technikerschule, brauche ich Rat und evtl. ein paar Unterstützungen der Programmierung.

    Unsere Überlegungen zu einer Facharbeit sind wie folgt.

    Leute fahren mit ihren Fahrzeugen in den Urlaub, wie erkennt man aber, wenn man den Kofferraum und sogar die Koffer-box auf dem Dach voll bepackt hat, ob das Fahrzeug überladen ist?
    Wir sagen uns, das muss einem im Fahrzeug angezeigt werden um mögliche Schäden am Fahrzeug vor zu beugen und hohe Strafen ab zu wenden die meist immens hoch sind.

    Erste Überlegungen vielleicht eine Firma mit ins Boot holen und was mit erfahrenen Leuten erschaffen.

    Irgendwann kam uns die Idee mit dem Rasberry Pi mit seinen Programmierten Gpio´s.

    Wir haben im Netz viele hilfreiche Anwendungen an Waagen und Co schon gesehen, doch die gehen meist nur bis ca.20 Kg was wir aber benötigen sind gewischte bis zu einer Tonne.

    Ein paar Überlegungen weiter kam uns eine Idee wie wir die Gewischte mit einer art Skalierung evtl. erreichen könnten.

    Ein Ultraschallsensor erfasst den Weg zwischen Karosserie und der Achse bzw an einem uns erdachten Stelle. Das Signal von der Entfernung wird an den Pi gesendet. Der Wert wird dann von Zentimeter in Kilogramm auf einer Skaaler umgerechnet und dann an das LCD Display gesendet.

    Als Beispiel:
    Wir wollen somit eine Ausgabe erreichen das gesagt wird 1 cm Weg ist = 40 Kg Veränderung.


    Die Weg Veränderung von 1 cm entspricht 40 Kg im Display und wenn dann ein gewisses Gewicht erreicht wird von knapp 200Kg.
    Was eine Veränderung von 5 cm wären, eine rote Lampe an geht und dann im Display erscheint Fahrzeug Überladen.

    Jetzt zu meinen Fragen.

    Ist das mit einer Programmierung umsetzbar?
    Wenn es Umsetzbar ist kann man auch 4 Sensoren gleichzeig verwenden, um mehrere Punkte zeitgleich zu überwachen?
    Hat jemand Erfahrung in dieser Hinsicht was wir verwirklichen wollen?
    Gibt es vielleicht andere Sensoren bzw. andere Hardware Komponente die dafür besser geeignet sind?



    Hoffe Ihr könnt das Thema verstehen und mir Bezüglich der Fragen Helfen und Anregungen geben.

    :danke_ATDE: :danke_ATDE:

    Einmal editiert, zuletzt von toretti (3. September 2016 um 12:02)

  • Hallo toretti,

    prinzipiell funktioniert das mit den US-Sensoren.

    In Eurem Projekt werdet Ihr damit aber an Grenzen stoßen, die einen Einsatz wahrscheinlich verhindern werden.

    US-Messung basieren darauf, dass ein Signal gesendet wird und die Zeit bis zum Echo-Empfang gemessen wird. Das heißt, Ihr braucht hier ein Echtzeit-Betriebssystem, was der Raspberry Pi so nicht mitbringt. Hier ringen zu viele Prozesse um CPU-Zeit. RPi und US-Sensor sind tauglich, um zu sagen, ob eine Wand 3 m oder 2,5 m entfernt ist oder ob ein Buch 15 oder 25 cm breit ist (wenn man einen US-Sensor auf einer rotierenden Achse einsetzt).

    Für Messungen der Art, Karosserie sinkt um x mm, wenn 100 kg Beladung zugeladen werden, ist das Gesamtpaket meiner Meinung nach untauglich. Wenn Du zur Tanke fährst und und den Reifendruck wieder auf 2,3 atm bringst, dann steigt die Karosserie wieder um x/2 mm - und alles ist hübsch?

    Ich habe mal ein Bild angehängt, das von einem Tisch-Sonar gemacht wurde, den ich mal gebaut und programmiert habe. Ein Servo-Motor dreht sich um 180 °. Auf dessen Achse ist ein HC-SR04 montiert, der nach Drehung um 1 ° eine Abstandsmessung macht (je nach Entfernung der Objekte ca. 100 ° pro Sekunde). Man kann hier in unterschiedlichen Abständen Gegenstände erkennen. Man sieht hier aber auch die Streuungen in kurzen und längeren Abständen.


    Beste Grüße

    Andreas

    Bilder

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (3. September 2016 um 12:45)

  • Weitere Probleme: die Skalierung eures Gewichtes ist von Fahrzeugtyp, Fahrwerkszustand, Gewichtsverteilung etc. abhaenging. Und das nicht notwendigerweise linear.

    Das heisst ihr habt einen schoenen Batzen Kalibrierungsarbeit zu leisten, und das fuer jedes einzelne Fahrzeug. Das macht das ganze jenseits eines Prototypen in meinen Augen unpraktisch bis zur Unmoeglichkeit.

  • Da kann ich mich __deets__ nur anschließen, die Federn nichtlinear und müssten für jedes Auto(modell) neu kalibriert werden. Die Einzige Möglichkeit dafür wäre, eine art extrem kompakte Waage zu bauen. Die könnte z.B. aus 4 kleinen Luftkissen bestehen, die aufgeblasen und dann per Drucksensor das Gewicht abschätzen. Dafür bräuchte man eine sehr starke Pumpe. Vllt. gibt es auch kleine Wagen, die man z.B. per Funk miteinander verbindet und dann anzeigt.

    Gruß
    Chris

    PS: Und ja, ein Pi ist total unterfordert aber erreicht trotzdem nur schwer die Zeitanforderung. Arduino und co sind dafür besser geeignet.

  • Danke für die Antworten.

    Das was du da meinst Andreas ist uns auch schon im Kopf herumgeschwirrt. Auch wenn man über Bodenwellen bzw. unebene Fahrbahnen fährt sollte es funktionieren.
    Doch das Sind andere Probleme im eigentlichen Sinne.

    Die Sollbedingungen sollten schon von vorneherein stimmig sein, bei Fahrtantritt.
    Sprich Reifendruck stimmt, Stoßdämpfer und andere Bauteile des Fahrzeug sind im guten Zustand.

    Überlegungen von Schwingend gelagerte Sensoren ist eine Überlegung sowas zu verringern.

    Was für uns aber wichtig ist ob das so, mit unseren Überlegungen überhaupt umsetzbar ist.
    Und wenn dann erfahrene User uns sagen das ein Pi damit nicht zu recht kommt weil ein Echtzeit-Betriebssystem benötigt wird, was der Pi nicht bekommen kann, heißt das ja für uns, das wir überlegen müssen wie wir das Projekt anders umsetzten können.

    Doch laut dem ersten Satz gehe ich davon aus das es Funktioniert.
    Wenn ich also die Loop Programmierung so einstelle das nur alle 10 oder alle 15 Sek. ein Messwert abgefragt wird müsste man so das Echtzeit-Betriebssystem umgehen können.(Berichtige mich wenn ich falsch liege)
    So könnte man auch die Bodenwellen oder Hubbel umgehen, da keine direkte Messung sondern eine Verzögerte vorliegt.


    ait auch dir Danke für die Antwort, doch leider sehe ich in deinem Beitrag keine konstruktive Antwort.

    Ob der Pi unterfordert ist steht hier nicht zur Debatte, eher wenn er überfordert ist weil die Rechenleistung oder anderes zu gering ist.
    Der Arduino ist besser dafür geeignet? Bitte klare Aussagen warum er besser geeignet ist, wären viel hilfreicher.

    Edit: Antworten kamen während ich diesen Beitrag verfasste.

    @__deets__ 
    Ja für jedes einzelne Fahrzeug müsste es abgestimmt werden. Doch wir wollen ja nur ein Fahrzeug damit so einer Anlage ausstatten und nicht mehrer. Dass würde unseren Rahmen Sprängen :geek:


    ChrisvA
    Mit Luftbälgen, wie in einem Luftfahrwerk vom VW Phaeton oder art Kissen ist uns auch schon mal über den Weg der Gedanken gelaufen doch leider steht uns so ein Fahrzeug nicht zur Verfügung wo man das Signal von den Drucksensoren abgreifen könnte.


    Evtl. noch andere Tipps für mich?
    :danke_ATDE:

    Einmal editiert, zuletzt von toretti (3. September 2016 um 13:22)

  • Hallo toretti,


    Was für uns aber wichtig ist ob das so, mit unseren Überlegungen überhaupt umsetzbar ist.
    Und wenn dann erfahrene User uns sagen das ein Pi damit nicht zu recht kommt weil ein Echtzeit-Betriebssystem benötigt wird, was der Pi nicht bekommen kann, heißt das ja für uns, das wir überlegen müssen wie wir das Projekt anders umsetzten können.

    Eine Möglichkeit besteht in "Bare Metal" (Stichwort für eine Recherche).
    Link1
    Link2

    Im Prinzip geht es darum, ein Echtzeit-System ohne Betriebssystem (= mit Multitasking) zu erzeugen. In dem Moment spielen die geschilderten Probleme keine Rolle mehr.
    Auf dem Raspberry Pi läuft im Prinzip nur ein Task - DEINER.

    Das wäre jetzt der Ansatz, den ich für ein solches Projekt wählen würde - wenn es denn unbedingt der Raspberry Pi sein soll. Diese Problematik reduziert sich allerdings, wenn Ihr das Ganze auf einem Arduino umsetzt (siehe die Antworten der Kollegen).


    Doch laut dem ersten Satz gehe ich davon aus das es Funktioniert.


    Wie gesagt, prinzipiell ja, aber... Ihr müsst
    - Euch der technischen Risiken bewusst werden,
    - einen Plan haben / entwickeln, der jedes Problem identifiziert,
    - Know-How haben / erwerben, um Lösungen zu finden / entwickeln,
    - ausreichend zeitnah Software programmieren können,
    - ggf. auch elektronisch etwas zustandebringen,
    - und für Alles ausreichend Zeit mitbringen

    Denn ich kann mir nicht vorstellen, dass es für Eure Facharbeit reichen kann, hier im Forum ein paar Abfrage-Algorithmen in C/C++/Python/Gambas/Icon/Lazarus/... abzukupfern, bei Unterschreitung eines Abstandes eine LED grün und bei Überschreitung eines Abstandes eine LED rot leuchten zu lassen. Der größte Zeitaufwand wird ohnehin in der Korrelation von Abständen und Beladung bestehen - eine beliebig hirnlose wie wichtige Aktivität.


    Wenn ich also die Loop Programmierung so einstelle das nur alle 10 oder alle 15 Sek. ein Messwert abgefragt wird müsste man so das Echtzeit-Betriebssystem umgehen können.(Berichtige mich wenn ich falsch liege)


    Davon mache ich hiermit Gebrauch. Ein Multitasking-Betriebssystem dreht quasi an einem Rad. Die Stellung des Rades entspricht einem Task, der jetzt wieder ein paar µs oder ns Zeit bekommt. 50 Tasks später ist Dein Programm wieder mal an der Reihe. Wieviel Zeit zwischen zwei Fortführungen Deines Programm vergangen sind, weißt Du nicht, weil diese Zeitspanne sehr unterschiedlich ist, von Prioritäten abhängt, mit der sich andere Tasks vielleicht mal zwischengedrängelt haben, weil der Speicher mal wieder aufgefrischt werden musste, der Bildschirminhalt aufgefrischt werden musste, irgendeine Schnittstelle einen ganz wichtigen Interrupt ausgelöst hat, ...

    Ich hatte auf einem Raspberry Pi mal ein ganz kleines Programm geschrieben. Es macht im Prinzip nichts anderes, als zwischen zwei Sekundenwechseln (System-Uhr) einen Zähler hochzuzählen. Danach erfolgt eine Ausgabe. Das Programm wartet auf den nächsten Sekundenwechsel und wiederholt den Zählvorgang.

    Das Programm habe ich zum Einen längere Zeit auf einem recht flotten PC mit Ubuntu-Betriebssystem laufen lassen - und auf einem Raspberry Pi.

    Minimal-Wert und Maximalwert schwanken auf dem PC um ca. 3 %. Kann man mit zurecht kommen.
    Auf einem Raspberry Pi dagegen liegt der beobachtete Maximalwert bei rund 50% oberhalb des Minimalwertes. Da erübrigen sich jegliche Gedanken in Richtung zeitbasierte Messungen.

    Somit spielt es keine Rolle, wieviel Zeit Du zwischen zwei Messungen vergehen lässt. Ein Multitasking-Betriebssystem beschäftigt sich dann mit anderen Dingen.

    Dass das Betriebssystem des Raspberry Pi dabei sehr speziell ist, kannst Du u.a. auch daran erkennen, dass die CPU-Auslastung zwischen 2 und 4% liegt - auch wenn keine Deiner Anwendungen irgendwas macht. Es mag Unterschiede bei einzelnen Modellen geben, aber es geht in diese Richtung.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (3. September 2016 um 16:14)

  • Es ist doch so, ein Fahrzeug ist doch schon Überladen wenn eine Feder über eine bestimmte Grenze zusammengedrückt ist.
    Diesen Wert kann man herausfinden wenn man das Auto bis zum zulässigen Gesamtgewicht gleichmäßig belädt und den Weg der eingefahrenen Stoßdämpfer misst.
    Messen braucht man nur bis zum Fahrantritt. Also wenn sich das Auto bewegt, geht die Anzeige aus.
    Denn Sinn der Maximallast ist ja, dass noch genügend Federweg für Bodenwellen usw. da ist wenn das Auto voll ist.
    Diese Grenze kann man sehr einfach mit einer Federkontakt signalisieren.
    Ihr könnt es natürlich auch mit einen US-Sensor und Arduino machen. Da kann man die Abstände kontinuierlich bestimmen und Anzeigen.
    Das ganze wird mit Sicherheit auf Dauer nicht besonders zuverlässig (Verschmutzung usw) aber für ein paar Vorführungen reicht's bestimmt.
    Nach der guten Note wird der Schmarren wieder ausgebaut und alles ist gut.

  • Hallo Leute,

    vielen lieben dank für die Beiträge und Anregungen.
    Am Montag wird die Gruppe wieder beisammen sitzen und über die Beiträge und weiteren Möglichkeiten Fachsimpeln.
    Ulrich


    Schmeiß die Ultraschallsensoren weg !
    Denk mal über Dehnungsmeßstreifen nach !
    Die sind einfach anzubringen und leicht auszuwerten.

    Da kann ich nur sagen, das würde unseren Lehrer der uns Betreut gefallen der ist irgendwie ein Fanatiker, was die Dehnungsmessstreifen an geht.
    Haben damit auch schon experimentiert.
    Und eine Idee war es auch.
    Ein Kollege hat bei Conrad auch noch etwas gefunden was man benutzen könnte aber das erfahre ich auch erst am morgen.

    182
    Wenn es dir nichts ausmacht werde ich deine Idee mal mit aufnehmen und mit meinen Kollegen besprechen.


    Andreas
    Dir auch noch mal :danke_ATDE: .
    So wie deine Schreibweise der einzelnen Ansätze sind denke ich mal das wir doch eher zu den noobs gehören und die Programmierung zu kompliziert wäre. :blush:

    Doch werden wir nochmal genauer drüber gucken, ob es dann mit anderen Sensoren möglich und umsetzbar wäre.
    Wir haben uns halt irgendwie in den Kopf gesetzt es mit einer Art Display an zu zeigen.
    Nur die LED an zu steuern war uns zu einfach und einfallslos :cool:

    Für weitere Anregungen und Tipps bin ich weiterhin Dankbar.


    Werde mich dann in laufe der Woche nochmal hier äußern was wir weiter überlegt haben.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!