Forum: Mikrocontroller und Digitale Elektronik Anfängerprobleme


von Dome R. (cantharis)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir für meine Präsentationsleistung in Informatik das Thema 
Robotik ausgesucht und habe als Aufgabe eine Einleitung in die 
Mikrokontroller Programmierung zu machen.
Dazu wurde mir ein fertiger Roboter gestellt mit einem ATMega 644-20PO. 
Der Roboter ist mit einigen Sensoren und 2 Motoren ausgestattet.

Leider habe ich sozusagen keinerlei Vorkenntnisse in diesem Bereich und 
alles was ich an Erklärung mit auf den Weg bekommen habe ist diese 
Präsentation.

Ich habe mir überlegt das man den Roboter "ganz einfach" nach vorne 
fahren lassen könnte und anhand dieses Beispiel dann die Funktion und 
Verwendung von I²C und die Programmierung erklärt (so in etwa).

Leider werde ich aus diesem Dokument überhaupt nicht schlau. Ich glaube, 
dass ich die Motoren irgendwie über IC $C6... bzw IC $C4... - weil das 
ja ihre Adressen sind - ansprechen kann doch wie genau das 
funktioniert...

Ich habe noch ein Beispielprogramm in dem die Motoren verwendet werden. 
Das habe ich mal als Word Dokument mit angehängt.

Ich bin wirklich über jede Hilfe dankbar.

Liebe Grüße

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Dominique Rademacher schrieb:
> Ich habe noch ein Beispielprogramm in dem die Motoren verwendet werden.
> Das habe ich mal als Word Dokument mit angehängt.

/Ironiemodus_an

ich sehe, du kennst dich aus. Alle gängigen Compiler verstehen 
heutzutage  docx-Quellcode, und unterstützen Microsoft Formate.

/Ironiemodus_aus

von Dome R. (cantharis)


Lesenswert?

...
Ich kann auch die .bas Datei posten. Ich dachte vielleicht lässt es sich 
ja so besser für andere lesen.  Außerdem programmiere ich den 
Mikrokontroller direkt und spiele die Programme nicht drauf.

/Ironiemodus_an

Aber vielen Dank.

/Ironiemodus_aus

von Karl H. (kbuchegg)


Lesenswert?

Dann muss ich dir leider sagen, dass hier keiner freiwillig ein DOCX 
File aufmachen wird.

Programmtext ist einfach nur Text. Mach dir nicht soviel Arbeit, sondern 
poste den Text so wie er ist: Nackte Buchstaben ohne Formatierung.

von Dominique Rademacher (Gast)


Lesenswert?

1
ONERR 17:I=$C6:IC I+1,0,1
2
GOS 80
3
GOS 55
4
K=KEY(0)
5
IF K=$E6 GOS 60
6
IF K=$E7 GOS 65
7
IF K=$E4 GOS 20
8
IF K=$E5 GOS 25
9
IF (K=$E3)&(M=0) GOS 35
10
IF (K=$E3)&(M=1) GOS 45
11
IF (K=$E2)&(M=0) GOS 30
12
IF (K=$E2)&(M=1) GOS 40
13
IF K=$ED GOS 50:END
14
IF K=$73 GOS 50
15
GO 4
16
17
I=$C4:GO 2
18
19
20
'Motoren vorwaerts
21
DA 0,$15,$33:M=0
22
IC I,0,2
23
RET
24
25
'Motoren rueckwaerts
26
DA 0,$15,$CC:M=1
27
IC I,0,2
28
RET
29
30
'Robo links vor
31
DA 0,$15,$30
32
IC I,0,2
33
RET
34
35
'Robo rechts vor
36
DA 0,$15,$3
37
IC I,0,2
38
RET
39
40
'Robo links zurueck
41
DA 0,$15,$C0
42
IC I,0,2
43
RET
44
45
'Robo rechts zurueck
46
DA 0,$15,$C
47
IC I,0,2
48
RET
49
50
'Motoren stop
51
DA 0,$15,0
52
IC I,0,2
53
RET
54
55
'PCA9533 init
56
S=$80:M=0
57
DA 0,$11,0,S,0,S,0
58
IC I,0,6
59
RET
60
'Motor schneller
61
S=S+1:IF S>255 S=255
62
DA 0,$14,S
63
IC I,0,2
64
RET
65
'Motor langsamer
66
S=S-1:IF S<=0 S=0
67
DA 0,$14,S
68
IC I,0,2
69
RET
70
71
72
'menu
73
? "*** Tastenbelegung ***"
74
?
75
? "Cursortasten"
76
? %$5E;"    = vorwaerts"
77
? %$76;"    = rueckwaerts"
78
? %$3C;"    = links"
79
? %$3E;"    = rechts"
80
?
81
? "PgUp = schneller"
82
? "PgDn = langsamer"
83
? " s   = stop"
84
? "Esc  = Ende"
85
RET

von Grübler (Gast)


Lesenswert?

Dominique Rademacher schrieb:
> alles was ich an Erklärung mit auf den Weg bekommen habe ist diese
> Präsentation.

Ich hoffe einige Lehrer oder die sich dafür halten,
lesen in diesem Forum auch mal mit.

Ich bin (als Ausbilder für Facharbeiter) immer wieder
geradezu geschockt, was andere Pädagogen unter
projektorientierter Ausbildung verstehen.
Aber sie können sich tagelang mit Power-Point
beschäftigen. Toll

Das musste ich einmal loswerden.

von Dome R. (cantharis)


Lesenswert?

Eigentlich nag ich meinen Informatiklehrer sehr gerne.
Letztes Jahr hab ich meine Präsentationsleistung über Künstliche 
Neuronale Netzte gehalten. Mich selbstständig ins Thema eingelesen und 
dann ein Netz programmiert das gezeichnete Buchstaben erkennen konnte.
Das hat mir ziemlich Spaß gemacht.

Dieses Jahr läuft das allerdings nicht so gut... Ich steh ziemlich auf 
dem Schlauch...
Deshalb hoffe ich hier Hilfe zu finden :)

von Karl H. (kbuchegg)


Lesenswert?

> Leider werde ich aus diesem Dokument überhaupt nicht schlau.
> Ich glaube, dass ich die Motoren irgendwie über IC $C6... bzw
> IC $C4... - weil das ja ihre Adressen sind - ansprechen kann
> doch wie genau das funktioniert...

Offenbar korrespondieren die IC Anweisungen mit den jeweils vorstehenden 
DA Anweisungen.

Mittels DA werden die Daten festgelegt, die über I2C in die jeweiligen 
Peripherie-Register geschrieben werden sollen und IC realisiert dann den 
Transfer

DA 0,$15,$3
IC I,0,2


Das DA legt 2 Werte, beginnend ab einer Datenadresse 0 fest. Die Werte 
sind $15 und $3
und IC überträgt dann diese beiden Werte per I2C an einen Baustein mit 
der Adresse die sich in I befindet (zb $C2)

Die $15 scheinen konstant zu sein. das zweite Byte legt offenbar die 
Geschwindigkeit der Motoren fest. Jeweils eine Hex-Ziffer pro Motor.


Soweit meine Arbeitshypothese. Ob das allerdings zur Beschreibung von 
I2C taugt, wage ich mal dahinzustellen.

von Weingut P. (weinbauer)


Lesenswert?

seltsamer Dialekt ist das ... Gosubs mit festen Zeilennummern ... ist ja 
ätzend, bei Programmänderungen muss man das ganze Gesumse durch gehen 
und die Zeilennummern anpassen. Sowas hab ich seit dem C64 nicht mehr 
gesehen.

Der wichtigste Teil aber für I2C steht ganz unten versteckt: PCA9533

Schau Dir das Datenblatt von dem Kerl an, da sollte die Kommunikation 
via I2C konkret drinnen beschrieben sein.

http://www.nxp.com/documents/data_sheet/PCA9533.pdf

4-Bit I2C LED-dimmer

EDIT: Hab mir das PDF mal angeschaut ... da steht ja alles schön drinnen 
... hast Du das Ding auch mal gelesen oder gleich hier rein gestellt 
dass andere sich Deinen Kopf zerbrechen?

von Dome R. (cantharis)


Lesenswert?

Oooooh... natürlich! Jeweils eine Hex-Ziffer pro Motor -> daruaf wäre 
ich wohl nie gekommen -.-
Dann hat sich der Rest auch grad geklärt außer, wieso  $15?

Und wieso wird dann hier:
1
'Motor schneller
2
S=S+1:IF S>255 S=255
3
DA 0,$14,S
4
IC I,0,2
5
RET

$14 verwendet?

von Weingut P. (weinbauer)


Lesenswert?

Dominique Rademacher schrieb:
> Oooooh... natürlich! Jeweils eine Hex-Ziffer pro Motor -> daruaf wäre
> ich wohl nie gekommen -.-
> Dann hat sich der Rest auch grad geklärt außer, wieso  $15?
>
> Und wieso wird dann hier:
>
1
> 'Motor schneller
2
> S=S+1:IF S>255 S=255
3
> DA 0,$14,S
4
> IC I,0,2
5
> RET
6
>
>
> $14 verwendet?

RTFM ... steht im Datenblatt ... anderes Register, andere Funktion.
S.4 folgende

Soll das Deine Präsentationsleistung werden oder die des Forums?

von Philip S. (psiefke)


Lesenswert?

ich denke in diesem speziellen Fall ist das nicht so kritisch... aber 
über die Bedeutung von

>> COMPANY CONFIDENTIAL <<

sollte man schon einmal nachdenken, wenn man ein PDF öffentlich ins Netz 
stellt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.