- 3D-Druck Einstieg und Tipps         
Seite 9 von 27 ErsteErste ... 789101119 ... LetzteLetzte
Ergebnis 81 bis 90 von 276

Thema: AutoMower von Elektrolux und Husqvarna

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676

    Re: Fabrikat Diagnose-Stecker

    Zitat Zitat von Busli
    ...Steckergehäuse JST ELP-04NV
    Crimpkontakt JST SLF-01T-P1.3E
    Danke!
    Jetzt fehlt nur noch einer der die Stecker auch ohne Mindestmenge von 1000 liefern will!
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  2. #2
    Hi Vogon,
    versuch einfach, diese Komponenten bei deiner Landesvertretung als Muster zu bekommen - 2-3 Stück inkl. Crimpcontakte sollten ja reichen. Ich hab das auch so gemacht und es hat geklappt.
    Gruss

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Jetzt möchte ich mal zeigen wie man sich mit dem AutoMower unterhalten kann.
    Der AutoMower hat ja eine Diagschnittstelle. Das ist eine RS232 aber mit 3.3 Volt. Den Schaltplan für den Pegelwandler findet man Hier: https://www.roboternetz.de/phpBB2/vi...?p=97409#97409

    Es geht aber auch anders. Die FM-Transceiver-Modul (RT868F4) von www.robotikhardware.de arbeiten ebenfalls mit 3.3 Volt. Es spricht nichts gegen eine direkten Anschluss. Auf der PC-Seit benutze ich das gleiche Transceiver-Modul auf der RN-Funk Platine.

    Das Protokoll des AutoMower ist:
    Anfrage an den AM:
    ----------------------------
    Byte 1: 0F Hex ; ist immer so.
    Byte 2 und 3: die Adresse der AM-Variable.
    Byte 4 und 5: sind normalerweise 0, bei einigen StringVariablen als Index.
    ----------------------------
    Der AM antwortet dann:
    Byte 1: 0F Hex
    Byte 2 und 3: die angefragte Adresse.
    Byte 4 und 5: Die gelesenen Daten.
    ----------------------------

    Hier mal ein Beispiel:
    -----------------------------------
    Connected to "Kommunikationsanschluss (COM1)"
    Request: 18.05.2006 10:52:04.46664
    0F 46 50 00 00 .FP..
    Answer: 18.05.2006 10:52:04.48264 (+0.0156 seconds)
    0F 46 50 E8 03 .FPè.
    Request: 18.05.2006 10:52:04.48264 (+0.0000 seconds)
    0F 46 52 00 00 .FR..
    Answer: 18.05.2006 10:52:04.49764 (+0.0156 seconds)
    0F 46 52 29 5C .FR)\
    Request: 18.05.2006 10:52:04.49764 (+0.0000 seconds)
    0F 46 54 00 00 .FT..
    Answer: 18.05.2006 10:52:04.51364 (+0.0000 seconds)
    0F 46 54 00 00 .FT..
    Request: 18.05.2006 10:52:04.51364 (+0.0000 seconds)
    0F 46 56 00 00 .FV..
    Answer: 18.05.2006 10:52:04.52964 (+0.0156 seconds)
    0F 46 56 0B 00 .FV..
    Request: 18.05.2006 10:52:04.52964 (+0.0000 seconds)
    0F 46 58 00 00 .FX..
    Answer: 18.05.2006 10:52:04.54464 (+0.0156 seconds)
    0F 46 58 E1 10 .FXá.
    -----------------------------------

    Mein Test-Programm in Visual-Basic
    Code:
    Option Explicit
    
    Dim a, b, dtr, rts, LogNum, PrStat, iEingabe As Integer
    Dim iFileNumber As Integer
    Dim sPath As String
    
    Private Sub Ch_Bat_Click()
    If Ch_Bat.Value Then
        Bat_I.BackColor = vbWhite
        Bat_U.BackColor = vbWhite
    Else
        Bat_I.BackColor = &H8000000F
        Bat_U.BackColor = &H8000000F
    End If
    End Sub
    
    Private Sub Ch_Cutt_Click()
    If Ch_Cutt.Value Then
        Cutt_Sp.BackColor = vbWhite
        Cutt_I.BackColor = vbWhite
    Else
        Cutt_Sp.BackColor = &H8000000F
        Cutt_I.BackColor = &H8000000F
    End If
    End Sub
    
    Private Sub Ch_Logfile_Click()
    If Ch_Logfile.Value Then
        Ch_Logfile.ForeColor = vbRed
        LogNum = LogNum + 1
        sPath = App.path & "\" & "Log_" & Trim(Str(LogNum)) & ".txt"
        Open sPath For Output As #iFileNumber
    '    Print #iFileNumber,
    '    Print #iFileNumber, "Text1.Text"
    Else
        Ch_Logfile.ForeColor = vbBlack
        Close #iFileNumber
    End If
    End Sub
    
    Private Sub Ch_Motor_Click()
    If Ch_Motor.Value Then
        Mot_Li.BackColor = vbWhite
        Mot_Re.BackColor = vbWhite
    Else
        Mot_Li.BackColor = &H8000000F
        Mot_Re.BackColor = &H8000000F
    End If
    End Sub
    
    Private Sub Ch_Protokoll_Click()
    If Ch_Protokoll.Value Then
        Log_Dez.BackColor = vbWhite
        Log_Hex.BackColor = vbWhite
    Else
        Log_Dez.BackColor = &H8000000F
        Log_Hex.BackColor = &H8000000F
    End If
    ' Debug.Print "bLog:="; bLog
    End Sub
    
    Private Sub Ch_Start_Click()
    Timer1.Interval = 5000
    If Ch_Start.Value Then
        Ch_Start.ForeColor = vbRed
        Ch_Start.Caption = "Stop"
        Timer1.Enabled = True
    Else
        Ch_Start.ForeColor = vbBlack
        Ch_Start.Caption = "Start"
        Timer1.Enabled = False
    End If
    End Sub
    
    Private Sub Ch_Uhr_Click()
    If Ch_Uhr.Value Then
        Ch_Uhr.ForeColor = vbRed
        Ch_Uhr.Caption = "Uhr Stop"
    Else
        Ch_Uhr.Caption = "Uhr Start"
        Ch_Uhr.ForeColor = vbBlack
    End If
    End Sub
    
    Private Sub Eingabe_Click()
       iEingabe = Val(Eingabe.Text)
        Form1.Eingabe.Visible = True         'Antwortfeld anzeigen
        Form1.Eingabe.SetFocus          'Cursor ins Textfeld setzen
        Me.KeyPreview = True
    End Sub
    
    Private Sub Lehrmachen_Click()
        Log_Dez.Text = ""
        Log_Hex.Text = ""
    End Sub
    
    Private Sub Cmd_ComSetup_Click()
        Load Form2
        Form2.Show
    End Sub
    
    Private Sub Form_Load()
    
        ' Einstellungen aus der Datei laden
        Me.Left = GetPrivateProfileInt("Fenster", "linkerRand", 200, App.path & "\" & "optionen.ini")
        Me.Top = GetPrivateProfileInt("Fenster", "obererRand", 100, App.path & "\" & "optionen.ini")
        LogNum = GetPrivateProfileInt("Log", "LogNum", 0, App.path & "\" & "optionen.ini")
        a = GetPrivateProfileInt("Comm", "Settings", 9600, App.path & "\" & "optionen.ini")
        b = GetPrivateProfileInt("Comm", "PortNr", 1, App.path & "\" & "optionen.ini")
        Form2.Combo4.ListIndex = b
        rts = GetPrivateProfileInt("Comm", "RTSEnable", 1, App.path & "\" & "optionen.ini")
        dtr = GetPrivateProfileInt("Comm", "DTREnable", 1, App.path & "\" & "optionen.ini")
        
        If b <> 0 Then
    If MSComm1.PortOpen = False Then     'if comport is disabled....
    '    ComSetup.Caption = "COM " & b & "    " & a
        MSComm1.CommPort = b
        MSComm1.Settings = a
        MSComm1.RThreshold = 1
        MSComm1.DTREnable = dtr
        MSComm1.RTSEnable = rts
        MSComm1.PortOpen = True           ' enable it.
    Form1.Cmd_ComSetup.Caption = "COM" & Trim(Str$(Form1.MSComm1.CommPort)) & ", " & Form1.MSComm1.Settings
        End If
    End If
    iFileNumber = FreeFile
    'sPath = App.path & "\" & "LogFile.txt"
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
        WritePrivateProfileString "Fenster", "linkerRand", Str$(Me.Left), App.path & "\" & "optionen.ini"
        WritePrivateProfileString "Fenster", "obererRand", Str$(Me.Top), App.path & "\" & "optionen.ini"
        WritePrivateProfileString "Log", "LogNum", Str$(LogNum), App.path & "\" & "optionen.ini"
    'If MSComm1.PortOpen = True Then
        WritePrivateProfileString "Comm", "Settings", MSComm1.Settings, App.path & "\" & "optionen.ini"
        WritePrivateProfileString "Comm", "PortNr", Str$(MSComm1.CommPort), App.path & "\" & "optionen.ini"
        WritePrivateProfileString "Comm", "DTREnable", Str$(dtr), App.path & "\" & "optionen.ini"
        WritePrivateProfileString "Comm", "RTSEnable", Str$(rts), App.path & "\" & "optionen.ini"
        If Form1.MSComm1.PortOpen Then Form1.MSComm1.PortOpen = False
    'End If
        If Ch_Logfile.Value Then Close #iFileNumber
        Unload Form2
    End Sub
    
    Private Sub Timer1_Timer()
    Dim iTemp As Integer
    Dim sTemp As String
    
    If Ch_Logfile.Value Then Print #iFileNumber, Date & " " & Time();
    If iEingabe > 0 Or iEingabe > 50000 Then
         If SendBefehl(iEingabe, 0, 3, iTemp) Then Ergebnis = Str$(iTemp) & " - " & Hex$(iTemp)
    End If
    
    If Ch_Uhr.Value Then
        If SendBefehl(14013, 0, 1, iTemp) Then sTemp = Right$(Str$(100 + iTemp), 2) & "."
        If SendBefehl(14009, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & "."
        If SendBefehl(14007, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & " "
        If SendBefehl(14005, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & ":"
        If SendBefehl(14003, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & ":"
        If SendBefehl(14001, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2)
        Uhrzeit = sTemp
    End If
    If Ch_Bat.Value Then
        If SendBefehl(491, 0, 3, iTemp) Then Bat_I = Str$(iTemp)
        If SendBefehl(12020, 0, 3, iTemp) Then Bat_U = Str$(iTemp)
        If SendBefehl(12030, 0, 3, iTemp) Then Bat_U = Bat_U & " - " & Str$(iTemp)
        If SendBefehl(12000, 0, 3, iTemp) Then Bat_AH = Str$(iTemp)
        If SendBefehl(495, 0, 3, iTemp) Then Bat_AH = Bat_AH & " - " & Str$(iTemp)
        If SendBefehl(563, 0, 3, iTemp) Then Bat_Temp = Str$(iTemp)
        If SendBefehl(565, 0, 3, iTemp) Then Bat_TempL = Str$(iTemp)
    End If
    If Ch_Cutt.Value Then
        If SendBefehl(12010, 0, 3, iTemp) Then Cutt_Sp = Str$(iTemp)
        If SendBefehl(4750, 0, 1, iTemp) Then Cutt_I = Str$(iTemp)
        If SendBefehl(557, 0, 1, iTemp) Then Cutt_I = Cutt_I & " - " & Str$(iTemp)
    End If
    If Ch_Motor.Value Then
        If SendBefehl(9408, 0, 1, iTemp) Then Mot_Li = Str$(iTemp)
        If SendBefehl(410, 0, 1, iTemp) Then Mot_Li = Mot_Li & " - " & Str$(iTemp)
        If SendBefehl(9407, 0, 1, iTemp) Then Mot_Re = Str$(iTemp)
        If SendBefehl(409, 0, 1, iTemp) Then Mot_Re = Mot_Re & " - " & Str$(iTemp)
    End If
    
    If SendBefehl(497, 0, 3, iTemp) Then Status = Right$("0000" & Hex$(iTemp), 8)
    If Ch_Logfile.Value Then Print #iFileNumber,
    
    End Sub
    
    Public Function SendBefehl(Adresse As Integer, SubAdr As Integer, typ As Byte, ByRef Daten As Integer) As Boolean
    Dim i, j, n As Long
    Dim dat, adr As Long
    Dim sData() As Byte
    
    SendBefehl = False
    For j = 1 To 10
    PrStat = 0
    adr = 0
    dat = 0
    
    MSComm1.Output = Chr$(&HF) _
        & Chr$(HiByte(Adresse)) _
        & Chr$(LoByte(Adresse)) _
        & Chr$(HiByte(SubAdr)) _
        & Chr$(LoByte(SubAdr))
        
        DoEvents
        n = 0
        Do
            n = n + 1
            If n > 50000 Then
                Exit Do
            End If
     
            sData = MSComm1.Input
            For i = 0 To UBound(sData())
    ' Debug.Print "i:="; i; j; n; PrStat; sData(i); adr; dat
            Select Case PrStat
            Case 4
                If (typ And &H2) Then dat = Bytes2Word(sData(i), dat)
                PrStat = 5
            Case 3
                If (typ And &H1) Then dat = sData(i)
                PrStat = 4
            Case 2
                adr = (adr * CLng(256)) + sData(i)
                PrStat = 3
            Case 1
                adr = sData(i)
                PrStat = 2
            Case 0
                If sData(i) = &HF Then PrStat = 1
            Case Else
                PrStat = 0
                adr = 0
                dat = 0
            End Select
        Next i
        Loop Until PrStat = 5
        
        If adr = Adresse Then
            SendBefehl = True
            Exit For
        Else
            Beep
        End If
    Next j
       
    Daten = dat
    ' Debug.Print "n:="; n; Adresse; Daten; typ
    If Ch_Protokoll.Value Then
       Log_Dez.Text = Log_Dez.Text & Str$(Adresse) & "," & Str$(Daten) & Chr(13) & Chr(10)
       Log_Hex.Text = Log_Hex.Text & Hex$(Adresse) & "," & Hex$(Daten) & Chr(13) & Chr(10)
    End If
    If Ch_Logfile.Value Then Print #iFileNumber, "," & Str$(Daten);
    
    End Function
    Oder, für mich noch besser, ein Testprogramm in PocketC um mit dem Pocket-PC sich das anzuschauen.

    Code:
    #include "/pocketc/pcheader.h"
    int wind_event, ret;
    int Status, Rx_Stat = 0;
    char zz, cc;
    
    int SendBefehl(int a, int sa, char typ, int &d) {
    	int i,j;
    	int t;
    	int dat =0, adr =0;
    
      t = (typ & 0x3);
    //putsl("a  :"+ (int)a +" hi:" + ((int)a>>8) + " lo:" + (int)(a & 0xff));
    //putsl("sa :"+ (int)sa +" hi:" + ((int)sa>>8) + " lo:" + (int)(sa & 0xff));
    	
    	for (i = 0; i < 2; i++) {
    		writebyte(ret, (char)0xf);
    		writebyte(ret, (char)a>>8);
    		writebyte(ret, (char)a);
    		writebyte(ret, (char)sa>>8);
    		writebyte(ret, (char)sa);
    
    	  	j = 3;
    		Rx_Stat = 0;
    		do{
    		  commwait(ret,0);
    		  wind_event = event(1);
    		  sleep(0);
    
    		  switch(wind_event) {
    		  case PM_COMMEVENT: {	// Serial Port
    			     do {
    			     cc = readbyte(ret);
    // putsl("1 Rx_Stat:"+ Rx_Stat +" j:"+j +" cc:"+(int)cc);
    
    			     switch(Rx_Stat) {
    			     case 0: {
    				       if ((int)cc == 0x0f) Rx_Stat = 1;						
           			       break;
    				       }
    			     case 1: {
    				       Rx_Stat = 2;						
    				       adr = ((int)cc)	<<8  ;
    		       	   break;
    				       }
    			     case 2: {
    				       Rx_Stat = 3;						
    				       adr = (adr & 0xff00)|(int)cc;
    			         break;
    				      }
    			     case 3: {
    				       Rx_Stat = 4; 
    				        if (t & 0x1) dat = (int)cc;
    			         break;
    				      }
    			     case 4: {
    				        Rx_Stat = 5;
    				       if (t == 0x3){
    								dat =  cc << 8 | dat;
                    }      
                    if (t == 0x2) dat = cc;
    			          break;
    				        }
    			     default: {
    				        Rx_Stat = 0;						
    	            	 	adr = 0;
    		             	dat = 0;
          			      break;
    				        }
    			     } // switch(Rx_Stat)
    		    }while(Rx_Stat !=5)
    		    break;
            }	
    		   case PM_CHAR:{ // Keyboard
    			    zz = key();
    			    puts((int)zz);
    			    break;
    			    }
    		   case PM_NONE: break;
    		   case PM_TIMER: {
                 j--; 
              	  break;
    			    }
    	     } // switch(wind_event)
         } while ((j > 0) && (Rx_Stat != 5))
    
    // putsl("1 adr:"+(int)adr+" dat:"+(int)dat);
    // putsl("2 Rx_Stat:"+ Rx_Stat +" j:"+j +" cc:"+(int)cc);
    
    	if (a == adr) {
    	  if (dat > 32768) d = ( dat | 0xffff0000) ;
        else d = dat;
        if (j) return 1;
    	}
    
      } // for i
    // putsl("fehler j:"+(int)j+" Rx_Stat:"+(int)Rx_Stat);
     	return 0;
    }
    
    main() {
    	int i,iTmp;
    	int Daten;
    	int nTimerID;
      int Cur_x =0;
      int BIalt[2] = {0,170};
    
    	clear();	// Bildschirm löschen
    //	showconsole();
    	nTimerID = settimer(1,200);	// 200ms Timer
    	putsl("AutoMower Comm");
    	ret = seropen(9600,"8N1N",1000);
    	putsl("seropen:" + ret);
     	if (!ret) {
    			alert("Fehler beim öffnen von COM1:");
    			quit();
    	}
    
      commsetmask(ret,EV_RXCHAR);
    
    /* ein test für das typ Flag 
     ausgabe auf der Console */
    
      SendBefehl(497,0,0,Daten) ;// Status
      puts("0-NUL:"+Daten+ ", ");
      SendBefehl(497,0,1,Daten) ;// Status
    	puts("1--lo:"+Daten+ ", ");
      SendBefehl(497,0,2,Daten) ;// Status
    	puts("2--hi:"+Daten+ ", ");
      SendBefehl(497,0,3,Daten) ;// Status
    	putsl("3-int:"+Daten);
    
      rect(0,70,240,270);
      rect(1,1,239,68);
    
    /* Akkuwerte */
     text(4,2,"Status:");
     text(150,2,"Bat_mAh:");
     text(4,18,"Bat_T:");
     text(80,18,"Bat_I:"); 
     text(160,18,"Bat_U:");
     
    /* Induktions-Schleife */
     text(4,34,"L_A0:");
     text(85,34,"L_N7:");
     text(165,34,"L_F9:");
    
    /* Motoren */
     text(4,50,"M_Mä:");
     text(85,50,"M_Ml:");
     text(165,50,"M_Mr:");
    
    for (i = 0;i < 5000; i++) {
      Cur_x = (i/5) % 240;
    
    /* Akku-Strom laden/entladen */
      settextcolor(0,255,255);
      setpenattr(0,1,0,255,255);
      if (SendBefehl(491,0,3,Daten)) { // Bat I
    		text(120,18,Daten+ "  ");
    		iTmp = 170-(Daten/25);
    //  iTmp=170;
         line(BIalt[0],BIalt[1],Cur_x,iTmp);
         BIalt[0] = Cur_x;
         BIalt[1] = iTmp;
      }
    
    /* Akku-Spannung in mVolt */
      settextcolor(0,255,0);
      setpixelattr(0,255,0);
      if (SendBefehl(12030,0,3,Daten)){ // Bat U
        text(200,18,Daten+ " ");
        setpixel(Cur_x,265-((Daten-1500)/125));
      }
    
    /* Akku-ladung in mAh */
      settextcolor(0,0,255);
      setpixelattr(0,0,255);
      if (SendBefehl(12000,0,3,Daten)){ // mAh
    		text(205,2,Daten+ "  ");
         setpixel(Cur_x,265-(Daten/15));
      }
    
    /* Akku-Temperatur */
      settextcolor(255,0,0);
      setpixelattr(255,0,0);
      if (SendBefehl(563,0,3,Daten)) {// Temperatur 
        text(45,18,Daten+ "  ");
        setpixel(Cur_x,265-(Daten*3));
      }
    
      setpixelattr(0,0,0);
      settextcolor(0,0,0);
    
    /* Mäher-Status */
      if (SendBefehl(497,0,3,Daten)) // Status
    		text(45,2,Daten+ ", ");
    
    /* BegrenzungsSchleife */
      if (SendBefehl(424,0,3,Daten)) // A0
    		text(40,34,Daten+ " ");
    /* Ladestation Nah-Signal */
      if (SendBefehl(426,0,3,Daten)) //N7
    		text(120,34,Daten+ "  ");
    /* Ladestation Fern-Signal */
      if (SendBefehl(427,0,3,Daten)) // F9
    		text(195,34,Daten+ " ");
    
    /* Motor- Mähwerk in rpm */
      if (SendBefehl(12010,0,3,Daten))
    		text(40,50,Daten+ "  ");
    /* Motor- Links in rpm */
      if (SendBefehl(9408,0,3,Daten))
    		text(120,50,Daten+ "  ");
    /* Motor- Rechts */
      if (SendBefehl(9407,0,3,Daten))
    		text(195,50,Daten+ "  ");
    
      sleep(1); 
    } // for 
    
    	killtimer(nTimerID);
    	fileclose(ret);
    //	return 0;
      alert("is fetich");
    		quit();
    }
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Hier habe ich damals eine Liste mit den AM-Variablen gefunden.
    http://groups.google.com/group/autom...4072e67caa245a
    Code:
    Automower G2 Variablen
    
    76      Average calculating number [0-9]
    77      Added cutting power
    87      Different between left & right [pulses]
    311     Long average blade motor currency [??]
    312     1 if average calculating is ready
    403     Pulses from left motor (inc. if forward)
    404     Pulses from left motor (inc. if forward)
    409     Power right
    410     Power left
    413     Length left motor (inc. if forward) [pulses]
    415     Left wheel direction: 1=forward
    416     1 if right wheel will go forward
    417     1 if forward right wheel
    418     1 if left wheel rotate forward
    419     Length past wire [pulses]
    424     Loop sensor (front&rear) A0
    425     Loop sensor A1
    426     Loop sensor N7
    427     Loop sensor F9
    441     Loop Quality signal (max 500)
    442     Loop sensor average F9
    458     Loop sensor Average (A0)
    475     Front loop sensor A0
    476     Rear loop sensor A0
    491     Current [mA]
    492     Charging time [min]
    495     Charging battery amount [mAh]
    496     Charging amount left when starting search [mAh]
    497     Statuscode
    556     Cutting speed [time/puls]
    557     Blade motor currency consumption [??]
    563     Battery temp. [°C]
    564     Time since charging [min]
    565     Latest temp. (when charging) [°C]
    566     Time to next temp. measure [Sec]
    569     Charging number [1-10]
    579     Reference wheel speed
    592     X angle [??]
    599     Up side down [??]
    624     Blade motor status
    637     Return fast
    644     1 if more then 30 pulses outside wire (A0)
    645     Time mower inside wire (A0) max 100 [ms]
    653     Return run without wire
    654     Return fast complex
    655     Return fast platanos
    656     Return wheel
    669     Missing puls signal (0 if no error)
    4748    Collision sensor[A/D]
    4749    Lift sensors [A/D]
    4750    Blade motor current [A/D]
    4751    Current left [??]
    4752    Current right [??]
    4812    Stop button  [A/D]
    7419    Length past wire [cm]
    9407    Speed right
    9408    Speed left
    12000   Used battery amount [mAh]
    12010   Blade motor speed [rpm]
    12020   Battery voltage [mV]
    12030   Battery voltage current compensated [mV]
    Das Prüfen kann man auch am AM machen.
    Im Werkzeug-Menue, Aktuelle Daten, Eigene.
    Dort kann man vier Adressen eigeben und sich deren Daten anzeigen lassen.

    Ich habe das mal mit meinen eigenen Erkenntnissen in Excel zusammen gestellt. (da ist ein VB-Makro zum umrechnen in HEX dabei)
    Angehängte Dateien Angehängte Dateien
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Ich habe mal Fotos vom Einbau des Funkmoduls in den AutoMOwer gemacht.
    Auf dem ersten Bild ist dar Transmitter in gut zu sehen.
    Das zweite Bild zeigt wie ich das Modul von unten an die Haube geklebt habe. Für die Antenne habe ich ein 2mm Loch in die Haube gebohrt und vor dem ankleben da durchgesteckt. Das Kabel, Rest einer alten Telefonschnur geht nach unten zum Diaganschluss.
    Auf dem dritten ist der aus einem ATX-Netzteil hergestellte Stecker zu sehen.

    Bild hier   Bild hier   Bild hier  



    Das Programm für den PocketPC habe ich nochmal gründlich überarbeitet nach dem ich festellen musste, das sich mein Protokoll ab und an verklemmt hat.

    Auf dem Screenshot sind zwei Mähfarten zu sehen.
    • Die Blaue linie zeigt die Messwerte der Akkuladung.
      Gut zu sehen ist wie der Wert auf 2200mAh nach abschluss der der Ladung gesetzt wird.

      Grün kompensierte Akkuspannung.
      Blaugrün die gemessene Akkuspannung.

      Rot ist die Akkutemperatur.

      Schwarz der Lade/EntladeStrom.


    Bild hier  
    Angehängte Dateien Angehängte Dateien
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  6. #6
    Eine Frage,

    wenn die Rasenfläche zu groß ist fuer einen Automover, ist es dann möglich 2 Automover über eine Ladestation zu betreiben oder muss ich 2 komplette Systeme installieren ?

    Gruss n0rdmann

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Da kann ich nichts dazu sagen ! Bei mir fährt nur der eine herum.

    Wenn ich aber nach dem gehe: http://www.automower.de/html/faq.html dann sollte es möglich sein.
    Zitat Zitat von www.automower.de
    Was kann ich tun, wenn mein Rasen größer als 2000 m² ist ?

    Sie können zwei oder mehr Geräte nebeneinander installieren. Wir betreiben heute weltweit schon mehrere "Mehrfach"-Installationen. Bisher beträgt die grösste von Automowern gemähte Fläche 16000 m²; sie wird gleichzeitig von 13 Geräten bearbeitet.
    Eventuell ist das aber mit dem BigMow dann besser zu machen. Der mäht gleich mit fünf Mähwerken neben einander.
    Bild hier  
    Das ist ein Mäher den Andre Colens seit einiger Zeit selbst vertreibt. Die Konstruktion hat er anscheinend genauso gemacht wie beim Solarmower/Automower für Electrolux. http://www.bigmow.biz/index.htm
    Bild hier  
    Wenn ich mit diese Info ansehe, dann gibt es den Bigmow auch mit Benzinmotor: http://bigmow.de/img/ProspektDeutsch02.gif
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  8. #8
    danke fuer die hilfe

    weiss jemand was der bigmow kosten soll ?

    gruss n0rdmann

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    26.08.2006
    Ort
    München
    Beiträge
    44

    AutoMover Wireless

    @Vogon

    Die Lösung zur Funkverbindung ist interessant. Sind auf der AutoMower-Seite am Transceiver-Modul einfach die 4 Adern angeschlossen (und mit dem Service-Port des AM verbunden) oder sind da noch weitere Bauteile verwendet?

    Wie ich das sehe, kann man dann Informationen vom AM auslesen, aber ihn steuern dürfte immer noch problematisch sein? Die STOP-Taste beispielsweise läßt sich offensichtlich nicht per Remote Control auslösen, auch nicht wenn statt der Taste die Ziffer "0" eingestellt ist (da sich die Tastatur nicht entfernt auslösen läßt).

    Ich denke immer noch über eine Lösung nach, beispielsweise bei Regen per Fernbedienung ein anderes Programm zu wählen, sodass er AM auch während der Fahrt stoppt und zur Ladestation zurück kehrt. Dazu müßte man ihn aber zunächst per STOP zu einer Änderung bewegen (Vermutung, wäre zu verifizieren wenn die Fúnkverbindung installiert ist.)

    -- Klaus

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Der Automower liefert die 3,3 Volt für das Funkmodul. Die RS232 Signal vom Automower gehen auch direkt zu Funkmodul. Die einstellungen für Baudrate und Sleepmodus sind fest an VCC bzw GND, aber einen kleine Elko habe ich dem Funkmodul gegönnt.

    Es gibt doch im AM eine Software-Stoptaste. Im Werkzeugmenue bei Sonderenstellungen findest du das.
    Per Digsoftware habe ich mal getestet. Eine Remotecontrol sollte möglich sein.
    Erst die Soft-Stoptaste - da bleibt der AM sofort stehen.
    Dann kann man die Motoren "manuell" über die Software ansteuern.

    Den Regensensor will ich mit einem AVR-Butterfly machen. Der hat eine RS232, jede menge frei Ports und ein Mini-Display mit Cursor-Taster.
    Nebenbei soll der auch noch den AM in der LAdestation lassen wenn es nichts zu mähen gibt. Das sollte doch mit der durchschnittlichen Mähkraft der letzten Stunden und Tage möglich sein.
    Wenn der Akku aufgeladen ist, es für den AM nichts zu tun gibt, kann der Batterfly auch die Ladestation vom Netz trennen. Er kann sie ja ab und zu mal einschalten und so den AM aufwecken.
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

Seite 9 von 27 ErsteErste ... 789101119 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test