Modellbauservo-Plotter, mein nächster Schritt

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Fertig! Zumindest der Versuchsaufbau. Den Servos wurden noch ordentliche Schenkel verpasst, sodass die Handschrift schöner wurde. Was noch nicht perfekt ist, ist der Löscher, noch zu laut und die Magnetleiste liegt nicht schön an der Schreibtafel an, sodass nach dem Löschen Schatten übrig bleiben. Aber sonst: Ich bin zufrieden.
      Die features:
      Uhrzeit von einer DS3231-RTC, synchronisiert durch dcf77-Empfang
      nur die Stellen werden neu geschrieben, die sich auch geändert haben. Es wird also auch partiell gelöscht.

      Was in der software noch nicht drin ist, der dcf-Empfang ist wärend ein Servo läuft nicht möglich, ob die Nähe der Kabel/Servos zum Empfänger zu gering ist oder Störungen durch die Versorgung kommen, weiß ich nicht. Es wäre ein Abschalten der Uhrzeitschreiberei in den Nachtstunden möglich, dann gibt es guten dcf-Empfang und alles passt.



      Der nächste Schritt ist der Bau eines verschenkbaren Modells, ich werde berichten...
      Für Interessierte der code, mit 8750 bytes für den flash überschaubar:
      Servoplotter_dcf-RN-1.bas Der Hauptcode
      dcf77_soft.bas die nötige include-Datei für dcf77
      dcf77-rn.lib.txt die lib für das bascom/lib-Verzeichnis, bitte umbenennen und dazu das .txt entfernen
      Der Zeichensatz wird mit Hilfe von Vorlagen und eines Zusatzprogramms am Gerät digitalisiert, ein direkter Nachbau mit dem geposteten code (data-Tabellen) wird nicht recht funktionieren Wenn Nachbauinteresse besteht, ich helfe gerne.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ich bin in einer glücklichen Lage, mehr sag' ich nicht.

      Doch, ein's sag' ich noch, statt in die Fernsehglotze schau ich in den Monitor.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Alternative DCF-77 Auswertung.

      BASCOM-Quellcode

      1. ' Datei für Attiny-Platine von E. Eube, G. Heinrichs und U. Ihlefeldt
      2. ' Gibt Stunden, Minuten und Sekunden an LCD aus.
      3. ' DCF1 von Pollin an Attiny:
      4. ' VDD an +2,5V (!)
      5. ' GND an Masse
      6. ' PON an Masse
      7. ' DATA an PortD.3 <-Kabel-> D3 (Eingang; INT1; >>>Doch<<< Pull-Up)
      8. ' Das Kabel von DATA nach D3 darf erst nach dem Einschalten des
      9. ' Mikrocontrollers gesetzt werden; sonst täuscht der DCF-Baustein ein
      10. ' Drücken von Ta1 vor -> Probleme beim Bootloader!
      11. ' LCD an PortB
      12. ' LED zur Kontrolle an PortD.6
      13. ' Antenne horizontal und senkrecht zum DCF-Sender
      14. '----------------------------------------------------------------------------
      15. $regfile = "attiny2313.dat" 'Attiny2313
      16. $crystal = 4000000 '4 MHz
      17. $baud = 9600
      18. '**********************************************************
      19. '******************* Deklarationen ************************
      20. Dim Werte(40) As Byte
      21. Dim Zaehler As Byte
      22. Dim Minuten As Byte
      23. Dim M1 As Byte
      24. Dim S1 As Byte
      25. Dim Stunden As Byte
      26. Dim Sekunden As Byte
      27. Dim Zeit As String * 8
      28. Declare Sub Auswerten()
      29. '****************** Initialisierung ***********************
      30. Ddrb = &B11111111 'Port B als Ausgangsport
      31. Ddrd = &B01110000 'D4, D5, D6 als Ausgang; Rest als Eingang
      32. Portd = &B00001000 'PortD. 3 auf high legen
      33. Config Lcd = 16 * 2 'LCD konfigurieren
      34. Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.6
      35. Cursor Off
      36. Enable Int1 'vgl. BASCOM-Hilfe...
      37. Config Int1 = Rising
      38. Enable Interrupts
      39. On Int1 Signal
      40. Config Timer1 = Timer , Prescale = 1024 '0,256ms
      41. '**********************************************************
      42. '******************** Hauptprogramm ***********************
      43. Wait 3
      44. Cls
      45. Lcd "DCF-Zeit:"
      46. Zaehler = 0
      47. Minuten = 0
      48. Stunden = 0
      49. Sekunden = 0
      50. Do
      51. Loop
      52. '**********************************************************
      53. '******************* Unterprogramme ***********************
      54. Sub Auswerten()
      55. 'Hier werden die Minuten und Stunden aus den Bits 22 bis 34 berechnet
      56. Minuten = Werte(21)
      57. M1 = Werte(22) * 2
      58. Minuten = Minuten + M1
      59. M1 = Werte(23) * 4
      60. Minuten = Minuten + M1
      61. M1 = Werte(24) * 8
      62. Minuten = Minuten + M1
      63. M1 = Werte(25) * 10
      64. Minuten = Minuten + M1
      65. M1 = Werte(26) * 20
      66. Minuten = Minuten + M1
      67. M1 = Werte(27) * 40
      68. Minuten = Minuten + M1
      69. Stunden = Werte(29)
      70. S1 = Werte(30) * 2
      71. Stunden = Stunden + S1
      72. S1 = Werte(31) * 4
      73. Stunden = Stunden + S1
      74. S1 = Werte(32) * 8
      75. Stunden = Stunden + S1
      76. S1 = Werte(33) * 10
      77. Stunden = Stunden + S1
      78. S1 = Werte(34) * 20
      79. Stunden = Stunden + S1
      80. 'Anzeige auf LCD
      81. Locate 2 , 1
      82. If Stunden < 10 Then Lcd "0"
      83. Lcd Stunden ; ":"
      84. If Minuten < 10 Then Lcd "0"
      85. Lcd Minuten ; ":"
      86. End Sub
      87. '**********************************************************
      88. '******************Interruptroutinen***********************
      89. Signal:
      90. Portd.6 = 1 'Sekundenblinker
      91. Waitms 150
      92. Portd.6 = 0
      93. Zaehler = Zaehler + 1
      94. 'Wenn kurzes Signal (100 ms), dann jetzt Pind.3 = 0 -> logisch 0, sonst logisch 1
      95. 'Nur die ersten 36 Bits zur späteren Auswertung speichern
      96. If Zaehler <= 36 Then
      97. If Pind.3 = 0 Then Werte(zaehler) = 0 Else Werte(zaehler) = 1
      98. End If
      99. 'Timer1 gibt die Zeit seit dem letzten INT1-Interrupt (minus 150 ms) an.
      100. 'Bei der 59. Sekunde gibt es kein Signal, also wird beim nächsten INT1-Interrupt
      101. '[Minute voll] die Zeit von 1 s überschritten;
      102. 'dann ist eine Auswertung der empfangenen Bits fällig.
      103. If Timer1 > 6000 Then 'also nach mehr als ca. 1,536 s
      104. Call Auswerten() 'nur bei voller Minute auswerten, anzeigen und
      105. Zaehler = 0 'Zähler zurücksetzen
      106. End If
      107. 'Bei jedem INT1-Interrupt:
      108. Timer1 = 0 '
      109. Sekunden = Zaehler
      110. Locate 2 , 7
      111. If Sekunden < 10 Then Lcd "0"
      112. Lcd Sekunden
      113. Return
      Alles anzeigen
      DCF77-LED.GIF
    • ftelektro schrieb:

      Alternative DCF-77 Auswertung.
      Naja, mal ganz nett zum Rumprobieren, aber für die Praxis nicht so recht tauglich. Keine Paritäts- bzw Plausibilitätprüfung. Da werden 'interessante' Uhrzeiten raus kommen ^^
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Kaum bin ich ein paar Tage nicht hier, schon bringst Du ein paar Servos das Schreiben bei :)

      tschoeatsch schrieb:

      Ich bin in einer glücklichen Lage, mehr sag' ich nicht.
      Doch, ein's sag' ich noch, statt in die Fernsehglotze schau ich in den Monitor.
      Neben der Zeit beneide ich Dich um Deine Fähigkeit, sowas überhaupt umzusetzen. Bin immer wieder aufs neue begeistert. Und was die Glotze angeht: Wer braucht schon TV, bei dem Entertainment hier im Forum a_170_58e0202d a_42_02cc30b2
      Gruß
      Robert
    • Nachdem mir ein freundlicher user die Formeln für die 'inverse Kinematik' überlassen hat, probiere ich das Ganze nochmal mit Rechnerei. Einfach mal um zu sehen, wieweit sich der code aufbläht. Einen unbestrittenen Vorteil hätte man bei der Eingabe der 'Wegpunkte' für die einzelnen Ziffern/Zeichen. Das könnte man dann am Schreibtisch machen (x-y-Werte) und durch lineare Verschiebungsmöglichkeit braucht man das auch nur für eine Stelle machen.
      Für Interessierte geht's dann unter 'Projekte' in einem neuen thread weiter.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------