Feuerring
05.07.2016, 13:56
Hallo zusammen,
um mal wieder mit uC was zu machen habe ich ein Projekt gestartet ... Projekt Mähroboter (https://www.roboternetz.de/community/threads/69425-Projekt-M%C3%A4hroboter?p=628924&viewfull=1#post628924).
vor ca 30 Jahren habe ich mit einem Z80 meine Erfahrungen gesammelt und den NDR-Klein-Computer auf ECB mit selbst entwickelten Einsteck-Karten ausgebaut.
Hat damals viel Spaß gemacht, doch dann kam die Zeit wo PCs zu erschwinglichen Preisen zu bekommen war.
In der Zwischenzeit habe ich viel mit IOWorrias gemacht und auch dafür den IOW-Socket-Server und das Test-Programm ALL-In-ONne dafür entwickelt, einige werden mich dadurch vielleicht kennen.
Nun möchte ich aber mal wieder was mit uC machen und dafür braucht man ein Sinnvolles Projekt, z.B. ein Mähroboter.
Bei der Umsetzung habe ich mich für ATMega und Bascom entschieden.
Da ich mich für ein PC-Gestütztes System entschieden habe, benötigt man eine FUNK-COM Anbindung ...
Um langsam in die Materie einzusteigen, habe ich das mal versucht als erstes zu realisieren.
Aufbau: Arduino(Nano 328p) und ein Terminal-Adapter
$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
Config Serialin = Buffered , Size = 40
Dim Na As String * 30
Dim Si As Byte
Enable Interrupts
Print "Start_Main"
Do
If Ischarwaiting() <> 0 Then
Si = Inkey()
If Si <> 13 And Si <> 10 And Len(na) < 30 Then
Na = Na + Chr(si)
Else
If Ucase(na) = "STATUS" Then
Print "ACK;STATUS"
Waitms 500
Print "Status;V1=12;V2=13;S4=2000" ' Beispiel einer Rückantwort
Elseif Ucase(na) = "STOP" Then
Print "ACK;STOP"
Waitms 500
Print "STOP" ' Beispiel einer Rückantwort
Elseif Ucase(na) = "START" Then
Print "ACK;START"
Waitms 500
Print "START" ' Beispiel einer Rückantwort
Else
Print "NAK;" ; Na
End If
Na = ""
End If
End If
Loop
Möchte die Verschiedenen Bereicht ( Antrieb / Sensoren / Orientierung ) durch eigene Module(uC) aufbauen und diese mit I2C vom Main-Controller steuern.
Bei dem Projekt geht es nicht darum das mit so wenig Ressourcen wie möglich zu gestalten, sondern eher um ein Projekt ( Spaß an der Umsetzung )
Werde bestimmt öfter vor Problemen stehen, wo ich nicht weiter komme, in der Hoffnung die dann durch eure Hilfe bewerkstelligen kann.
Die ATMega -Serie hat ja uC mit verschiedener Ausstattungen, wie kann ich mit BASCOM aus die Hardware Unterstützung zurückgreifen ohne das Bascom versucht das Software mäßig zu realisieren.
Mir ist noch nicht ganz klar wie z.B. I2C Befehle nicht Softwaremäßig sondern Hardwaremäßig in BASCOM umgesetzt werden ... wird das über $regfile = "m328pdef.dat" gesteuert ...
um mal wieder mit uC was zu machen habe ich ein Projekt gestartet ... Projekt Mähroboter (https://www.roboternetz.de/community/threads/69425-Projekt-M%C3%A4hroboter?p=628924&viewfull=1#post628924).
vor ca 30 Jahren habe ich mit einem Z80 meine Erfahrungen gesammelt und den NDR-Klein-Computer auf ECB mit selbst entwickelten Einsteck-Karten ausgebaut.
Hat damals viel Spaß gemacht, doch dann kam die Zeit wo PCs zu erschwinglichen Preisen zu bekommen war.
In der Zwischenzeit habe ich viel mit IOWorrias gemacht und auch dafür den IOW-Socket-Server und das Test-Programm ALL-In-ONne dafür entwickelt, einige werden mich dadurch vielleicht kennen.
Nun möchte ich aber mal wieder was mit uC machen und dafür braucht man ein Sinnvolles Projekt, z.B. ein Mähroboter.
Bei der Umsetzung habe ich mich für ATMega und Bascom entschieden.
Da ich mich für ein PC-Gestütztes System entschieden habe, benötigt man eine FUNK-COM Anbindung ...
Um langsam in die Materie einzusteigen, habe ich das mal versucht als erstes zu realisieren.
Aufbau: Arduino(Nano 328p) und ein Terminal-Adapter
$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
Config Serialin = Buffered , Size = 40
Dim Na As String * 30
Dim Si As Byte
Enable Interrupts
Print "Start_Main"
Do
If Ischarwaiting() <> 0 Then
Si = Inkey()
If Si <> 13 And Si <> 10 And Len(na) < 30 Then
Na = Na + Chr(si)
Else
If Ucase(na) = "STATUS" Then
Print "ACK;STATUS"
Waitms 500
Print "Status;V1=12;V2=13;S4=2000" ' Beispiel einer Rückantwort
Elseif Ucase(na) = "STOP" Then
Print "ACK;STOP"
Waitms 500
Print "STOP" ' Beispiel einer Rückantwort
Elseif Ucase(na) = "START" Then
Print "ACK;START"
Waitms 500
Print "START" ' Beispiel einer Rückantwort
Else
Print "NAK;" ; Na
End If
Na = ""
End If
End If
Loop
Möchte die Verschiedenen Bereicht ( Antrieb / Sensoren / Orientierung ) durch eigene Module(uC) aufbauen und diese mit I2C vom Main-Controller steuern.
Bei dem Projekt geht es nicht darum das mit so wenig Ressourcen wie möglich zu gestalten, sondern eher um ein Projekt ( Spaß an der Umsetzung )
Werde bestimmt öfter vor Problemen stehen, wo ich nicht weiter komme, in der Hoffnung die dann durch eure Hilfe bewerkstelligen kann.
Die ATMega -Serie hat ja uC mit verschiedener Ausstattungen, wie kann ich mit BASCOM aus die Hardware Unterstützung zurückgreifen ohne das Bascom versucht das Software mäßig zu realisieren.
Mir ist noch nicht ganz klar wie z.B. I2C Befehle nicht Softwaremäßig sondern Hardwaremäßig in BASCOM umgesetzt werden ... wird das über $regfile = "m328pdef.dat" gesteuert ...