- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: Zylindrischer Hausroboter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Es gibt Audio-(MP3)-Module, da kann man direkt einen Lautsprecher anschließen. Nicht größer, als das Verstärkerplatinchen (Grove - Speaker Plus). Mit Micro-SD-Karte für die MP3-Files. Anonsten weiß ich, dass man Sprachausgabe auch per PWM machen kann. Da gab es in den frühen 90gern mal ein programm für den PC, zur Ansage der Uhrzeit. ich glaube, das basierte auch auf PWM. Die PCs hatten ja richtige kleine Lautsprecher verbaut. Man konnte das sogar gut verstehen. Hier ist auch so ein Thema.

    Hier noch was zum Thema DA-Wandlung per PWM.
    Geändert von Moppi (18.01.2022 um 13:13 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    06.12.2021
    Beiträge
    11
    Danke für die Tipps bzw. kaskadierender Unterlegscheiben zur Überbrückung bei unterschiedlichen Schrauben/Lochgrößen. Das werde ich so ausprobieren.

    Hinsichtlich Audio passen die Vorschläge nicht zum geplanten Vorgehen. Mein Ziel ist es nicht, zuvor aufgenommene Audiofiles abzuspielen. Mein Ziel ist es, Konversationen vergleichbar zu Sprachassistenten wie Alexa, Siri etc. zu führen um ihm beispielsweise mitzuteilen, wo er hinfahren soll oder natürlich auch einfach "Spaß"-Konversationen für die Kids.

    Nachdem ich kurzzeitig mit dem Gedanken gespielt hatte, die nötigen Machine Learning Modelle irgendwie auf dem Raspberry laufen zu lassen, habe ich wegen der Komplexität (und letztlich nicht nur MEINER sondern auch der begrenzten Kapazität des Pi) davon wieder Abstand genommen.

    Mein aktueller Plan setzt stark auf Cloud Services und sieht wie folgt aus:

    1. Bei aktivem Monitoring (ggf. getriggert durch weitere Sensoren wie den Ultraschallsensor, d.h. nur Monitoring, wenn jemand "in der Nähe" ist, der Roboter also schon die physische Präsenz von jemandem festgestellt hat) werden die Geräusche fortlaufend im 5-Sekunden Rhytmus daraufhin untersucht, ob es sich um allgemeine Geräusche oder Sprache handelt. Das wäre noch lokal umzusetzen, also auf dem Raspberry. Open Source Libs in die Richtung hatte ich schon gefunden. Muss ich nur noch wiederfinden...
    2. Bei erkannter Sprache wird der Audio-Ausschnitt an einen Cloud Service gesendet, der das Gesprochene in Textform zurückliefert (aktuell gehe ich von der Microsoft Azure Cloud aus - für den Privatgebrauch ist da genügend Volumen kostenfrei zum Spielen enthalten).
    3. Der Textstring wird in einem weiteren Schritt mit einem weiteren Cloud Service (ggf. auch MS Azure, oder SAP Conversational AI, damit habe ich beruflich Erfahrung, auch kostenfrei nutzbar ohne Limit für Privatgebrauch) interpretiert, d.h. Intents und Sentiments werden gelesen und zurückgeliefert.
    4. Der Roboter kann dann die Aktivitäten ausführen, die auf die Intents gemapped sind und/oder eine Sprachantwort zurückgeben.
    5. Bei Sprachantwort wird der Text wiederum an die MS Azure Cloud zur Umwandlung in ein auszugebendes, gesprochenes Audio-File gebeben.
    6. Das Audio-File wird auf dem Roboter ausgegeben.

    Irgendwo zwischen Schritt 1 und 3 muss noch das Triggerwort ("Hey, Kurt!") eingebaut werden, so dass der Roboter nicht alle unsere Gespräche mühsam verarbeiten muss.

    Im Praxistest wird sich zeigen, wie sich der Datenaustausch mit multiplen Cloud-Services verhält und ob die Antwortzeiten entsprechend ausreichend sind. Siri muss aber auch manchmal 2-3 Sekunden "überlegen", bis eine Antwort kommt...

    Eigentlich brauche ich also einen Lautsprecher, der Schritt 6 kann (kann das der einfache Lautsprecher an der PWM-Schnittstelle leisten?) und ein Mikrofon, welches das ständige Monitoring liefert.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Zitat Zitat von rhino25782 Beitrag anzeigen
    Eigentlich brauche ich also einen Lautsprecher, der Schritt 6 kann (kann das der einfache Lautsprecher an der PWM-Schnittstelle leisten?) ...
    Diese Frage sollte hinreichend beantwortet sein, mitsamt Hintergrundinformationen warum und wie das funktionieren kann. Nochmal zur Erinnerung:

    Da das offenbar alles fix und fertig sein soll und am besten, ohne viel Arbeit um das Wie und Warum zu investieren, würde ich einen DA-Wandler-Baustein suchen, der zusätzlich angeschlossen wird und ein sauberes Signal liefert. Zum Beispiel sieht das sehr brauchbar aus, ist ein kleines Break Out und funktioniert offenbar. 12Bit sollten ausreichend sein. Anzusteuern ist der MCP4725 per I2C, und auch noch programmtechnisch in einem sehr übersichtlichen Rahmen. Da hat man ein Analogsignal im Bereich 0 bis 5V (wie im Beispiel), was schon ganz anständig ist. Das Signal müsste man wohl über einen Kondensator (10µF) auskoppeln, dann an einen Spannungsteiler (Poti, 10k gegen GND z.B.; die 10k müssen zwischen Kondensator und GND liegen) führen und von da (mittlerer Spannungsteilerabgriff) an einen (Deinen) Verstärker. Ganz ohne experimentieren wird's wohl aber nicht gehen.

    Gruß
    Moppi

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.12.2021
    Beiträge
    11
    Hallo zusammen,

    fast 9 Monate später, wird es mal wieder Zeit für ein Update - damit das hier nicht zu einem dieser verwaisten Threads verkommt, die mal angefangen, aber nicht weitergeführt werden.

    Beim Roboterprojekt hat es in der Tat einige Verzögerungen (musste zwischendurch kurz heiraten) und auch Rückschläge gegeben (ich habe mir einmal die SD-Karte versaut und musste von vorne beginnen, hatte zum Glück eine Sicherung des bis dahin entwickelten Python Codes und wir mussten eine ganze Zeit frickeln, bis wir den Papierkorb wackelfrei und sicher am Chassis befestigt hatten), aber mittlerweile nimmt der Roboter (er heisst Kurt) echt Form an. Natürlich steckt weiterhin noch viel Arbeit drin, insbesondere in der weiteren Programmierung.

    Mal eine kurze Beschreibung, wie der aktuelle Entwicklungsstand ist:

    - Die weiter oben erwähnte, zweigeschossige, dreieckige Metallchassis mit den drei omnidirektionalen Rädern und drei 9V DC Motoren bildet weiterhin die Basis des Projekts.
    - Das "Gehirn" ist der oben bereits erwähnte Raspberry Pi 4 - bisher habe ich noch keine Verwendung für einen seperaten Microcontroller zur Motorsteuerung gefunden.
    - Auf dem Raspberry Pi sind die folgenden HATS - in der Reihenfolge - im Einsatz:
    * Adafruit Motor HAT um die drei Motoren zu kontrollieren. Die 9VMotoren werden aktuell einfach durch 6 x 1.5 AAA Alkaline Batterien angetrieben, das gefällt mir noch nicht. Siehe unten -> Offene Themen
    * Seeed Grove Base Hat - zur Anbindung von Sensoren. Aktuellen sind aus dem Grove-Universum drei US-Sensoren (unterhalb der Chassis in alle drei Richtungen montiert), ein Kompass, ein Accelerometer montiert. Richtig nutze ich bisher nur einen US Sensor. Mit der Genauigkeit ds Kompass und des Accelerometers bin ich noch nicht zufrieden, hatte aber auch noch nicht genug Zeit, mich wirklich damt zu beschäftigen.
    * PiJuice zur Stromversorgung. Den PiJuice kann man als Uninterrupted Power Supply verwenden, ich habe aktuell noch testweise eine 5000 mah Li-Ion Batterie angeschlossen (ebenfalls siehe unten -> Offene Themen). Man kann hier dann einfach zum Laden oder für den Netzbetrieb den PiJuice über microUSB mit Strom versorgen, ohne dass zwischendurch der Pi ausgeschaltet werden müsste (wie bei der alten Lösung mit simpler Powerbank). Zusätzlich bietet der PiJuice Status-LEDs für die Stromversorgung und eine User-programmierbare LED, mit der ich den Roboterstatus anzeige (Betriebsmodi) und mehrere Buttons und eine Buttonschnittstelle. Da die Buttons durch den Papierkorb nicht mehr erreichbar sind, habe ich als "Masterswitch" einen simplen Button unterhalb der Chassis, bequem mit der Hand zu erreichen, montiert und verbunden. Damit kann ich den Raspi hochfahren (und das kurt.py Script mit dem Bootvorgang starten lassen) sowie runterfahren (long press) oder hard reset (very long press) initieren. Gefällt mir in Summe sehr gut!
    * Seeed ReSpeaker 4mic Array. Das Array funktioniert deutlich besser zur Audio-Aufnahme als das zuvor verwendete USB Mikrofon. Zusätzlich ist eine Richtungserkennung möglich, damit möchte ich implementieren, dass der Roboter sich bei Ansprache in Richtung des Sprechers dreht. Funktioniert noch nicht ganz sauber, wird aber. Zum Schluss verfügt das Mic Array über 8 LEDs, mit denen sich ein Alexa-ähnliches visuelles Feedback während des Gesprächs (oder auch in anderen Situationen) erzeugen lässt. Zugunsten dieser Lösung haben wir auf eine außerhalb des Mülleimers montierte LED, LCD oder sonstige Display-Vorrichtung verzichtet.
    - Weiterhin angeschlossen sind ein einfacher USB Speaker zur Audio Ausgabe sowie die Raspi Kamera. Die Kamera ist die aktuell einzige Komponente, die außerhalb des Mülleimers montiert ist, das flache Kabel wird durch eine gefeilte Aussparung im Papierkorb geführt und durch eine Deko-Fliege abgedeckt.

    Software-seitig kommen neben der eigenen Python-Programmierung insbesondere espeak-ng zur Sprachausgabe ohne Cloud Anbindung sowie die Porcupine und Rhino Wake-Word und Speech2Intent Engines (ebenfalls ohne Cloud Anbindung rein lokal) zum Einsatz. Einzige Cloud-Anwendung aktuell ist die Gesichtserkennung (To Do für die nächsten Tage: Objekterkennung).

    Die Fähigkeiten des Roboters aktuell sind:

    - Wie bisher Bewegungen in vier Richtungen, gesteuert über Spracheingabe ("Hey Kurt, fahre vorwärts!" , "Hey Kurt, drehe Dich um Kreis!" -> "Okay, drehe mich im Kreis!")
    - Allgemein kurze Unterhaltungen ("Hey Kurt, wer bist Du?" -> "Ich bin Kurt, ohne Helm und ohne Gurt!")
    - Gesichtserkennung bei Ansprache oder bei Frage "Wen siehst Du?" ("Hey, Kurt!" -> "Hallo, Patrick!")
    - Hinderniserkennung vorwärts (stoppt bei 20 cm, mittels Ultraschallsensor)
    - Selbstständigws Verändern der Betriebsmodi (d.h. bei Inaktivität geht der Roboter in einen "Sleep" Modus über, wo die Spracherkennung etc. nicht weiterlaufen und nur einige Sensoren aktiv bleiben)
    - Web Oberfläche zum monitoren. Noch nicht ganz fertig, zeigt aktuell die ausgegebenen Log Infos (die sonst in der Shell angezeigt werden) im Web Browser an und wird künftig zusätzlich Batteriesstand/Temperatur (über API vom PiJuice verfügbar), letztes mit der Kamera aufgenommenes Bild (oder Video Stream) sowie die Navigationskarte (bei autonomem Navigieren, ganz große Baustelle noch) anzeigen und einen "Notaus" Button (falls man den physikalischen Button nicht erreichen kann und Kurt sich irgendwo verzettelt) enthalten. Web Oberfläche natürlich nur im heimischen LAN nutzbar.

    Wer bis hierher gelesen hat, wird mit einigen bunten Bildern belohnt:

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_3827.jpg
Hits:	16
Größe:	148,7 KB
ID:	35833
    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_3828.jpg
Hits:	15
Größe:	87,9 KB
ID:	35832
    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_3840.jpg
Hits:	17
Größe:	152,8 KB
ID:	35831

    - - - Aktualisiert - - -

    In Summe bin ich superzufrieden mit dem bisherigen Fortschritt. Ich hätte mit deutlich mehr und nachhaltigeren Problemchen gerechnet.

    Nächste Schritte:

    Neben der autonomen Navigation (ich plane, die Hall Effect Sensoren der Motoren an die Digital Ports des Grove Base HATS anzuschließen und somit die RPM der einzelnen Motoren zu erhalten, um einen besseren Geradeauslauf zu realisieren sowie auch um die zurückgelegte Distanz näherungsweise zu ermitteln), habe ich aktuell eher für mich schwierige Knackpunkte hinsichtlich der Energieversorgung.

    Die Batterie für den PiJuice wird grundsätzlich mit einem JST-Stecker geliefert (dreipolig). Man muss den abtrennen und die einzelnen Drähte an das Batterieterminal schrauben. Da ich die Batterie künftig auf dem Mülleimer (also der umgekehrten Unterseite) und unterhalb des Huts befestigen möchte, muss ich die Verbindung verlängern. Hier hat mein erster Versuch (mit eigenen Lüsterklemmen) nicht funktioniert, da scheint nicht genug Strom anzukommen. Bin nicht sicher, woran das liegt.. ggf zu dünne Drähte. Gibt es hier Empfehlungen, welche Drähte/Kabel zu verwenden sind? Spielt hier die Länge der Kabel (also im Bereich von ca 15 cm im Original bis zu vielleicht 30-40 cm in der verlängerten Variante) eine signifikante Rolle? Eher nicht, oder?

    Mein aktuell größtes Problem: Ziel ist es, dass Kurt sich selbstständig laden kann. Für die Raspi Stromversorgung über den PiJuice werde ich dazu ein induktives (wireless) Lademodul unten anbringen und eine passende Ladestation bauen (bzw. 3D-drucken lassen). Das induktive Lademodul (beide Parts) habe ich bereits. Es lädt mit 5V, 1.3. A max. Für den PiJuice sollte das in Ordnung gehen, der wird auch in vielen Szenarien über Solarzellen gespeist, das sehe ich mal als vergleichbar an (von der Stabilität des Ladestroms her).

    Wie aber gehe ich mit der Stromversorgung für die drei Motoren um? Ständig 6 AAA Batterien auszutauschen ist erstens nicht autonom und auch nicht besonders nachhaltig. Im Idealfall würde Kurt an der Ladestation auch neuen Strom für die Motoren bekommen. Ich spiele hier mit dem Gedanken, einen 11.1V Lipo (also dreizellig á 3.7V) zu verwenden. Die Motoren sind in einer Spezifikation mit 9V und in einer anderen Spezifikation mit 9-12V beschrieben, daher würde ich mal optimistisch denken, dass sie mit einem 11.1V Lipo gut (oder sogar besser als aktuell?) betreibbar sind. Aber wie bekomme ich das Ladeszenario umgesetzt? Das Laden des 11.1V Lipos alleine fordert m. E. mindestens schon einen Balancer (so dass die drei Zellen gleichmäßig geladen werden) und entsprechende Overcharge-Protektion (oder gibt es vernünftige Lipos, die das bereits eingebaut haben?). Habe ich irgendeine Chance, den Eingangsstrom des induktiven Lademoduls erstens zu splitten und einen Teil zum PiJuice zu senden und einen Teil dann noch per Voltage Regulator von 5 V auf z.B. 12 Volt zum Laden des 11.1V Lipos anzuheben? Oder ist das völlig illusorisch? Hier kommt wieder meine relative Elektronik-Ahnungslosigkeit ins Spiel, aber ich möchte auch ungern riskante Experimente mit Lipos eingehen und einen Brand im Haus riskieren. Alternativ zum Splitten wäre ggf. noch eine zeitliche Unterscheidung denkbar, dass der Roboter selbstständig zunächst den Akku für den Raspi lädt und dann, per Relais o. Ä., den Charger für den Motor-Lipo aktiviert. Fragezeichen.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Da die Anwendung eher einer USV, denn einem Batteriebetrieb gleicht (letztlich steht auch ein Staubsaugerroboter 95% der Zeit nur in der Ladestation), würde ich mich in dieser Richtung mal umschauen (Suchbegriff Mini-USV). Letztlich müssten diese Geräte alle notwendigen Zusatzbeschaltungen (Schutz/Balancer/Ladeschaltung) bereits enthalten.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    06.12.2021
    Beiträge
    11
    Naja - der PiJuice ist ja ein USV. Damit ist aber die Stromversorgung der Motoren noch nicht gelöst. Ich habe zu der spezifischen Frage einen Thread im Forum "Elektronik" aufgemacht:

    https://www.roboternetz.de/community...it-und-Motoren

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Es gibt mittlerweile einige Mini-USVs mit mehreren Ausgängen für unterschiedliche Spannungen (5,9,12V).
    Ich kann da jetzt zwar keine direkt empfehlen, aber es scheint ein wachsender Markt zu sein.
    Such mal nach "Mini USV 12V".

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    ob jetzt wasser oder löschkugeln ist eigentlich egal... Man müsste das ganze doch ein bischen im verhältnis sehen. Wieviel LiPo akkus sind geschätzt weltweit unterwegs? 10 milliarden? 100milliarden? Und wieviel davon sind explodiert, bzw. haben sich entzündet? 10? 100? 1000? natürlich ist es besonders schlimm wenn sowas einem selber passiert, aber munitionskisten? Fährst du eigentlich noch auto? Keine angst bei den millionen von rückrufaktionen? mann ey... es gibt keine perfekte 100%tige technik, aber das weisst doch jedes kind....

    nur als info: ich habe ein sensor entwickelt der mir nachts signalisiert wenn ich auf dem rücken liege. Soll ich nicht, wegen schlafapnoe. Das ding muss ich mir mit einem gurt um die brust schnallen, sonst funktionioert es nicht. Und womit wird das ding betrieben? Dreimal darfst du raten
    gruß inka

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi Jürgen,
    mich als blind zu bezeichen ist reichlich übetrieben, auch wenn ich eine brille trage sicher gehöre ich nicht zu den preppern, habe trotzdem bestimmte vorräte im haus und neuerdings auch ein batteriebetriebenes radio....

    was die "über"-beanspruchung von akkus betrifft ist sie nun einmal unterscheidlich ob ich diese in einem gemütlich vor sich hinfahrendem roboter verwende oder in einem RC-auto, wo die volle leistung !jetzt! angefordert wird. Und das gleiche ist beim laden - RC-freaks kann es nicht schnell genug gehen, auch ein zeichen der heutigen zeit...

    bei allem sollte man die kirche im dorf lassen...
    gruß inka

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.12.2017
    Beiträge
    169
    Hallo Inka,

    ich wollte dir nicht zu nahe treten!
    Wie gesagt, die elektrische Belastung der Akkus hat nichts mit der Brandgefahr zu tun. Ansonsten müssten die Akkus der Pylonenflieger, die mit fast 300 KM/h durch die Gegend düsen, schon im Flug abbrennen. Interessanterweise brennen die meisten Akkus ab, wenn sie einfach nur rumliegen. Wenn Du schreibst, dass man die Kirche im Dorf lassen soll - ja, da bin ich bei dir! Es muss jeder selbst entscheiden, welche Risiken er Vermeiden, Bekämpfen/Heilen oder Auslagern will.
    Ich habe meine Akkus auch nicht auf die Terrasse ausgelagert, aber sie liegen in zwei Munitionskisten, welche mit Rigipsplatten in Fächer unterteilt sind, in meinem Hobbykeller. Auf den Munitionskisten liegt ein 50l-Sack Löschkugeln, die jeden Brand hoffentlich sofort in CO2 ersticken.

    VG, Jürgen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Motor Empfehlung für Hausroboter
    Von Securio im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 22.03.2017, 05:17
  2. [ERLEDIGT] Zylindrischer Reflektor
    Von im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 20.01.2005, 13:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test