PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : welchen Microcontroller??



roooy
09.10.2004, 12:28
Hallo, habe folgendes Problem:
Ich muss für meinen Seminarkurs im Gymnasium ein Interaktives 4gewinnt spiel(Mensch gegen Maschiene) erstellen!
Ein Freund fertigt mir ein Spielfeld aus Aluminium, daran soll oben an den 7 Löchern je eine Lichtschranke angebracht werden die ein Signal an den Microcontroller schickt der es weiter an den PC gibt wo dann die KI(=Künstliche Intelligenz) den Computerzug berechnet!!Dann geht ein signal wieder an den Microcontroller, der die Motoren ansteuert!!!Die Motoren bewegen eine Laufkatze oben auf dem Spielfeld die dann den Computerzug ausführen und so den nächsten Stein legen!
das ganze Bildlich dargestellt:
https://www.roboternetz.de/phpBB2/download.php?id=1195

also, d.h. ich habe 7Lichtschranken die Signalle geben
außerdem müssen 3 Motoren angesteuert werden

nun welchen Microcontroller soll ich dafür verwenden???
Ich bin absoluter Neuling auf dem Gebiet!!!

ich hoffe mir kann jemand helfen,danke im voraus!

10.10.2004, 12:40
ATMega8 bspw.
Umsetzen wirst du das Projekt selbst müssen.

roooy
10.10.2004, 15:05
Umsetzen wirst du das Projekt selbst müssen.

das ist mir klar!!!!
suche blos nen MC an den ich 7 Lichtschranken anschließen kann und 3 Motoren ansteuern kann!

Flite
10.10.2004, 16:01
Wie Gast schon geschrieben hat: ATmega8

Der kann das!

roooy
10.10.2004, 21:04
DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

roooy
22.10.2004, 17:47
hi, nochmal ne frage!!!

kann man das ganze auch ohne Microcontroller realisieren, z.B nnur mit High und Low signalen????

Denn ich lese mich gerade in die assembler programmierung ein und steig da einfach nicht durch!!!

bitte helft mir nomal,danke

mfg

klucky
22.10.2004, 19:05
du musst den micocontroller ja net mit assembler programmieren ... nehm doch einfach c ;) http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial

roooy
22.10.2004, 19:15
du musst den micocontroller ja net mit assembler programmieren ... nehm doch einfach c ;) http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial

da bin ich ja auch absoluter neuling!!!! :-k
ist das leichter zu lernen??

cht
22.10.2004, 20:22
ja, ich würd sagen C ist einfacher. Besonders wenn du schon mal in anderen Sprachen auf dem PC programmiert hast wie ich zB in Delphi. Da kommt einem einiges bekannt vor... Das einzig komplizierte ist der Umgang mit WinAVR. Ich hab ne Weile gebraucht um mit den makefiles zurechtzukommen ;)
Allerdings hab ich zuerst mit Assembler angefangen bevor ich auf C umgestiegen bin, mit dem Tut von mikrocontroller.net hab ichs eigentlich durchschaut. Wenn deine allgemeine Verwirrung in Sachen Assembler langsam zu konkreten Fragen wird kannst du die ja mal posten.

Insgesamt würde ich Assembler nur nehmen wenn es auf Mikrosekunden ankommt, im Normalfall spart C ne Menge Schreibarbeit, ist übersichtlicher und somit leichter zu durchschauen.
mfG

cht

Hellmut
23.10.2004, 02:19
roooy,
ich habe mich durch die Macht der Informationen in diesem Forum von Assembler zu Bascom rüber geschlagen. Als absoluter neuling sicher zu empfehlen.

MrQu
24.10.2004, 16:14
Hallo zusammen,

@ roooy:

Überlege mal andersrum!!!
Ich würde auch auf die AtMega Serie zurückgreifen.
Wenn du einen größeren typ nimmst (als den mega8) z. B. den AtMega32, der hat eigendlich genug Speicher um eine kleine KI zu programmieren (denke ich).
Mit 16MHz ist das Ding auch nicht gerade langsam.
In Kombination mit basic und assembler müsste das klappen.


Gruß Manuel

roooy
24.10.2004, 21:53
aber wie in einem späteren Beitreag geschrieben, ich habe keine AHNUNG von programmieren, die KI macht ein Kumpel auf dem PCin visual basic. es soll dann nur noch ein datenaustausch zwischen mic und PC stattfinden!!!

28.10.2004, 02:24
Achso!
Als ich den Titel gelesen hab, hab ich mir schon gedacht "Na viel Spaß beim Algo coden" *g*

Dann nim Bascom, wenn du damit nicht viel Arbeit haben willst! Da gibts für alles fertig Routinen usw.
Ich hab mir mal was gecodet, dass er alle Daten vom Puffer des seriellen Ports holen soll und in ne Variable zusammensetzen soll. Das ganze wird dann anschließend wieder an den PC geschickt:


$regfile = "m16def.dat"
$crystal = 8000000
$baud = 56700

Dim A As String * 120
Dim I As Word
Declare Sub Do_rx

Do
If Ucsra.rxc = 1 Then 'Wenn diese Variable 1 ist, liegen Daten im Puufer
Do_rx 'Subfunktion aufrufen
Print A 'Dan ganzen Kram ausgeben, den die Subfunktion Do_rx zurückgab
A = "" 'Variableninhalt löschen
End If
Loop




Sub Do_rx
For I = 1 To 40000 'Schleife basteln, dass auch garantier jedes Zeichen vom Buffer gelesen werden (40000 Zeichen werden wohl nie da anliegen +g* Und wenn doch, ist der RAM voll ;) )
If Ucsra.rxc = 1 Then A = A + Chr(udr) 'Hier wird die Variable zusammengebastelt. Udr ist jeweils immer ein Zeichen, dass im Puffer liegt. Da die Zeichen im Hexadezimalen Zahlensystem im Puffer liegen, müssen die Zahlen mit dem Befehl Chr() in ASCII Zeichen umgewandelt werden
Next
End Sub

Wenn du fragn hast, poste es hier rein ;)

Andy1988
28.10.2004, 02:26
Sone Kagge!

Schon wieder nich eingeloggt!