Archiv verlassen und diese Seite im Standarddesign anzeigen : Servotester für VB und Bascom
kalletronic
01.11.2008, 11:05
Hi Leute,
hab grad wieder ein Programm gefunden, das ich anfang des Jahres mal geschrieben habe. Es sollte zum testen von 4 Servos sein, ist aber erweiterbar. Leider war ich zu faul das Programm zu Kommentieren ](*,)
Für ein Servo funktionierte es jedenfalls einwandfrei, warum die letzten 3 ausgeklammert sind weis ich auch nich mehr so genau :-k .
Gestestet hab ich das ganze auf dem RN Board. Schaut mal drüber, vllt findet ihr was das man verbessern kann.
Im programm von Bascom is auch ein Teil von einem Projekt drinnen, das ich hier ma erwähnt habe( Hausbus ) und zwar die "Befehlserkennung",da hab ich versucht so ne Art Protokoll festzulegen wie die Befehle über die serielle Schnittstelle gesendet werden und dann ausgewertet werden, was besseres is mir da nich eingefallen #-o
Würde mich über Kritik freuen, (positiv und negativ O:) )
Mfg Kalle
kalletronic
14.12.2008, 15:51
Schade, nich mal ein negatiever Kommentar :-(
Guten morgen,
Dein Ansatz ist bestimmt für einige hier recht interessant. Ich habe mir das angeschaut.
Bei Deinem VB-Programm legst Du fest, dass es die Com-Ports 1 bis 10 auf dem PC gibt. Wird ein Port ausgewählt, den der Rechner nun aber nicht hat, stürzt es ab. Besser wäre, das Programm sucht erst einmal alle zur Verfügung stehenden Ports und gibt nur diese in Deiner Liste an. Das Programm stürzt dann nicht mehr ab.
Warum machst Du für jeden Servo eine Sub, wenn es jedesmal das gleiche ist? Eine Sub mit Parameterübergabe für alle Servos wäre besser.
Im Bascom-Programm würde ich das auch nicht per Input machen, da das Programm dann immer an dieser Stelle stehen bleibt und nichts weiteres machen kann. Meiner Meinung nach wäre es da besser mit dem Interrupt zu arbeiten.
Config Serialin = Buffered , Size = 10 'UART-Interrupt
und innerhalb des Programms den Interrupt mit
If Ischarwaiting() = 1 Then
End If
abzufragen, damit das Board auch noch etwas anderes durchführen kann.
Das sollte nun aber wirklich keine Kritik sein, sondern ich möchte Dir Verbesserungen zeigen.
Das Programm könnte auch noch so erweitert werden, dass über eine Voreinstellung z.B. die Anzahl der Servos angegeben und gesteuert werden können. Z.B. max. 25 Servos. Zusätzlich über eine Grafik die Stellung des jeweiligen Servos anzeigen. Dazu fällt mir so einiges ein. Aber Du machst das schon. Du solltest diese Software weiter entwickeln und dann hier zur Verfüng stellen, denn wie schon gesagt, wird das einige hier interessieren.
Viel Spass weiterhin damit.
Peter
kalletronic
17.12.2008, 21:32
Hi Peter, danke für die Vorschläge, ich werd mich da mal dran setzen, mal schaun was dabei raus kommt. Ich meld mich dann mal wieder wenns etwas geworden ist.
Gruß Kalle
Den COM - Error kannste auch über OnError abfangen
ohne Programmabsturz ... ist denk ich einfacher als alle
Ports erst testen.
Guten morgen
Genau damit wird es gemacht. Wenn ich den Errorlevel aber schon habe, kann dieser Level auch gleich ausgewertet werden. Wie willst Du es denn machen bei einer Com 24. Das ist so ein typischer Wert für eine virtuelle Com_Schnittstelle, denn Windows unterstützt ja eigentlich nur bis Com 16.
Peter
Hallo Kalletronic,
ich habe mal die Anbindung über die serielle Schnittstelle in Deinem Programm geändert und zwar so, wie ich es oben meinte. Wenn Du an dem Code Interesse hast, schick mir mal Deine Emailadresse per PM an mich, damit ich Dir den Code dann zuschicken kann.
Peter
kalletronic
18.12.2008, 21:06
Hi Peter,
Warum machst Du für jeden Servo eine Sub, wenn es jedesmal das gleiche ist? Eine Sub mit Parameterübergabe für alle Servos wäre besser.
Meinst du im VB-Programm?
Gruß Kalle
Guten morgen Kalle,
ich habe Dir gerade den Code zugemailt.
Ich meine den VB-Code. Aberschau Dir meinen Code mal an.
Peter
kalletronic
20.12.2008, 13:52
Hi Peter,
hab mir dein Programm grad runtergeladen und die EXE-Datai mal gersatret, sieht gut aus!! Nur kann ich mir den Quellcode nich ansehn, da ich das programm nicht öffnen kann. Es kommt ne Fehlermeldung daß die Datei Form1 nich geladen werden kann. In der Datei Form1.log steht dann folgebdes:
'0' konnte nicht geladen werden
Zeile 0: Datei C:\Dokumente und Einstellungen\Vaio FE\Eigene Dateien\Elektronik\uC Programme\Projek kann nicht geladen werden.
Gruß Kalle
Hi,
kommt bei mir auch auf diesem Rechner. Da habe ich wohl nicht alles auf meinen Stick am anderen Rechner kopiert. An den anderen Rechner komme ich aber erst am Montag Morgen wieder ra. Ich kopier Dir das dann noch mal und schicke es Dir per Email zu.
Peter
kalletronic
30.12.2008, 14:32
So, ich hab mal das Bascom Programm abgeändert, daß es über interrupt funktioniert:
'Servo Test für VB Programm SERVO
'Befehle über RS232 / RS485
'Erstellt 30.12.2008 By Kalle
'Befehlsaufbau: 1125
' ||
' |=Servobosition
' =Servonummer
$regfile = "m32def.dat"
$crystal = 16000000
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Portb = Output
Config Serialin = Buffered , Size = 20 , Bytematch = 13 'Bytematch=13 Interrupt bei CR auslösen
Enable Interrupts
Declare Sub Serial0charmatch()
'*** Variablendeklaration ***
Dim Befehl As String * 5
Dim Nummer As String * 2
Dim Aktion As String * 3
Dim Nummerbyte As Byte
Dim Aktionbyte As Byte
'*** Hauptprogramm ***
Do
If Len(befehl) > 0 Then
Print Befehl
Nummer = Left(befehl , 1)
Aktion = Mid(befehl , 2 , 3)
Nummerbyte = Val(nummer)
Aktionbyte = Val(aktion)
If Aktionbyte < 50 Then Aktionbyte = 50 'Positionsbegrenzung nach unten
If Aktionbyte > 150 Then Aktionbyte = 150 'Positionsbegrenzung nach oben
Servo(nummerbyte) = Aktionbyte
Print Nummerbyte
Print Aktionbyte
End If
Befehl = ""
Loop
Sub Serial0charmatch()
Input Befehl Noecho
End Sub
Wenn ich mich nich verlesen hab in der Hilfe, kann ich mit "Config Srevos" aber nur 2 Servos ansteuern, oder??
Gruß Kalle
hallo,
dukannst bis zu 16 Servos mit diesem Befehl ansteuern
SMB-Soft
24.01.2009, 19:39
Hallo zusammen,
ich habe die Programme mal getestet bei mir geht nichts.
Ich verwenden einen Mega 8, ich habe die Parameter entsprechend angepasst. Die Fuse Bits sind alle aus.
Ich habe die Servos an PB0 und PB1 angeschlossen.
Die Servos wollen sich einfach nicht bewegen. Hat jemand einen Tip warum ?
Gruss
Stefan
kalletronic
26.01.2009, 21:30
hi Stefan,
die Programme sind auch noch nich ganz fertig, die Version die ich hochgeladen hab, hab ich getestet, sie funktioniert aber nur mit einem Servo. Ich bin grad dabei das ganze Programm komplett umzukrempeln, mit einem neuen Telegrammaufbau, der mir aber zur Zeit einige Probleme bereitet
https://www.roboternetz.de/phpBB2/viewtopic.php?t=44453
aber ich hoffe ich bekomms hin, dann müsste es auch mit 16 Servos funktionieren und wenn alles klappt, soll es dann eine komplette GUI für 2 Motoren einige Sensoren usw. werden.
Gruß Kalle
hallo!
wolte fragen wie die belegung für den comport ist,für den atmega32.
gruß neuer
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.