- 12V Akku mit 280 Ah bauen         
Seite 23 von 30 ErsteErste ... 132122232425 ... LetzteLetzte
Ergebnis 221 bis 230 von 390

Thema: Rasenrobo mit Induktionsschleife, Schaltbilder, Hallsensor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    33
    Beiträge
    200
    Hi,
    Ich mein den Widerstand zwischen + und der Schleife. Ich hab die Schaltung wie aus dem Wissensbereich nachgebaut. Ich verwende zum Antrieb 2 Trico Scheibenwischer Motoren von Pollin. Den Drehzahlregler hab ich grad fertig gestellt, ist auch auf meiner Seite zu finden.

    gruß, homedom

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2007
    Beiträge
    193
    Hallo,
    also den R5 mit 24 Ohm. Dieser Widerstand lädt nur den Kondensator auf die Betriebsspannung auf und trennt das Netzgerät vom Kondensator. Wenn nämlich der Impuls für die Schleife erzeugt wird bricht die Spannung am Kondensator etwas ein und das Netzgerät könnte ohne diesen Widerstand überlastet werden. Im Mittel nimmt die Schaltung unter 100 mA auf. Der Wert ist nicht kritisch, 5W sollten auf jeden Fall reichen. Der Widerstand hängt übrigens nicht in Reihe zur Schleife! Die Schleife wird durch den Transistor direkt mit dem Kondensator verbunden. Um die Schaltung nicht zu überlasten muss man sich selbst um eine Mindest-Schleifenlänge von ein paar Metern kümmern. Ich habe um an der Schleife entlangzufahren noch einen Differenzsensor gebaut, auf dem Holzgestell funktioniert er bestens, Schaltplan folgt bei Gelegenheit. Willst du auch an der Schleife zur Ladestation fahren?
    Gruß,
    Michael

  3. #3
    Hi,
    vielen Dank erst mal für dieses super Forum. Es hat mir schon sehr oft weiter geholfen. Leider bin ich elektrotechnisch nicht so ganz so gut unterwegs, deshalb entschuldigt mein Unwissen.
    Ich Suche nach einer möglichst einfachen Möglichkeit ausschließlich einem Draht entlang zu fahren. Der Draht soll dauerhaft in der Erde vergraben werden. Das Ziel soll sein vordefinierte Reihen (durch den verlegten Draht) ab zu fahren vom Start bis zum Ziel.
    * Welche Art von Sensor / Schleife verwende ich da am Besten?
    * Wie lange kann der Draht maximal sein. In meinen Fall bräuchte ich schon mehrere (2-3) KM.
    * Braucht man unbedingt ein Netzteil oder schaffen das auch Accus?
    * Welche Art von Draht wird verlegt? Ist es ein einfacher Draht oder muss es ein doppelter Draht sein?
    Hier noch eine kleine Zeichnung damit ihr besser versteht was ich meine:
    Klicke auf die Grafik für eine größere Ansicht

Name:	robotpath.png
Hits:	16
Größe:	3,9 KB
ID:	19824
    Vielen Dank für eure Hilfe.
    Markus

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260

    rasenrobo - Update

    Hallo,

    seit 2007 ist meine rasenrobo nun im Einsatz. Als letztes habe ich nochmal die Aufzeichnung seiner Route mit einer wlan-Camera verbessert. Anbei 3 Screenshots von heute nachmittag. Der erste kurz nach dem Start, der zweite nach getaner Arbeit, 1h und 45 min später. Das 3. Bild ist ein Ausschnitt kurz nach dem Start. Die Erkennung des rasenrobos ist ziemlich robust, z.B. sowohl im Schatten als auch direkten Sonnenschein. Programmiert ist die Bildverarbeitung mit Visual Basic 6. Rechts ist auf dem Screenshot das Programm mit dem die Telemetrie-Daten vom rasenrobo angezeigt werden (Spannung, Motorstrom, Drehzahl vom Rasenmähermotor, die 4 Schleifensensoren, Kurs, Kurssoll, Uhrzeit und graphisch die Fahrstecke vom rasenobo nach Odometrie(leider mit Drift)). Der rasenrobo wendet an der Begrenzungsschleife im wesentlichen nach dem Zufallsprinzip. Es ist aber auch möglich ihm ein bestimmtes Kurssoll vom Computer aus vorzugeben.

    Für den den´s interessiert, der Code für die Auswertung der wlan-Camera. Das wesentliche findet sich in der Sub Bildanalyse:

    Code:
    Private Type BITMAP
     bmType As Long
     bmWidth As Long
     bmHeight As Long
     bmWidthBytes As Long
     bmPlanes As Integer
     bmBitsPixel As Integer
     bmBits As Long
    End Type
    
    Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal   dwCount As Long, lpBits As Any) As Long
    Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Dim PicBits() As Byte, PicInfo As BITMAP, PicBits2() As Byte
    Dim Cnt As Long, BytesPerLine As Long
    Dim x As Long, Y As Long, M1 As Long
    Dim rot As Integer, grün As Integer, blau As Integer, rotalt As Integer, grünalt As Integer, blaualt As Integer
    Dim ErgebnisIR As Long
    Dim smax As Integer, xmax As Integer, ymax As Integer, smin As Integer, xmin As Integer, ymin As Integer, xminalt As Integer, yminalt As Integer, xmaxalt As Integer, ymaxalt As Integer, mousex As Integer, mousey As Integer, xmitalt As Integer, ymitalt As Integer
    Dim Pic(600, 600) As Integer, picalt(600, 600) As Integer, i As Integer, k As Integer, ii As Integer, kk As Integer
    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
    
    Private Sub Command1_Click()
     Picture2.Cls
    End Sub
    
    Private Sub Command2_Click()
     SavePicture Picture3.Image, "C:\efilm\picture" + Str(Int(Timer)) + ".bmp"
    End Sub
    
    Private Sub Command3_Click()
     On Error Resume Next
     Close #1: Open "C:\efilm\roboter2.txt" For Input As #2:
     Do
      Input #2, A$: i1 = InStr(A$, vbTab):  xmit = Left(A$, i1 - 1): ymit = Mid(A$, i1 +   1)
     If i1 > 0 And xmit > 0 And ymit > 0 Then
      If Abs(ymit - ymitalt) < 10 And Abs(xmit - xmitalt) < 10 Then
        Picture2.Circle (xmit, ymit), 1, vbGreen
        Picture2.Line (xmit, ymit)-(xmitalt, ymitalt), vbGreen
      End If:  xmitalt = xmit: ymitalt = ymit
     End If
    Loop Until EOF(2): Close #2: Open "C:\efilm\roboter2.txt" For Append As #1: Print #1, "Start" & Date
    End Sub
    
    Private Sub Command4_Click()
     If MsgBox("Löschen?", vbOKCance) = vbOK Then Close: Kill ("C:\efilm\roboter2.txt")
     Open "C:\efilm\roboter2.txt" For Append As #1: Print #1, "Start" & Date
    End Sub
    
    Private Sub Form_Load()
     Set fs = CreateObject("Scripting.FileSystemObject")
     On Error Resume Next
     'WebBrowser1.Navigate2 "http:\\www.t-online.de"
     WebBrowser1.Navigate2 "http://192.168.1.20/img/main.cgi?next_file=main.htm"
     GetObject Picture1.Image, Len(PicInfo), PicInfo
     BytesPerLine = (PicInfo.bmWidth * 2 + 3) And &HFFFFFFFC
     ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight) As Byte
     ReDim PicBits2(1 To UBound(PicBits)) As Byte
     Picture2.FillColor = vbGreen: Picture2.FillStyle = vbFSSolid
     Open "C:\efilm\roboter2.txt" For Append As #1: Print #1, "Start" & Date
     If Err.Number <> 0 Then MsgBox "Error :" & Err.Description  'Display error message
     Timer1.Interval = 200: Timer1.Enabled = True
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
    Close #1
    End Sub
    
    Private Sub Picture3_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
    mousex = x: mousey = Y
    End Sub
    
    Private Sub Timer1_Timer()
      Bildanalyse
    End Sub
    
    Sub Bildanalyse()
     t = Timer:  DoEvents
     ErgebnisIR = FindWindow(0&, "Form2")
     Set Picture1.Picture = CaptureWindow(ErgebnisIR, False, 5, 25, 500, 330)
     GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
     Dim S1(600, 600) As Integer, s2(600, 600) As Integer, S3(600, 600) As Integer, S4(600, 600) As Integer, S5(600, 600) As Integer
     smax = 0: xmax = 1: ymax = 1: smin = 0: xmin = 1: ymin = 1: xmit = -1: ymit = -1
     On Error Resume Next
     
     For k = 0 To PicInfo.bmHeight - 1: For i = 0 To (PicInfo.bmWidth - 1)
           blau = PicBits((k * (PicInfo.bmWidth) + i) * 2 + 1) And 31 '    1+2+4+8+16
           rot = Int(PicBits((k * (PicInfo.bmWidth) + i) * 2 + 2) / 8)  '128+64+32+16+8
           grün = (PicBits((k * (PicInfo.bmWidth) + i) * 2 + 2) And 7) * 4 + Int(PicBits((k * (PicInfo.bmWidth) + i) * 2 + 1) / 64) '1+2+4+128+64
           rotalt = Int(picalt(i, k) / &H400): grünalt = Int(picalt(i, k) / &H20) And &H1F:  blaualt = picalt(i, k) And &H1F
           picalt(i, k) = rot * &H400 + grün * &H20 + blau
           If mousex = i And mousey = k Then Text1.Text = mousex & "  " & mousey:  Text3.Text = rot: Text4.Text = blau: Text5.Text = grün
           S5(i, k) = 3 * blau - (rot + grün) - 3 * blaualt + (rotalt + grünalt)
     Next i:  Next k
     
    For k = 0 To PicInfo.bmHeight - 1: For i = 0 To (PicInfo.bmWidth - 1)
       If S5(i, k) <> 0 Then S1(i, k) = S5(i, k) + (S1(i - 1, k) + S1(i, k - 1)) / 9 * 4
          ii = PicInfo.bmWidth - i - 1: kk = PicInfo.bmHeight - k - 1:
       If S5(ii, kk) <> 0 Then s2(ii, kk) = S5(ii, kk) + (s2(ii + 1, kk) + s2(ii, kk + 1)) / 9 * 4
     Next i:  Next k
     
     For k = 0 To PicInfo.bmHeight - 1: For i = 0 To (PicInfo.bmWidth - 1)
        S1(i, k) = S1(i, k) + s2(i, k)
        If smax < S1(i, k) Then smax = S1(i, k): xmax = i: ymax = k
        If smin > S1(i, k) Then smin = S1(i, k): xmin = i: ymin = k
     Next i:  Next k
     If smax < 25 Then xmax = -100: ymax = -300
     If smin > -25 Then xmin = -200: ymin = -400
    
     If Abs(ymax - ymin) < 30 And Abs(xmax - xmin) < 30 Then
      ymit = (ymax + ymin) / 2: xmit = (xmax + xmin) / 2
      x = 0: Y = 0: M1 = 0
      For i = xmit - 15 To xmit + 15: For k = ymit - 15 To ymit + 15
        x = x + i * CLng(Abs(S1(i, k))): Y = Y + k * CLng(Abs(S1(i, k)))
        M1 = M1 + CLng(Abs(S1(i, k)))
      Next: Next:  xmit = CInt(x / M1): ymit = CInt(Y / M1)
    xx4:
     End If
     
     Text2 = xmax & "  " & ymax & "  " & xmit & "  " & ymit & "  " & smax & "  " & smin:  Text2.Refresh
     If Abs(ymit - ymitalt) < 10 And Abs(xmit - xmitalt) < 10 Then
        Picture2.Circle (xmit, ymit), 1, vbGreen
        Picture2.Line (xmit, ymit)-(xmitalt, ymitalt), vbGreen
        If xmit > 0 And ymit > 0 Then Print #1, xmit & vbTab & ymit
     End If:  xmitalt = xmit: ymitalt = ymit
      
     GetBitmapBits Picture2.Image, UBound(PicBits2), PicBits2(1)
     For Cnt = 1 To UBound(PicBits)
         If PicBits2(Cnt) = 7 Or PicBits2(Cnt) = 224 Then PicBits(Cnt) = PicBits2(Cnt)
     Next
     SetBitmapBits Picture3.Image, UBound(PicBits), PicBits(1):  Picture3.Refresh
    End Sub
    So viel für heute

    Beste Grüße

    Christian H
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Rasenrobo1.jpg   Rasenrobo2.jpg   Rasenrobo3.jpg  
    Geändert von Christian H (16.08.2012 um 20:12 Uhr)

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Hallo!
    ich möchte demnächst die Antriebsmotoren des rasenrobo durch brushless ersetzen. Der 2twichtigste Grund für einen selbstgebauten Rasenmähroboter ist ja, dass man immer was zum rumschrauben hat. Bei Hobbyking habe ich bestellt:
    2x #TR_B25A/3731 TURNIGY Basic 25A v3.1 Speed Controller = $31.72
    2x #TR2217/16/5690 Turnigy 2217 16turn 1050kv 23A Outrunner = $30.76
    3x #E3.17-0.5-10T/11210 Pinion Gear 3.17mm/0.5M 10T (1pc) = $2.97 (Motorritzel)

    Ich hoffe, dass die Motoren an die Getriebe vom RB35 passen. Die Motoren sind für 10 Zellen. Der rasenrobo werkelt mit 12 Zellen. Ich denke aber das passt, da ich den Motoren ja nicht die volle Leistung abverlangen muss. Bzgl. der Qualität der Motoren bin ich mir nicht sicher. Ist nicht mal angegeben ob Neodym-Magnete verbaut sind. Mit 60 €uronen für 2 Motoren mit Regler habe ich aber zumindest nicht zu viel in den Sand gesetzt. Denkt Ihr das könnte was werden??

    Grüße

    Christian H

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    33
    Beiträge
    200
    Hi,
    Achso, ich dachte der Widerstand begrenzt den Strom. Der 5W Widerstand wird sau heiß, ist das normal? Ja, ich wollte auch an der Induktionsschleife zur Ladestation fahren. Das wird aber glaubich noch etwas dauern, da ich die Ladestation als Art Garage bauen will in die er dann bei Regen und Dunkelheit fährt. Wie sieht es eigentlich mit dem Kabeldurchmesser der Induktionsschleife aus? Wie groß sollte der sein? Dass Netzteil muss ja nicht so viel Strom liefern oder?

    gruß, homedom

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2007
    Beiträge
    193
    Hallo,
    wenn der Widerstand recht heiß wird liegt das an einer recht hohen Einschaltdauer oder sehr hohen Wiederholfrequenz. Ich habe für meine Versuche zuletzt mit 150µs Einschaltzeit und etwa 15 Hz Wiederholrate gearbeitet. Die große Wiederholrate brauche ich um schneller an der Schleife entlang fahren zu können. Ich werde als Draht ein Erdkabel NYY 3*1,5mm² verwenden. Das ist für die Verlegung im Erdreich zugelassen und entsprechend haltbar. Für einen Springbrunnen hatte ich mal 10m Lautsprecherkabel im Boden verlegt und nach drei Jahren jedes Jahr nach dem Winter an einer anderen Stelle geflickt. Wenn man die drei Adern parallel schaltet kann man mit einem Ohm 250 m verlegen. Je höher der Widerstand wird umso geringer wird der Strom und somit auch die induzierte Spannung in der Spule. Ich erwarte bei mir etwa zwei mV Störspannungen durch den Mäher selbst. Die Drähte werden so verlegt dass der Mäher nie weiter als 15 m von einem Draht entfernt ist. Hier erhalte ich immer noch 15 mV bei 40 V und einem Ohm. Die Empfindlichkeit der Sensoren habe ich auf ca. 8mV eingestellt, es sollte also keine Probleme geben. Als Spule verwende ich die Relais 34-340276 von Pollin. Hier passt dann die Formel

    U~ = (Uc * 5,75) / (d * R)

    ganz gut (experimentell bestimmt).
    U~ = Spannung in der Spule in mVs
    Uc = Spannung am Kondensator
    d = Abstand zur Schleife
    R = Widerstand der Schleife

    An so eine Art Hundehütte habe ich auch schon gedacht. Noch edler wäre ein Akkuwechsler, man hätte dann keine Ladezeiten abzuwarten. Den Spaß werde ich mir allerdings nicht antun.

    Gruß,
    Michael

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    33
    Beiträge
    200
    Hi,
    das mit der Einschaltdauer kann gut sein. Ich hab sie vorerst wie im Wissensbereich eingestellt. 2ms an und 198ms aus. Kann ich ja aber noch ändern. Mein Problem is jetzt erstma das mein Elko nur 16V verträgt^^..
    Was mir noch sorgen macht ist die Auswertung der Sensoren. Ich hatte 4 Stück eingeplant, vlt reichen aber auch 3. 2 Vorne und 1(2) hinten. Mein Problem ist jetzt, wie ich das Softwaretechnisch lös, dass 4Stk gleichzeitig abgefragt werden und dabei noch das PWM für den Mähmotor erzeugt wird. Für den Mämotor brauch ich 1 Timer, für die Sensoren dann 4? Wie macht man die Auswertung am geschicktesten? Ein zweiten AVR wollt ich nicht unbedingt drauf packen..

    gruß, homedom

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.05.2007
    Beiträge
    193
    Hallo,
    möchtest du die Sensoren über ADC (wie Christian) oder über normale Digitaleingänge (wie ich) auswerten? Über ADC muss man einen nach dem anderen auswerten. Man lässt dazu einfach den Wandler laufen und irgendwann bekommt man Werte. Wenn man über Digitaleingänge geht liest man einfach den gesamten Port ein wann immer man Lust hat. Du brauchst aber nicht nur ein PWM sondern gleich drei, die Antriebsmotoren wollen schließlich auch angesteuert werden. Bei mir läuft alles über drei µC ab, einer für die beiden Antriebe, einer für die Kommunikation nach außen (Display, RS232, Taster, Fernsteuerung) und einer als Hauptrechner welcher auch gleich den Mähmotor bedient. Hoch- und Rücklauframpen sind für die Antriebe acuh unbedingt anzuraten. Genaueres kann ich dir zu den Controllern nicht sagen da ich nur mit PIC arbeite. Drei Sensoren sind aber nicht so optimal denn man muss immer bedenken dass der Mäher fast parallel zum Draht fahren kann und somit zur Hälfte außerhalb der Schleife fährt. Ich habe nämlich auch schon in diese Richtung überlegt um die Motoren nicht abschirmen zu müssen, bin davon aber vorerst wieder abgekommen.
    Gruß,
    Michael

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    33
    Beiträge
    200
    Hi,
    PWM für die Antriebsmotoren brauch ich nicht, die drehen langsam genug und müssen nur eingeschaltet werden. Ich glaub ich werd die Sensoren über Digitaleingänge machen. Muss man aber nicht auch die Impulsbreite messen? Was meinst du mit Hoch- Rücklauframpen? Mein Ziel ist es eigentlich mit nur einem AVR auszukommen. Wie sieht es bei dir eig. mit dem Gesamtstromverbrauch aus? Ich hab so das Gefühl, dass ich einen ziemlich hohen Verbrauch hab. 4A für die Antriebsmotoren und nochma 4-6A für den Mähmotor sind schon mal 10A. Der Akku hat 44Ah, wären also ca 4Std. Aber das Laden eines Bleiakkus dauert ja ziemlich lang. Ich werd mich mal nach einem anderen Akku umsehen, dann ist der gesamte Rasenmäher auch nicht so schwer und die Antriebsmotoren brauchen vlt weniger..
    gruß, homedom

Seite 23 von 30 ErsteErste ... 132122232425 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress