Mini 3D-Cube [Prototyp halbfertig]

Unterbodenbeleuchtung, Pimp my room, usw.

Moderator: T.Hoffmann

Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Di, 09.01.07, 12:37

@Robo9 Wow, sieht Klasse aus.
Bist aber mutig, gleich mit Zeitmultiplexing zu arbeiten. :wink:
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Di, 09.01.07, 12:39

Ja nur aus Erfahrung und Fehlern wird man schlau. :lol:
Benutzeravatar
Sh@rk
Auserwählter
Auserwählter
Beiträge: 3820
Registriert: Do, 17.08.06, 17:55
Wohnort: Thüringen
Kontaktdaten:

Di, 09.01.07, 15:22

@Robo9 ich finde das es sehr gut geworden ist, also ob ich das alles so gut hin bekommen hätte mit den Biegen, also ich finde das du sehr gut gearbeitet hast.

Mit Freundlichen Grüßen Sh@rk
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Di, 09.01.07, 17:24

Danke :oops:
habe mir ne Schablone gebohrt damit die alle den gleichen abstand haben und sie dan gelötet


Mfg Robo9
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Mi, 10.01.07, 03:03

Ich finds auch echt super :D
Hab Ich das jetzt richtig verstanden bist du auch ein Anfänger in Sachen Mikrocontrolling oder schon ein kleiner Pro :oops: ???


MfG Alex
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Mi, 10.01.07, 06:16

bin eigentlich ein Anfänger mit Erfahrung.Wie gesagt habe ich so was schon mal in der schule gehabt aber dort haben wir nur programmiert und ein bischen grundstruktur des Controllers. Aber ich währe nie auf die idee gekommen so was selber zu machen.


Mfg Robo9
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Mi, 10.01.07, 06:48

Achso :P
Ich werde ja nun auch bald mal anfangen mit dem Programmieren :D
Ich freu mich schon so *gg*


MfG Alex
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mi, 10.01.07, 17:09

Wie sieht denn für dein Beispiel der Programmcode aus?...kannst du das Listing dafür mal hier Posten?
Am besten für die Ansteuerung aller 27 LED´s.
So könnte man sich anhand deines Listings mehr Infos aneignen und schon mal selbst herumexperimentieren.
Würde mich Freuen.
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mi, 10.01.07, 19:09

@Andy was meinst genau mit Listing?
Momentan werden nur 18 Leds angesteuert, da der Atmega8 nicht genügend I/Os-Pins hat.
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mi, 10.01.07, 19:18

Ich meinte damit das Programm als Solches, was du Geschrieben hast, nennt man dieses denn nicht auch Listing?....hmmm...oki...aber jetzt weißt du ja, was ich meinte...lol :wink:
Das mit dem AtMega8 und nur den 18 LED´s wußte ich ja...aber ich hatte Gedacht, das du das Programm schon für den 32er fertig hättest.
Aber das für den ATMega8 tut es dann ja auch... müßte man dann halt nur für die anderen IO Ports erweitern...
Wäre ja auch nur um mal einen Einblick in die Größe und dem Umfang einer solchen Programierung zu bekommen,
damit die User einen ungefähren Eindruck bekommen, wieviel 2 KB´s sind...weil ja nur 4KB in dem BasCom Programm freigegeben werden (is halt ne Demo)
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mi, 10.01.07, 19:25

Aso, jetzt habe ich es verstanden. :wink:

Klar kann ich machen. Aber mein Code ist noch nicht ganz fertig. Bestimmt kann man da noch was optimieren. :wink:
Ist außerdem sehr umfangreich und nicht sehr leicht überschaubar. Da ich auch noch mit Unterprogrammen, IF-Funktionen, Pause über Variabel arbeitete... und nur teilweise kommentiert habe.

Also hier der Code von meinem 3D-Cube (nur 18 Leds werden angesteuert):

Code: Alles auswählen


$regfile = "m8def.dat"                                      'definieren des verwendeten Chips

$crystal = 1000000                                          'definieren des verwendeten externen Quarz (8MHz)

Dim P As Integer
Dim Ol As Bit

Ddrd = &B11111111
Ddrb = &B111111
Ddrc = &B111111

Leda1 Alias Portc.0
Leda2 Alias Portc.1
Leda3 Alias Portc.2
Leda4 Alias Portc.3
Leda5 Alias Portc.4
Leda6 Alias Portc.5
Leda7 Alias Portb.0
Leda8 Alias Portb.1
Leda9 Alias Portb.2

Ledb1 Alias Portb.4
Ledb2 Alias Portb.5
Ledb3 Alias Portd.0
Ledb4 Alias Portd.1
Ledb5 Alias Portd.2
Ledb6 Alias Portd.3
Ledb7 Alias Portd.4
Ledb8 Alias Portd.5
Ledb9 Alias Portd.6

Do
Ol = 0

P = 200
Gosub Drehung
Gosub Drehung
P = 150
Gosub Drehung
Gosub Drehung
P = 100
Gosub Drehung
Gosub Drehung
P = 50
Gosub Drehung
Gosub Drehung
P = 1000
Ol = 1
Gosub Drehung
Ol = 0
Gosub Alloff
'-- Fallen der Blöcke
P = 200
Gosub Fallen

'-- Leuchten komplett unten, mitte, oben...
P = 300
Gosub Alloff
Gosub Hochrunter
Gosub Hochrunter
P = 150
Gosub Hochrunter
Gosub Hochrunter
P = 100
Gosub Hochrunter
Gosub Hochrunter

'-- Punkt der sich bewegt
P = 100
Gosub Fleda1
Gosub Fleda2
Gosub Fleda3
Gosub Fleda6
Gosub Fleda9
Gosub Fleda8
Gosub Fleda7
Gosub Fleda4
Gosub Fledb1
Gosub Fledb2
Gosub Fledb3
Gosub Fledb6
Gosub Fledb9
Gosub Fledb8
Gosub Fledb7
Gosub Fledb4
Gosub Fledb1
Gosub 2punkt
Gosub 2punkt
Gosub 2punkt

'2 Punkt zu zwei Vierecken
Ol = 1
Gosub 2punkt
Ol = 0

Ol = 0
Gosub 2punkt

Ol = 1
Gosub 2punkt
Ol = 0

Waitms 1000

Gosub Alloff

P = 200
Ol = 1

Gosub Fleda1

Gosub Fleda4

Gosub Fleda5

Gosub Fleda9

Gosub Fleda7

Gosub Fleda8

Waitms 1000

Gosub Fledb1

Gosub Fledb2

Gosub Fledb3

Gosub Fledb6

Gosub Fledb9

Gosub Fledb5
Ol = 0
Waitms 1000

Gosub Alloff

P = 400
Gosub Diablinken
Gosub Diablinken
P = 200
Gosub Diablinken
Gosub Diablinken
P = 100
Gosub Diablinken
Gosub Diablinken

P = 400
Gosub Aidrehen
Gosub Aidrehen
P = 200
Gosub Aidrehen
Gosub Bidrehen
Gosub Aidrehen
P = 100
Gosub Aidrehen
Gosub Bidrehen
Gosub Aidrehen


Loop

'-------------------------------------------------------------------------------------------------- außerhalb Loop / ab Hier Unterprogramme ----------------------------------------------------------------------------------------

Aidrehen:
Leda5 = 1
Leda2 = 1
Leda8 = 1
Waitms P
Gosub Alloff
Leda5 = 1
Leda3 = 1
Leda7 = 1
Waitms P
Gosub Alloff
Leda5 = 1
Leda4 = 1
Leda6 = 1
Waitms P
Gosub Alloff
Leda1 = 1
Leda5 = 1
Leda9 = 1
Waitms P
Gosub Alloff
Return

Bidrehen:
Ledb5 = 1
Ledb2 = 1
Ledb8 = 1
Waitms P
Gosub Alloff
Ledb5 = 1
Ledb3 = 1
Ledb7 = 1
Waitms P
Gosub Alloff
Ledb5 = 1
Ledb4 = 1
Ledb6 = 1
Waitms P
Gosub Alloff
Ledb1 = 1
Ledb5 = 1
Ledb9 = 1
Waitms P
Gosub Alloff
Return

Diablinken:
Gosub Adiarechtsunten
Waitms P
Gosub Alloff
Gosub Bdialinksoben
Waitms P
Gosub Alloff
Return


Adiarechtsunten:
Leda1 = 1
Leda4 = 1
Leda5 = 1
Leda9 = 1
Leda7 = 1
Leda8 = 1
Return

Bdialinksoben:
Ledb1 = 1
Ledb2 = 1
Ledb3 = 1
Ledb6 = 1
Ledb9 = 1
Ledb5 = 1
Return

Fallen:
Gosub Fleda3
Gosub Fleda2
Gosub Fleda1

Leda1 = 1

Gosub Fleda6
Gosub Fleda5
Gosub Fleda4

Leda4 = 1

Gosub Fleda9
Gosub Fleda8
Gosub Fleda7

Leda7 = 1

Gosub Fledb3
Gosub Fledb2
Gosub Fledb1

Ledb1 = 1

Gosub Fledb6
Gosub Fledb5
Gosub Fledb4

Ledb4 = 1

Gosub Fledb9
Gosub Fledb8
Gosub Fledb7

Ledb7 = 1
Return

2punkt:

'-- 2 Punkte die sich bewegen

Leda1 = 1
Ledb7 = 1

Waitms P
Gosub Alloff

Leda2 = 1
Ledb8 = 1

Waitms P
Gosub Alloff

Leda3 = 1
Ledb9 = 1

Waitms P
Gosub Alloff

Leda6 = 1
Ledb6 = 1

Waitms P
Gosub Alloff

Leda9 = 1
Ledb3 = 1

Waitms P
Gosub Alloff

Leda8 = 1
Ledb2 = 1

Waitms P
Gosub Alloff

Leda7 = 1
Ledb1 = 1

Waitms P
Gosub Alloff

Leda4 = 1
Ledb4 = 1

Waitms P
Gosub Alloff

Return

Nzeichen1:
Leda1 = 1
Leda2 = 1
Leda3 = 1
Leda5 = 1
Leda7 = 1
Leda8 = 1
Leda9 = 1

Return

Nzeichen2:
Ledb1 = 1
Ledb2 = 1
Ledb3 = 1
Ledb5 = 1
Ledb7 = 1
Ledb8 = 1
Ledb9 = 1

Return

' -- Hoch und runter (beginnt mit mitte -> oben -> mitte -> unten)

Hochrunter:


Gosub Mitte
Waitms P
Gosub Alloff
Gosub Oben
Waitms P
Gosub Alloff
Gosub Mitte
Waitms P
Gosub Alloff
Gosub Unten
Waitms P
Gosub Alloff

Return

Unten:

Leda1 = 1
Leda4 = 1
Leda7 = 1
Ledb1 = 1
Ledb4 = 1
Ledb7 = 1

Return

Mitte:

Leda2 = 1
Leda5 = 1
Leda8 = 1
Ledb2 = 1
Ledb5 = 1
Ledb8 = 1

Return

Oben:

Leda3 = 1
Leda6 = 1
Leda9 = 1
Ledb3 = 1
Ledb6 = 1
Ledb9 = 1

Return

Drehung:

  Ledb2 = 1
  Leda2 = 1
  Ledb8 = 1
  Leda8 = 1
  Waitms P
  Gosub Alloff

  Leda3 = 1
  Ledb3 = 1
  Leda7 = 1
  Ledb7 = 1
  Waitms P
  Gosub Alloff

  Leda4 = 1
  Ledb4 = 1
  Leda6 = 1
  Ledb6 = 1
  Waitms P
  Gosub Alloff

  Leda1 = 1
  Ledb1 = 1
  Leda9 = 1
  Ledb9 = 1
  Waitms P
  Gosub Alloff

  Return

Allon:
  Leda1 = 1
  Leda2 = 1
  Leda3 = 1
  Leda4 = 1
  Leda5 = 1
  Leda6 = 1
  Leda7 = 1
  Leda8 = 1
  Leda9 = 1
  Ledb1 = 1
  Ledb2 = 1
  Ledb3 = 1
  Ledb4 = 1
  Ledb5 = 1
  Ledb6 = 1
  Ledb7 = 1
  Ledb8 = 1
  Ledb9 = 1

  Return


  Alloff:
  If Ol = 0 Then
  Leda1 = 0
  Leda2 = 0
  Leda3 = 0
  Leda4 = 0
  Leda5 = 0
  Leda6 = 0
  Leda7 = 0
  Leda8 = 0
  Leda9 = 0
  Ledb1 = 0
  Ledb2 = 0
  Ledb3 = 0
  Ledb4 = 0
  Ledb5 = 0
  Ledb6 = 0
  Ledb7 = 0
  Ledb8 = 0
  Ledb9 = 0
  End If
  Return

Fleda1:
     Leda1 = 1
     Waitms P
     If Ol = 0 Then
     Leda1 = 0
     End If
     Return

Fleda2:
     Leda2 = 1
     Waitms P
     If Ol = 0 Then
     Leda2 = 0
     End If
     Return
Fleda3:

     Leda3 = 1
     Waitms P
     If Ol = 0 Then
     Leda3 = 0
     End If
     Return
Fleda4:
     Leda4 = 1
     Waitms P
     If Ol = 0 Then
     Leda4 = 0
     End If
     Return
Fleda5:
     Leda5 = 1
     Waitms P
     If Ol = 0 Then
     Leda5 = 0
     End If
     Return
Fleda6:
     Leda6 = 1
     Waitms P
     If Ol = 0 Then
     Leda6 = 0
     End If
     Return
Fleda7:
     Leda7 = 1
     Waitms P
     If Ol = 0 Then
     Leda7 = 0
     End If
     Return
Fleda8:
     Leda8 = 1
     Waitms P
     If Ol = 0 Then
     Leda8 = 0
     End If
     Return
Fleda9:
     Leda9 = 1
     Waitms P
     If Ol = 0 Then
     Leda9 = 0
     End If
     Return
Fledb1:
     Ledb1 = 1
     Waitms P
     If Ol = 0 Then
     Ledb1 = 0
     End If
     Return
Fledb2:
     Ledb2 = 1
     Waitms P
     If Ol = 0 Then
     Ledb2 = 0
     End If
     Return
Fledb3:
     Ledb3 = 1
     Waitms P
     If Ol = 0 Then
     Ledb3 = 0
     End If
     Return
Fledb4:
     Ledb4 = 1
     Waitms P
     If Ol = 0 Then
     Ledb4 = 0
     End If
     Return
Fledb5:
     Ledb5 = 1
     Waitms P
     If Ol = 0 Then
     Ledb5 = 0
     End If
     Return
Fledb6:
     Ledb6 = 1
     Waitms P
     If Ol = 0 Then
     Ledb6 = 0
     End If
     Return
Fledb7:
     Ledb7 = 1
     Waitms P
     If Ol = 0 Then
     Ledb7 = 0
     End If
     Return
Fledb8:
     Ledb8 = 1
     Waitms P
     If Ol = 0 Then
     Ledb8 = 0
     End If
     Return
Fledb9:
     Ledb9 = 1
     Waitms P
     If Ol = 0 Then
     Ledb9 = 0
     End If
     Return
Zuletzt geändert von Pehu am Mi, 10.01.07, 20:45, insgesamt 1-mal geändert.
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mi, 10.01.07, 19:30

Also ersteinmal Danke dafür, das du meine Bitte erfüllt hast.

So Leute...das sind jetzt ca. 2KB....

Also ihr seht, das das ganze nu doch nicht so einfach ist, wie ihr vermutet habt...

Steckt ne menge Arbeit drin...


So...nu kommt Ihr... :wink: :lol: :wink: :lol:

Und was macht ihr nu ???....ganz recht

:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Fr, 12.01.07, 13:34

So habe das Bord zusammengelötet und es funktioniert super.
habe das How² von Pehu angewendet und schon nen bischen rumexperemtiert.
das löten hat 1 1/2 h gedauert.

Pehu war bei dir auch noch ein teil Übrig?????
das Teil ist ein IC wo mehrere Mikroschalter drauf sind

Mfg Robo9
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Fr, 12.01.07, 13:40

Hehehe...das is kein IC... das nennt man im Allgemeinen ein "Mäuseklavir" das sind eigentlich kleine Dipschalter.
Oder auch Kodierschalter genannt.
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Fr, 12.01.07, 18:55

Hm, komisch bei mir waren keine Dipschalter dabei. Nur Jumpers, wie man die von Mainboards kennt.
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Sa, 13.01.07, 10:01

Jumpers waren auch da bei.
Es sind alle teile dabei diem na für das Bord braucht und die in der Liste stehen aber das Mäuseklavie ist übrich geblieben. na ja mal sehen was ich damit mache :lol:

Mfg Robo9
Benutzeravatar
Jay
Hyper-User
Hyper-User
Beiträge: 1096
Registriert: Mo, 08.05.06, 07:54
Wohnort: Österreich

So, 21.01.07, 19:58

Pehu kannst du uns den Code zur verfügung stellen? oder ist es geheim? :P

MfG
Jay
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

So, 21.01.07, 20:26

@Jay Staatsgeheimnis. :P Scherz bei Seite. Ich habe meinen Code bereits oben gepostet.

Jedoch nur mit 18 Leds, da ich an meinem 3D-Cube noch nicht weitergearbeitet habe.
Da mir wieder eine andere geile Idee/Projekt einfällt. :o

Somit wird der 3D-Cube erstmal stehen.
Benutzeravatar
Jay
Hyper-User
Hyper-User
Beiträge: 1096
Registriert: Mo, 08.05.06, 07:54
Wohnort: Österreich

So, 21.01.07, 21:02

ups garnicht gesehn, sorry :oops:

MfG
Jay
Antworten