Archiv verlassen und diese Seite im Standarddesign anzeigen : welchen Microcontroller??
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!
ATMega8 bspw.
Umsetzen wirst du das Projekt selbst müssen.
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!
Wie Gast schon geschrieben hat: ATmega8
Der kann das!
DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
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
du musst den micocontroller ja net mit assembler programmieren ... nehm doch einfach c ;) http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial
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??
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
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.
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
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!!!
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!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.