AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Steuerung externer Geräte (eigenbau)
Thema durchsuchen
Ansicht
Themen-Optionen

Steuerung externer Geräte (eigenbau)

Ein Thema von Fussel9 · begonnen am 22. Mai 2011 · letzter Beitrag vom 23. Mai 2011
Antwort Antwort
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#1

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 20:38
HI Fussel9,
eine Möglichkeit ist, Deine LEDs in Spalten und Zeilen aufzuteilen und dann über PWM in der Helligkeit anzusteuern. Das kann ein Mikrocontroller sehr leicht, wenn er genug Ports hat. Über eine Schnittstelle (z.B. RS-232, Danke jfheins) kannst Du dem Mikrocontroller sagen, welche LED wie hell leuchten soll. Die Programmierung dazu = Daten berechnen und über COMx ausgeben ist Pipikram. Die Schwieriglkeiten liegen im Timing des Mikrocontrollers. Der ist mit einer akzeptablen Bildfolge und Taktrate für das PWM schnell am Ende, wenn Du viele Spalten und Zeilen hast. Da wird dann mehr Elektronik nötig, z.B. Latches für col oder row. Wieviel LEDs und wie schnell hast Du denn so gedacht?
LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#2

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 21:03
Zitat:
Nur wenn ich selbst ein Element baue, dann kann kein Treiber dafür existieren oder?
Wieso?

Also, RS232 (serieller Anschluß) unterstützen viele µC .. dann braucht man nur noch ein Kabel.

USB und Co. kann man heutzutage auch relativ leicht nehmen.

PS: Es gibt dann PC-intern Serial-zuUSB-Brücken, welches praktisch Treiber sind, die Daten über den USB-Anschluß auf einen seriellen Port weiterleiten.

User es gibt DLLs/Treiber, welche die Kommunikation über USB und einen externen IC zu einem µC bereitstellen.

Man könnte auch über PCI, FireWire, WiFi, Bluetooth oder sonstwie gehn.

Was nun geeignet ist, das hängt davon ab, was für Möglichkeiten zur Verfügung stehen, wie der Geldbeutel aussieht, wie schnell die Übertragung sein muß und über welche Entfernung es gehn soll.
Außerdem ist wichtig was und wie es gesteuert werden soll.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 21:07
@Uli: Puh... das war nur nen simpless beispiel wo man einen eingabewert für die ausgabe verarbeiten müsste
wenn ich sowas in der richtung mal wirklich bauen würde dann liefe es eher auf ne doppelhelix oder nen würfel raus
also bei der doppelhelix zwei stränge mit ka 4 zwischen Strängen (72 LED's
oder bei nem würfel vielleicht so keine Ahnung 12 streifen fürs grundgerüsst und 16 zwischen streifen die ein gitter über und durch das gerüsst ziehen ( so 8 Led's pro Strang---224 LED's)

und dann ginge es bei der Helix eher darum das das Teil Bewegungen darstellen kann wie einen Aufwärtsstrom bis zu einer On/Off- Geschwindigkeit von 1/6 bis 1/8 Sekunde

Bei dem Würfel ging es dan eher um die Farbspiele oder langsame Bewegungen aber eben auch die Möglichkeit jedes einzelne LED steuern zu können. Ich denke du kannst dir vorstellen wie so ein Teil aussehen würde... (ja ich weiß das es die Dinger fertig zu kaufen gibt, aber das würde ja keinen Spaß machen)

PS: @himitsu: Wäre schon cool wenn ein programm auf meinem Rechner dem Qube die Befehle über Funk oder Bluetooth oder wie auch immer senden würde aber mit nem Mikrocontroller würde das teil selbstständig arbeiten (hab ich jetz zumindest so verstanden)

Geändert von Fussel9 (22. Mai 2011 um 21:13 Uhr)
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#4

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 21:33
Nehmen wir als Beispiel einen PIC im 40-pol-Gehäuse. Der kann problemlos über 2 Ports 8x8 = 64 LEDs steuern. Weitere pins werden zwar für serialCom und Deinen Lichtsensor (?? AD-Wandler mit Fotozelle über I2C, SSI oder sowas) gebraucht, lassen aber den Rest auf 72 LEDs wohl zu. Die Kommunikation ist über einen virtualComPort an USB einfach zu gestalten. Dein Programm sendet an den PIC die Helligkeitswerte für die LEDs und bekommt als Antwort den Meßwert des Lichtsensors. Da Du an 8 Bilder pro Sekunde denkst ist das vom Timing her recht unkritisch. Wie die Werte im PC-Programm verknüpft werden sollte keine Schwierigkeit darstellen. Für den Zeitablauf rate ich aber vom mmTimer (oder gar der Timer-Komponente) ab, das läuft nicht rund. Am besten ein eigener thread mit Hardware-Zeitmessung über QueryPerformanceFrequency und ..Counter.
Leider wirst Du Dich ordentlich in die microcontroller-Programmierung reinknien müssen. Da gibt es zwei Philosophien. Hochsprache: leicht zu schreiben und zu debuggen, der Kerl (compiler) macht aber gerne auch schon mal das, was er will = schlechte timing-Kontrolle. Maschinencode im Texteditor (assembler): ggf. nicht portierbar, debuggen am ehesten mit Oszi per pin und überhaupt recht hardware-nah, nicht jedermanns Sache. Vielleicht findest Du speziell für diese Aufgabe ja jemanden, die molzitec GmbH in Münster z.B. (www.molzitec.de) macht sowas sehr professionell. Ansonsten Handbücher wälzen und in kleinen Schritten viel ausprobieren. Viel Erfolg
LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 21:33
ja also das Problem was ich bei dem Würfel oder der Doppelhelix sehe, ist die Ansteuerung...

Ein paar LED's kann man noch über den COM Port ohne µC ansteuern (direkt an die Datenleitungen hängen, ggf. mit externer Spannugnversorgung+Transistor) danach braucht man eben einen µC mit möglichst vielen IO Pins. Dann hängt an jedem IO Pin eine LED und man kann per Software den PIN entweder auf +5V oder auf Masse schalten.

Das Ding: http://www.atmel.com/dyn/products/pr...bfamily_id=760 (habe da jetzt einfach mal irgendwas mit vielen IO Pins rausgesucht, k.A. wie teuer der ist) hat 86 IO Pins macht bis zu 86 LED's die man damit steuern kann.
Das Löten auf der Platine wird dann wahrscheinlich etwas haarig, aber irgendwo muss man Kompromisse machen

Dann brauchst du natürlich noch einen Lötkolben, die LED's und eine Möglichkeit, Platinen zu fertigen.

@ulilüding: Hab ich da was verpasst? Wenn man 64 LEDs unabhängig steuern will, braucht man doch auch 64 Pins, oder nicht? Es sei denn, man schaltet immer nur eine LED zur Zeit, aber dann erscheinen die LEDs sehr dunkel
Ah man könnte natürlich noch mehr kleine schwarze Krümel (aka IC's) verbauen. Aber dafür bin ich zuwenig Elektrotechniker...

Geändert von jfheins (22. Mai 2011 um 21:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#6

AW: Steuerung externer Geräte (eigenbau)

  Alt 22. Mai 2011, 21:44
Klar, wäre es besser z.B. den Cube per µC anzusteuern, denn der PC ist ja kein Echtzeitsystem und je nach Auslastung kann es auch immer mal kurz "hängen".

So kann man den µC eine "vordefinierte" Bildsequenz abspielen lassen,
aber via PC hast du dann noch die Möglichkeiten auch Live-Daten einfließen zu lassen, wie z.B. deine grade gehörte Musik.

PS: selbst ohne Live-Daten muß auch irgendwie das Programm (quasi die Firmeware) auf deinen µC.

Wie gesagt, es gibt einige Anschlußmöglichkeiten und tausende verschiedene Steuereinheiten und dazu dann noch unzählige varianten dach auch noch programmseitig anzusteuern,
aber alles hat irgendwo gewisse Grenzen/Vorteile/Nachteile, welche sich je nach Verwendungszweck stark unterscheiden.

Bezüglich der LEDCubes gibt/gab es in der DP auch schon einige größere und interessante Threads.


[add]
Wenn man jede LED flimmerfrei und gleichzeitig direkt ansteuern will, dann brauchst man pro LED eine Datenleitung.

Für 64 LEDs kann man aber auch 16 (2x8) Leitung nehmen und darüber eine 8x8-Matrix ansteuern.
Es reichen auch 8x3 Leitungen, wenn man es binär kodiert, also 2^3 * 8 = 64.

Oder gleich Seriell, z.B. über ein 64-bittiges Schieberegister, dann braucht man nur 2 Leitungen, aber je mehr man es "komprimiert", um so weniger Daten bekommt man schnell übertragen und um so langsamer ist die Ansteuerung.
Auch muß man aufpassen, daß es nicht zu sehr flimmert.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Mai 2011 um 21:51 Uhr)
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#7

AW: Steuerung externer Geräte (eigenbau)

  Alt 23. Mai 2011, 08:47
Hi,
wie schon von himitsu bemerkt, eine 8x8 Matrix tut es. Da sind dann immer 8 LEDs zugleich an (nicht nur eine!), wenn sie denn leuchten sollen. Den Rest besorgt unser Auge. 25 Bilder pro Sekunde hält das Fernsehen für ausreichend. Mit LEDs habe ich aber auch bei 50Hz noch Flackern gesehen, zumindest mit PWM für die Helligkeit. Daß die LEDs dunkel erscheinen weil sie nur 1/8 der Zeit Strom bekommen kompensiert man, indem sie in dieser Zeit eben entsprechend mehr Strom bekommen. Das ist gängige Praxis, und sie sind genauso hell wie mit ~20mA Dauerstrom.
Für ein ausreichend schnelles Timing muß man den uC schon ausgefuchst programmieren. Und die Matrixverschaltung und die dann hohen Ströme (kann ein uC-port nicht mehr) ist zusätzliche Elektronik vonnöten. Für die Kommunikation mit dem PC muß man sich was einfallen lassen, daß diese das Timing nicht stört (Interrupt eher nicht, wie er schon heißt UNTERBRICHT er ja was, und bitte nicht die Darstellung). Wenn es über Spaßgebastel hinausgehen soll, ist das eine recht anspruchsvolle Aufgabe.
LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#8

AW: Steuerung externer Geräte (eigenbau)

  Alt 23. Mai 2011, 08:51
Fernsehn, also das Röhrenfernsehn, arbeitet mit einer nachleuchtenden Fluoreszenzschicht.
Beim LCD- und LED-TV wird das Bild mehrmals aufgefrischt, als nur die 25 Hz des Videosignals.
(eigentlich 50 Hz, da es 2 Halbbilder sind ... jeweils die geraden und dann die ungeraden Bildzeilen)

Und LEDs leuchten nicht nach. (leider)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

AW: Steuerung externer Geräte (eigenbau)

  Alt 23. Mai 2011, 09:32
Und LEDs leuchten nicht nach. (leider)
Man könnte ja zu jeder LED einen kleinen Kondensator parallel schalten
Darf natürlich nicht zu groß werden, sonst regiert die LEd nicht mehr schnell aufs ausschalten.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#10

AW: Steuerung externer Geräte (eigenbau)

  Alt 23. Mai 2011, 10:05
Moin, moin,

wenn es etwas groesser sein darf. Tauche wieder in den invisible Workmode.
Martin Schaefer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz