Archiv verlassen und diese Seite im Standarddesign anzeigen : Unkomplizierter uC für Lichtschranke gesucht
Hallo zusammen,
für meine Facharbeit baue ich eine Coilgun und da würde ich natürlich gerne die Mündungsgeschwindigkeit messen.
Jetzt habe ich mir gedacht 2 Lichtschranken (IR wäre wohl gut) und 4 7-Segmentanzeigen würden sich gut eigenen.
Die 2 Lichtschranken sollten so 10cm entfernt sein und ich würde dann gerne 3 Stellen + 1 Dezimalstelle messen.
Das wäre dann das Geschwindigkeitsproblem *g*
Darüber bin ich beim suchen gestoßen, dass der uC eventuell garnicht so schnell ist.
Ein viel größeres Problem ist aber, dass ich keine Ahnung von uCs habe.
Ich suche also einen, der nicht allzu teuer ist und den ich recht einfach programmieren kann.
Die Facharbeit muss am 30.01 fertig sein, ich hab also nicht allzu viel Zeit mich mit dem Programm auseinanderzusetzen (ich weiß ich bin spät dran xD)
Ich hab schon den PICAXE gefunden, der wohl genau das richtige wäre.
Zumindest hab ich den Eindruck die Programme wären sehr simpel.
Aber ich hab keine Ahnung ob der dann wieder schnell genug ist.
Die Atmega Chips sind ja auch sehr verbreitet, wie schwer ist da der Einstieg?
Ein kleiner Zusatz noch: Das ganze muss über einen USB -> Seriell Adapter funktionieren, bzw gleich über USB aber das wird erfahrungsgemäß teuer.
Ich habe nur einen iMac und ein Macbook zur Verfügung, die haben nur USB ;)
Es wäre super wenn mir jemand einen kurzen Überblick geben kann,
wie schnell das mit einem AVR (heißen die so?) Chip bzw mit einem anderem zu bewältigen ist.
ich weiß, dass kann man alles mit Google rausfinden, mache ich normal auch, aber ich blick bei dem Haufen Infos und Fachbegriffen nicht mehr durch *g*
Danke schonmal,
Lukas
die AVRs sind schon schnell ... ob für deine Anwendung
schnell genug kommt halt drauf an, das müsst man
durchrechnen ... wie hoch ist denn die Mündungsgeschwindigkeit?
wie schnell ist das Projektil in m/s ?
Wie hoch soll die Auflösung sein ?
USB->seriell ist das kleinste Problem, 7-Segment auch nicht ...
bis 30.1. wir aber schon eng, weil Du hast ja noch kein
Layout ... wieviel Ahnung in Elektronik ist denn vorhanden?
schon mal 7-Segement angesteuert?
Also die Anzeige werde ich wohl hinkriegen ;)
Hab das zwar noch nie gemacht aber ich hab die Multiplexmethode verstanden...
Grundlegende Elektronik-Kentnisse sind auch vorhanden, das Problem ist eher das programmieren und das ganze Drumherum (Compiler etc.).
Also bis 200 m/s sollte das ganze schon funktionieren und auf eine Dezimalstelle reicht ;)
Das ganze läst sich ja auch mit normalen ICs lösen, aber bis das klappt brauche ich wohl noch länger *g*
ok, also 200m/s bei 10cm wären dann 500µs,
+1 Dezimalstelle sind das dann 50µs als kürzester
möglicher Impuls
Bei einem AVR auf gängigen 16MHz wären das dann
800 Takte ... geht ohne weiteres.
In Hochsprache je nach Programmierung, in Assembler
auf alle Fälle kein Problem.
Hi,
also AVR sind eigentlich relativ günstig (wenn du sie nicht gerade bei Conrad kaufst^^)
und bei einer Geschwindigkeit von 200m/s sollte das ganze damit auch funktionieren.
Zum Thema Programmieren kannst du ja mal hier reinschaun:
http://www.mikrocontroller.net/articles/AVR-Tutorial (Programmiersprache: Assembler)
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial (Programmiersprache C)
https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht (Programmiersprache: Bascom)
Die Zeit zum Einarbeiten ist dabei je nach gewählter Programmiersprache unterschiedlich,
wobei Bascom am leichtesten zum lernen ist.
Jo, würde bei der kurzen verbleibenden Zeit auch Bascom
empfehlen ... wenn dann noch Zeit übrig sein sollte
kannste die Messroutine in ASM tunen für höhere
Geschwindigkeiten ;)
Hardware ist denkbar einfach zu proggen bei den AVR und die
Außenbeschaltung ist auch minimalst ... ausserdem gibts hier im
Forum auch guten Support ;)
ach so, hier gibts auch das RN-Board und auch die passende
7-Segement Anzeige dafür quasi fertig zur Verwendung.
the_Ghost666
02.01.2009, 19:03
Also mit 200m/s und 0,1m Abstand zwischen den Schranken, kommst du ja auf eine Laufzeit von 0,5ms, das sind Milli-Sekunden. Damit kannst du eigentlich jeden Microcontroller nehmen, der hier im Board benutzt wird. Du kannst sogar die Pins dabei Pollen, oder kannst auf Hardware-Module zurückgreifen.
Ein PIC mit 4Mhz schafft 1Mio. Befehle, dh 1µs pro Befehl. Ein AVR schafft das bereits bei 1-2MHz.
Du kannst dir eine Prüfschleife bauen, die 50 Befehle lang ist und dann hast du immernoch die Möglichkeit bis 200km/s zu messen, Ja Kilometer pro Sekunde.
Du brauchst ja nicht permanent eine Anzeige betreiben, sondern dich im Messzeitraum nur damit zu beschäfftigen, die Messung abzuwarten und danach auszugeben.
Wenn es eine kleine Schaltung sein soll, und du vielleicht fertige Lichtschranken mit TTL Ausgang hast (bei uns im Physiklabor der FH gibt es Laser-Lichtschranken mit so nem Ausgang), brauchst du nur wenige Pins, dann reicht schon ein Attiny13 oder PIC12F675 oder so.
Damit kannst du ne RS232 Ausgabe realisieren, oder mit mehr Pins oder einem Schieberegister eine Siebensegment-Anzeige steuern.
P.S.:
Wenn du dafür ein Budget hast, dann denke ich auch, dass das Roboternetzboard ne einfache Geschichte wäre, ohne zuviel Zeit für die Entwicklung eines Messsystems zu verwenden.
Wobei das auch Gutes haben kann, ein bekannter Programmieradapter, USB-Prog, den man mittels Firmware für verschiedene Controller und EEPROMs nehmen, entstand, weil der Entwickler bei seiner Diplomarbeit, Entwicklung eines USB-Host-Stacks, eine bequemere Möglichkeit zum Programmieren brauchte, und das ding kurzerhand entwickelte und jetzt als OpenSource Projekt vermarktet
Danke für die vielen Antworten, also um die Geschwindigkeit brauch ich mir schonmal keine Sorgen machen :)
Atmega32 zB ist ein AVR Chip oder? Seh ich das richtig, dass AVR der Hersteller ist?
Edit: Ok ich hab nachm posten gleich auf den Link in die Wiki geklickt und habs verstanden ;)
Das RN Controll mit Display etc. wäre sicher super, allerdings fast zu viel für das was ich brauche.
Ich hab mir grad das Tutorial durchgelesen und das sieht eigentlich ziemlich simpel aus :)
Ich bräuchte als nur den Controller, ein paar Widerstände etc für die Grundschaltung, die ISP Buchse + Kabel und halt eine Lichtschranke die mir 5V liefert falls was durchfliegt (ich hab schon IR Dioden und Transistoren für den Wellenlängenbreich bestellt).
Zur Ausgabe reichen ja dann 4 Anzeigen + Transistoren um die anzusteuern.
Sehe ich das so richtig?
Das Beispiel-Programm in Bascom im Tutorial wirkt auch recht verständlich, ich habe befürchtet, dass noch viel mehr definiert werden muss bis man überhaupt was machen kann ;)
Funktioniert die Programmierung über das ISP Kabel auch mit einem USB -> Seriell Adapter?
Die USB -> ISP Kabel sind mir etwas zu teuer...
Beim Asuro zB geht der Adapter ja nicht, weil da die Spannung nicht reicht.
USB liefert ja glaub ich nur 5V oder so.
Also "AVR" ist der Name der Mikrocontroller-familie (http://de.wikipedia.org/wiki/Atmel_AVR),
der Hersteller heißt "Atmel" und der Name des Chips heißt dann in deinem Fall "Atmega 32".
Im Prinzip reicht das an Bauteilen was du aufgelistet hast aus.
Allerdings würde ich zur Ansteuerung der 7-Segment-Anzeigen noch 4 BCD-zu-7-Segment-Decoder
(http://www.dieelektronikerseite.de/Index.htm)
(http://www.datasheetcatalog.com/datasheets_pdf/C/D/4/5/CD4543.shtml)
verwenden, da du dann die Werte für jede Stelle als Binärwert ausgeben kannst.
Ansonsten müsstest du die richtige Ansteuerung der Anzeigen im Programm unterbringen, was ziehmlich mühselig ist.
Das mit dem ISP-Kabel weis ich leider nicht so genau! :-k
MfG Tob
Der erste Link funktioniert leider nich richtig, da du da nur auf die Hauptseite kommst.
Um zur Beschreibung für den Decoder zu kommen musst du noch auf
(Grundlagen->Lehrgänge->7-Segment-Anzeigen)
klicken! sry ](*,)
Ah danke für den Tipp :)
Dann schließe ich also einen BCD-Decoder an alle 4 Anzeigen und schalte dann mit Transistoren immer für eine GND an den Dekoder oder?
Das würde dann ja nur 8 Pins verbrauchen :)
Im Prinzip wärs aber eh egal, ich kann ja auch 16 Pins für die Anzeigen verbraten *gg*
Was für ein Controller wäre denn da der richtige:
ATmel Controller bei Reichelt (http://www.reichelt.de/?;ACTION=2;LA=2;GROUPID=2956;SID=27TkdVn6wQARsAAG2 W9aI91bb7b4f463e4be4e3165519f2c9caa5)
Ich denke der ATmega32 oder 16 wäre der richtige oder?
Bei Reichelt gibt's da nur leider noch ziemlich viele verschiedene...
Im Prinzip brauche ich ja nur 2 Eingänge für die Lichtschranke, vllt noch 2 für Taster und am Besten einfach 16 für die Anzeigen, dann wäre das schön einfach zu programmieren *g*
Ich seh auch grad, dass es das IC 4543 (http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A2212;GROUPID=2925;ARTICLE=1 8530;START=0;SORT=user;OFFSET=16;SID=27TkdVn6wQARs AAG2W9aI91bb7b4f463e4be4e3165519f2c9caa5) nur als SMD Baustein gibt...
Schafft man das als Normalsterblicher zu löten?
oder gibt's dafür vielleicht sogar Sockel die in normale Lochrasterplatinen passen?
Und noch eine ganz simple Frage ^^
Wenn ich die Anzeigen mit gemeinsamen GND Pins will, brauche ich welche mit gemeinsamer Kathode oder?
Also der Atmega 16 sollte dafür eigentlich ausreichen,
da er sich nur in der Größe des Speichers vom Atmega 32 unterscheidet.
Die BCD-Decoder gibts auch als DIP-Baufrom
(http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A2235;GROUPID=2933;ARTICLE=3 255;START=0;SORT=artnr;OFFSET=16;SID=2506kh8qwQARk AABJfmpYaa27e58742aa0b77261664147b480e71)
7-Segment-Anzeigen mit gemeinsammen GND-Pin haben eine gemeinsamme Kathode, richtig!
Aber wie kommst du auf 16 Pins für die Anzeigen? 8-[
Soweit ich das verstanden habe braucht der BCD Dekoder 4 Pins für den Eingangswert oder?
Das wären für 4 Anzeigen dann 16 Pins wenn ich ganz lässig das Multiplexen umgehen will.
Oder hab ich was nicht verstanden?
Hm, ich hab den BCD nicht gefunden *argl*
Danke :)
Ist der hier (http://www.reichelt.de/?;ACTION=3;LA=2;GROUPID=2959;ARTICLE=45028;SID=27T kdVn6wQARsAAG2W9aI91bb7b4f463e4be4e3165519f2c9caa5 ) dann der richtige?
Sonst gibt es noch einen mit 8Mhz, aber das kann mir ja eigentlich egal sein...
Falls ich dochmal mehr messen will sind die 16 Mhz vielleicht nicht schlecht, aber der mit 16 ist ja sowieso günstiger.
Dazu dann auch noch ein 16 Mhz Quarz oder?
Muss ich da ein bestimmtes nehmen?
Dann hätt ichs eigentlich soweit *g*
Jo, das ist der richtige Mikrocontroller!
Beim Quarz kenn ich mich nicht so aus, aber ich verwende dafür immer dieses Quarz
http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B41;GROUPID=3173;ARTICLE=328 52;START=0;SORT=artnr;OFFSET=16;SID=2506kh8qwQARkA ABJfmpYaa27e58742aa0b77261664147b480e71
und das funktioniert ganz gut.
Allerdings brauchst du für das Quarz noch zwei Keramikkondensatoren mit 22pF! (siehe RN-Wissen)
Die 16 Pins für die BCD-Decoder passen natürlich. (Sry, stand irgendwie auf´m Schlauch^^)
Außer du willst sie noch dunkel Schalten können, dann brauchst du noch einen Pin mehr pro Anzeige! (Pin "BI" am BCD-Decoder)
Jap an die hab ich auch gedacht ;)
Jetzt habe ich nur ein Problem, Robotikhardware.de hat bis zum 19.01 Winterpause...
Wo bekomme ich denn sonst einen ISP-Dongle her?
Den RN-Wissen Artikel hab ich mir schon angeschaut, das Teil besteht ja aus dem Adapter vom Druckerport auf SubD und dann ncoh das Flachbandkabel mit der Buchse dran.
Ich gehe jetzt mal davon aus, dass ich nicht einfach den letzteren Teil (SubD -> Buchse) einfach an einen Seriellen Port hängen kann oder?
Dann wäre das ja ganz einfach...
Ist der Wannenstecker (http://www.reichelt.de/index.html?;ACTION=3;LA=4;GROUP=C151;GROUPID=3231; ARTICLE=22816;START=0;SORT=user;OFFSET=16;SID=27Tk dVn6wQARsAAG2W9aI91bb7b4f463e4be4e3165519f2c9caa5) der richtige?
Der Wannenstecker ist richtig.
Bei Reichelt gibt es einen ISP-Programmieradapter für USB.
http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A38;GROUPID=2969;ARTICLE=450 40;START=0;SORT=artnr;OFFSET=16;SID=2506kh8qwQARkA ABJfmpYaa27e58742aa0b77261664147b480e71
Allerdings weis ich nicht ob du damit Programme mit Bascom übertragen kannst,
und in der Anleitung dazu sieht das ganze recht kompliziert aus.
Außerdem weis ich nicht ob die Pinbelegung des Wannensteckers dabei mit der auf der RN-Wissen Seite übereinstimmt!
Ansonsten kannst du ja mal die Seiten die hier aufgelisten sind mal durchschaun:
https://www.roboternetz.de/wissen/index.php/Bezugsquellen
ob der ISP MK2 direkt aus Bascom geht weiß ich auch nicht,
ich nehm den Umweg übers AVR-Studio, ist ja Freeware
und flashe damit den Hexfile direkt ... geht problemlos.
Der ISP-Stecker ist aber nur 6-polig und damit nicht direkt
kompatibel zur RN-Buchse. Musste Dir halt nen kleinen
Adapter zusammenbacken. Die Signale sind identisch, nur sind
halt beim 10-poligen ne ganze Reihe Pins auf GND.
beim 6-poligen ists halt MISO, MOSI, GND, +Ub, Reset, SCK
nur.
Hm okay dann wäre das ja auch eine Möglichkeit.
Oder das (http://www.pollin.de/shop/detail.php?pg=NQ==&a=MTY5OTgxOTk=) da, sollte auch gehen?
Jetzt hab ich alles zusammen und es hapert am Kabel...
So den hab ich jetzt auch noch gefunden:
http://cgi.ebay.de/AVR-Atmel-ISP-parallel-Programmer_W0QQitemZ180316785641QQihZ008QQcategory Z9722QQtcZphotoQQcmdZViewItem
Die Pinbelegung müsste soweit ich das sehen kann stimmen oder?
Dann könnte ich den Programmer doch problemlos verwenden oder?
Wäre vom preis für 12€ inkl. Versand natürlich super :)
Laut dem Verkäufer geht der Programmer mit allen Programmen die STK200/STK300 unterstützen, da zählt Bascom ja dazu.
Das Problem bei dem Programmieradapter von ebay ist halt, dass der nur über die Druckerschnittstelle funktioniert!
Das Evaluation Board von Pollin könne mit deinem USB->Seriel-Adapter funktionieren.
Aber wahrscheinlich nicht direkt über Bascom!
](*,)
Das macht nix, ich hab zu meinem USB -> Seriell auch noch den passenden Seriell -> Druckerport Adapter ;)
Der war gleich mit dabei, sollte also funktionieren :)
Der Programmer von Robotik-Hardware hat ja auch eine Druckerschnittstelle oder mach ich mir das grad zu einfach?
Der Programmieradpater der im Einsteigertutorial auf RN-Wissen angegeben ist hat einen Stecker für die Druckerschnittstelle, jo!
Wenn du einen Seriell->Parallel-Adapter hast, kannst du dir den
Programmieradpater nach der Anleitung aus RN-Wissen auch selber bauen
wenn du willst.
Hab ich auch so gemacht und war gar nicht so schwer. :)
er hat noch 26 Tage ... ich würde eher auf Fertiggeräte
raten als dass er noch ne Woche mit debuggen
verliert ;)
the_Ghost666
04.01.2009, 12:36
Sagmal, ganz nebenbei:
Wie ist deine Coilgun aufgebaut? Also Drahtdurchmesser, Windungszahl und Länge der Spule, Leistungsschalter, Speicherbank und Projektil?
Würd mich mal interessieren. Ich hab mal ne Webside eines Amerikaners (gebürtiger Brasilianer) gefunden, der neben Experimenten mit Primärsprengstoffen auch ne Coilgun und eine echte Railgun gebaut hat, damit sogar in Talkshows war.
Genau das war meine Überlegung ;)
ich kauf einfach den aus eBay, der wird schon funktionieren...
Danke schonmal für euren super Support,
auch bei Sachen die ich auch selber mit Google rausgefunden hätte :)
Sone Geduld ist nicht in jedem Forum selbstverständlich :)
Hui die letzte Antwort hab ich ja garnicht gelesen...
Also ich hab 10 Elkos da mit jeweils 6000 uF und 400V,
geladen wird mit gleichgerichteter Netzspannung über nen Trenntrafo.
Wie viele Caps ich genau nehme weiß ich noch nicht, wohl so 4-6.
Mein Draht für die Spule hat 1,5mm, Windungen weiß ich auch noch nciht genau...
Aber es gibt super Simulatoren für die Parameter:
http://www.coilgun.info/mark2/rlcsim.htm
http://www.coilgun.info/mark2/inductorsim.htm
Geschalten wird mit einem Thyristor aus eBay, der packt 3600A Peak ;)
Projektil sind abgesägte Schrauben etc...
Die Sachen sind heute gekommen :)
Blöderweiße hab ich natürlich den Parallelen Port mit dem langen Seriellen Port verwechselt.
Muss ich doch son alten Rchner ausm Keller holn xD
So jetzt poste ich schon zum 3. mal *g*
Ich hab gleich mal einen 78S05 und einen Elko gekillt...
Aber sonst müsste alles passen, hab die Schaltung aus dem Tutorial aufm Steckbrett nachgebaut und auch nachgemessen mitm Multimeter.
In Bascom kommt immer die Meldung dass der Chip mit der ID FFFFF nich gefunden wird oder so ähnlich.
Die 2. Meldung ist, dass mein Chip nicht dem gewählten Chip entspricht (xxx <-> ATmega16).
Der gleiche Fehler kommt auch, wenn ich garnichts anschließe.
Ich tippe jetzt mal auf die ISP Verbindung, da stimmt wohl was nicht.
Was ich gerade gesehen habe: Die bezeichnungen auf meinem Programmer stimmen alle bis auf MOSD, der Pin heißt am Programmer MOSI.
So einen Pin gibt's am ATmega16 aber garnicht...
Was könnte da jetzt falsch sein?
Besserwessi
09.01.2009, 17:36
Pin 6 des Mega16( als PDIP) ist MOSI. Einen Pin mit der Bezeichnung MOSD kann ich nicht finden.
Die Chip ID FFFFFF ist wie schon vermutet ein zeichen für einen Fehler in der SPI verbindung.
Die 2. Meldung ist dann ein Folgefehler,weil die ungültige ID natürlich auch nicht zum Mega16 paßt.
Neben Fehlern in den Verbindungen, kann auch ein falscher/Fehlender Takt (faslche Fuses) das Problem sind. Auch ein alsgemeinses Problem in der Verbindung vom ISP Programmer zum PC kann die Ursache sein. Auf dem Steckbrett könnte auch Signalqualität, besonders des SCK Signals die Ursache sein, meist gibt das aber andere Fehler.
OK danke :)
Wenn der Pin6 MOSI heißt passt ja schonmal alles... fast ^^
Also von falschen fuses geh ich mal nicht aus, es handelt sich umgerade ausgepackte uCs.
Wenn ich ein Quarz anschließe bringt mir ja auch nichts oder?
Dafür müsste ich ja ein Fusebit umstellen, was ich aber so garnicht kann...
Ich probiers mal weiter, ohne Steckbrett vielleicht gehts ja dann.
Ansonsten muss ich wohl irgendwo her nen anderen programmer auftreiben :(
Hier im Tutorial (https://www.roboternetz.de/wissen/images/c/cf/Avrtutorial_grundschaltung_mitisp.gif) heißt der Pin aber wirklich MOSD...
Im ersten Bild mit der Pinbelegung heißt er aber auch MOSI,
da stimmt dann auch was nicht ;)
Besserwessi
11.01.2009, 21:53
Das ist wohl ein Problem des Zeichensatzes: aus I) wird D
Die Typischen Probleme sind fehlende Masse, keine Spannung an AVcc und zu lange Kabel.
Einen ersten hinweis auf die Art der problem liefert auch die Stromaufnahme der Schaltung.
Hm das mit der Stromaufnahme ist gut :D 0,000A
Mit ner Led direkt nach der 78S05 Schaltung brauchts dann bissl was und wenn cih den ISP Dongle anschließe nimmt der auch noch was...
Aber nur der uC alleine verbraucht nix.
ich versteh aber nicht worans liegt.
ich hab grad nochmal alles durchgemessen von GND direkt an die Pins und von 5V direkt an die Pins.
Geht alles problemlos...
Edit: Ich hab mal Bilder gemacht :)
www.lukas-woerle.de/images/uC_wire.jpg
www.lukas-woerle.de/images/uC_1.jpg
www.lukas-woerle.de/images/uC_2.jpg
Die 4 Kabel von der ISP Buchse fehlen, das weiß ich ;)
Und oben vom 78S05 an die "Minusleiste" ist normal der Kontakt da, war nur zum Strommessen so...
Sodala es funktioniert :)
Trick 17: Einfach mal beherzt auf den uC draufdrücken *g*
Mein Steckbrett ist wohl nicht von besonderer Qualität und die Pins hatten teilweise keine Verbindung.
Mit etwas Gewalt geht halt doch alles...
Also nochmal danke für den Support :)
Ich geh jetzt mal schaun wie ich das Fusebit für das Quarz richtig einstell und mach dann wenns nötig ist im AVR Forum nen Thread auf...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.