WS2812B Nachbrenner für RC Modellflugzeuge (Nachtflug)

    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!

    • WS2812B Nachbrenner für RC Modellflugzeuge (Nachtflug)

      Ein neuer Nachtflieger hat das (Mond-)Licht der Welt erblickt. :saint:

      Einige technische Daten:
      Gebaut aus EPP 20g/dm³
      Spannweite: 100 cm
      Länge: 89 cm (ohne Nachbrenner), 138 cm (mit Nachbrenner)
      Abfluggewicht: 1150 g
      Motor: NTM Prop Drive Series 35-30A 1400kv / 560w
      Luftschraube: Kavan 9x6
      Regler: 60 Ampere Turnigy Plush
      Lipo: 3S 2100 mAh - 3700 mAh

      BASCOM-Quellcode

      1. 'RC Afterburner mit WS2812-Leds
      2. 'Bascom Version 2.0.8.0
      3. '$sim
      4. $regfile = "attiny85.dat"
      5. $crystal = 8000000
      6. $hwstack = 32
      7. $swstack = 10
      8. $framesize = 40
      9. Const Num_leds = 30
      10. Const Num_leds_1 = Num_leds - 1
      11. Config Rainbow = 1 , Rb0_len = Num_leds , Rb0_port = Portb , Rb0_pin = 2
      12. Config Pinb.3 = Input
      13. Rb_selectchannel 0
      14. Dim Farbe(3) As Byte
      15. Rot Alias Farbe(_base)
      16. Gruen Alias Farbe(_base + 1)
      17. Blau Alias Farbe(_base + 2)
      18. Dim N As Byte
      19. Dim M As Word
      20. Dim X As Word
      21. Dim Rc_value As Word
      22. Dim Afterburner_length As Byte
      23. Dim Afterburner_length_1 As Byte 'automatische Änderungen der Nachbrennerlänge
      24. Dim Afterburner_length_final As Byte 'finale Nachbrennerlänge fürs LED-Mapping
      25. Dim Rounds_counter_1 As Byte 'Programmdurchlaufzähler 1 (Häufigkeit der Nachbrennerlängenänderungen)
      26. Dim Rounds_counter_2 As Byte 'Programmdurchlaufzähler 2 (Häufigkeit des "neu wachsen Lassens" des hinterne Teils des Nachbrenners)
      27. Dim Rounds_counter_3 As Byte 'Programmdurchlaufzähler 3 (Auf- und Abbaugeschwindigkeit des Nachbrenners)
      28. Dim Rounds_counter_4 As Byte 'Programmdurchlaufzähler 4 (RC Abfragehäufigkeit)
      29. Dim Data_steps As Word
      30. Dim Data_lines_steps As Word
      31. Const Data_lines = 121 'Anzahl der Datenzeilen
      32. Const On_off_value = 150 'Schaltwert zum ein/ausschalten den Nachbrenners eingeben (min 100, max 200)
      33. Do
      34. Incr Rounds_counter_4
      35. If Rounds_counter_4 > 200 Then 'RC Messung alle x Durchläufe
      36. Pulsein Rc_value , Pinb , 3 , 1 'Werte zwischen 100 (1ms) und 200 (2ms)
      37. Rounds_counter_4 = 0
      38. End If
      39. '********************************* Auf- und Abbau des Nachbrenners *************************************
      40. Incr Rounds_counter_3
      41. If Rc_value > On_off_value Then
      42. If Rounds_counter_3 > 20 Then 'Hier Wert für Aufbaugeschwindigkeit eingeben
      43. Incr Afterburner_length
      44. If Afterburner_length > Num_leds_1 Then Afterburner_length = Num_leds_1 '0-29
      45. Rounds_counter_3 = 0
      46. End If
      47. Else
      48. If Rounds_counter_3 > 20 Then 'Hier Wert für Abbaugeschwindigkeit eingeben
      49. If Afterburner_length > 0 Then Decr Afterburner_length
      50. Rounds_counter_3 = 0
      51. End If
      52. End If
      53. '***********************************************************************************************************
      54. '************ Länge des Nachbrenners (Anzahl leuchtender LEDs) ändert sich automatisch *****************
      55. Incr Rounds_counter_1 'Durchlaufzähler erhöhen
      56. If Rounds_counter_1 > 10 Then 'Längenänderungen erfolgen alle x Programmdurchläufe
      57. If Afterburner_length > 10 Then '... allerdings nur, wenn mindestens x LEDs an wären
      58. Afterburner_length_1 = Afterburner_length - Rnd(6) 'Rnd: maximale Längenänderung
      59. Rounds_counter_1 = 0 'Durchlaufzähler wieder zurücksetzen
      60. Else
      61. Afterburner_length_1 = Afterburner_length 'wenn weniger als x LEDs an sind, wird die tatsächliche Anzahl an LEDs ohne Längenändeungen angezeigt
      62. End If
      63. End If
      64. '***********************************************************************************************************
      65. '********* Hinteren Teil des Nachbrenners (ab 50% oder 66%) immer wieder neu wachsen lassen ************
      66. Incr Rounds_counter_2
      67. If Rounds_counter_2 > Rnd(2) Then
      68. If Afterburner_length_final < Afterburner_length_1 Then
      69. Incr Afterburner_length_final
      70. Else
      71. ' Afterburner_length_final = Afterburner_length_final / 2' Flackern ab der Mitte
      72. Afterburner_length_final = Afterburner_length_final / 3 'Flackern nur ...
      73. Afterburner_length_final = Afterburner_length_final * 2 '...im letzen Drittel
      74. End If
      75. Rounds_counter_2 = 0
      76. End If
      77. '***********************************************************************************************************
      78. '****************************************** LED-Mapping **************************************************
      79. Rb_clearcolors
      80. X = 0
      81. For N = 0 To Afterburner_length_final
      82. '------------ Berechnung, welche Datenzeile für die nächste zu setzende LED benutzt wird ---------------
      83. If N > 0 Then 'Für die erste LED wird immer die erste Datenzeile verwendet
      84. Data_lines_steps = Data_lines / Afterburner_length_final 'Differenz der Datenzeilen zwischen 2 LEDs (in Abhängigkeit der Nachbrennerlänge)
      85. X = Data_lines_steps * N 'Anzahl der Datenzeilen multipliziert mit der nun zu setzenden LED
      86. X = X - 1 'eine Datenzeile abziehen, um ein Überschreiten des Table-Indexes unter ungünstigen Bedingungen zu vermeiden
      87. X = X * 3 'je 3 Datawerte ergeben eine Datenzeile
      88. End If
      89. '-----------------------------------------------------------------------------------------------------------
      90. Rot = Lookup(x , Farben)
      91. X = X + 1 : Gruen = Lookup(x , Farben)
      92. X = X + 1 : Blau = Lookup(x , Farben)
      93. Rb_setcolor N , Farbe()
      94. Next N
      95. If Rc_value < On_off_value And Afterburner_length = 0 Then 'nötig um auch LED Nr. 0 aus zu bekommen
      96. Rb_clearcolors
      97. End If
      98. Rb_send
      99. '***********************************************************************************************************
      100. Loop
      101. End
      102. '(
      103. Linear Gardient, der für die Datenzeilen zugrunde liegt:
      104. rot grün blau Position in %
      105. 255 0 100 0
      106. 128 0 255 40
      107. 30 0 200 65
      108. 0 0 90 75
      109. 0 0 10 100
      110. 121 Zeilen
      111. ')
      112. Farben:
      113. Data 255 , 0 , 100
      114. Data 252 , 0 , 103
      115. Data 250 , 0 , 106
      116. Data 247 , 0 , 110
      117. Data 244 , 0 , 113
      118. Data 242 , 0 , 116
      119. Data 239 , 0 , 119
      120. Data 236 , 0 , 123
      121. Data 234 , 0 , 126
      122. Data 231 , 0 , 129
      123. Data 229 , 0 , 132
      124. Data 226 , 0 , 136
      125. Data 223 , 0 , 139
      126. Data 221 , 0 , 142
      127. Data 218 , 0 , 145
      128. Data 215 , 0 , 148
      129. Data 213 , 0 , 152
      130. Data 210 , 0 , 155
      131. Data 207 , 0 , 158
      132. Data 205 , 0 , 161
      133. Data 202 , 0 , 165
      134. Data 199 , 0 , 168
      135. Data 197 , 0 , 171
      136. Data 194 , 0 , 174
      137. Data 192 , 0 , 178
      138. Data 189 , 0 , 181
      139. Data 186 , 0 , 184
      140. Data 184 , 0 , 187
      141. Data 181 , 0 , 190
      142. Data 178 , 0 , 194
      143. Data 176 , 0 , 197
      144. Data 173 , 0 , 200
      145. Data 170 , 0 , 203
      146. Data 168 , 0 , 207
      147. Data 165 , 0 , 210
      148. Data 162 , 0 , 213
      149. Data 160 , 0 , 216
      150. Data 157 , 0 , 219
      151. Data 154 , 0 , 223
      152. Data 152 , 0 , 226
      153. Data 149 , 0 , 229
      154. Data 147 , 0 , 232
      155. Data 144 , 0 , 236
      156. Data 141 , 0 , 239
      157. Data 139 , 0 , 242
      158. Data 136 , 0 , 245
      159. Data 133 , 0 , 249
      160. Data 131 , 0 , 252
      161. Data 128 , 0 , 255
      162. Data 125 , 0 , 253
      163. Data 121 , 0 , 251
      164. Data 118 , 0 , 250
      165. Data 115 , 0 , 248
      166. Data 112 , 0 , 246
      167. Data 108 , 0 , 244
      168. Data 105 , 0 , 242
      169. Data 102 , 0 , 240
      170. Data 99 , 0 , 239
      171. Data 95 , 0 , 237
      172. Data 92 , 0 , 235
      173. Data 89 , 0 , 233
      174. Data 86 , 0 , 231
      175. Data 82 , 0 , 229
      176. Data 79 , 0 , 228
      177. Data 76 , 0 , 226
      178. Data 72 , 0 , 224
      179. Data 69 , 0 , 222
      180. Data 66 , 0 , 220
      181. Data 63 , 0 , 218
      182. Data 59 , 0 , 217
      183. Data 56 , 0 , 215
      184. Data 53 , 0 , 213
      185. Data 50 , 0 , 211
      186. Data 46 , 0 , 209
      187. Data 43 , 0 , 207
      188. Data 40 , 0 , 206
      189. Data 37 , 0 , 204
      190. Data 33 , 0 , 202
      191. Data 30 , 0 , 200
      192. Data 28 , 0 , 191
      193. Data 25 , 0 , 182
      194. Data 23 , 0 , 173
      195. Data 20 , 0 , 163
      196. Data 18 , 0 , 154
      197. Data 15 , 0 , 145
      198. Data 13 , 0 , 136
      199. Data 10 , 0 , 127
      200. Data 8 , 0 , 118
      201. Data 5 , 0 , 108
      202. Data 3 , 0 , 99
      203. Data 0 , 0 , 90
      204. Data 0 , 0 , 87
      205. Data 0 , 0 , 85
      206. Data 0 , 0 , 82
      207. Data 0 , 0 , 79
      208. Data 0 , 0 , 77
      209. Data 0 , 0 , 74
      210. Data 0 , 0 , 71
      211. Data 0 , 0 , 69
      212. Data 0 , 0 , 66
      213. Data 0 , 0 , 63
      214. Data 0 , 0 , 61
      215. Data 0 , 0 , 58
      216. Data 0 , 0 , 55
      217. Data 0 , 0 , 53
      218. Data 0 , 0 , 50
      219. Data 0 , 0 , 47
      220. Data 0 , 0 , 45
      221. Data 0 , 0 , 42
      222. Data 0 , 0 , 39
      223. Data 0 , 0 , 37
      224. Data 0 , 0 , 34
      225. Data 0 , 0 , 31
      226. Data 0 , 0 , 29
      227. Data 0 , 0 , 26
      228. Data 0 , 0 , 23
      229. Data 0 , 0 , 21
      230. Data 0 , 0 , 18
      231. Data 0 , 0 , 15
      232. Data 0 , 0 , 13
      233. Data 0 , 0 , 10
      Alles anzeigen

      Im Video wurde noch die erste Version des Codes benutzt. Dieser war noch etwas "verbuged". Es tauchte beim Hoch- und Runterfahren des Nachbrenners immer wieder eine türkise LED auf (im Video u.a. kurz bei 0:16 am rechten Nachbrenner zu sehen). Ist im aktuellen Code bereits beseitigt.




      Die wenigen Bilder, die während des Baus gemacht wurden, können bei Interesse hier gefunden werden:
      Kurze Baubeschreibung vom Nightflight Delta

      Nette Grüße,
      Robert

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von R2D2 Bastler ()

    • Entweder alleine oder bei Treffen mit anderen Vereinen auch mal mit mehreren. Allerding ist das Nachtfliegen dank "Doofprint und Co" kaum noch legal/bezahlbar zu machen.

      btw. wie krieg ich das Youtube Video hier eingebettet? Habs offensichtlich bei meinen anderen Postings schon geschafft, nur heut bekomme ich es nicht mehr hin a_27_b277ca12

      Vielleicht Alzheimer a_28_2c02f089
    • R2D2 Bastler schrieb:

      Allerding ist das Nachtfliegen dank "Doofprint und Co" kaum noch legal/bezahlbar zu machen.
      Oh, gibt's schon eine Maut für Modellflug bei der Nacht? ;)
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • So kann man es fast schon nennen. Man muss sich Tage im Vorraus anmelden, jedesmal Kohle hinblättern und wenn's dann regnet oder stürmt hat man einfach Pech gehabt :cursing:

      Die einzige kleine Lücke, die für den kostenlosen, legalen Nachtflug noch bleibt, ist lediglich die Zeit zwischen Sonnenuntergang und dem "Ende der bürgerlichen Abenddämmerung". a_45_132ca9f5
      Ich musste erst mal googlen, was dass überhaut sein soll.

      Gruß
      Robert
    • Hallo R2D2 Bastler,
      sehr schönes Hobby und sehr schönes Modell.
      Laut Wikipedia: Beginnt die bürgerliche Dämmerung mit dem Sonnenuntergang und endet nach astronomischer Definition, wenn der Mittelpunkt der Sonnenscheibe 6 Grad unter dem wahren Horizont steht.
      6 Grad ist nicht wirklich viel ich denke da ist es noch ziemlich hell.
      Netten Gruß Cable
      Versuch macht klug !
    • R2D2 Bastler schrieb:

      So kann man es fast schon nennen. Man muss sich Tage im Vorraus anmelden, jedesmal Kohle hinblättern
      Ich wohnt falsch :) Hier kräht kein Hahn danach wann, wo und wie man sowas in die Luft bringt, zumindest so lange nicht, wie man niemanden belästigt, gefährdet und nicht im überwachtem Luftraum fliegt (Airbus- Geleit :D )
      Wenn das die Lösung ist, möchte ich mein Problem wieder haben.
    • Cable schrieb:

      6 Grad ist nicht wirklich viel ich denke da ist es noch ziemlich hell.
      Rabenschwarze Nacht haben wir da leider noch nicht. Aber je nach Wetterlage (dicke, dunkle Bewölkung am ganzen Himmel) ist es dunkel genug für's Nachtfliegen (der "normale" Modellflieger würde dann bereits nicht mehr fliegen). Um den genauen Zeitpunkt für das Ende der bürgerlichen Abendämmerung heraus zu finden, benutze ich immer die Seite des Deutschen Wetterdienstes.
      Auf dieser Karte...
      Dämmerungszeiten Deutscher Wetterdienst
      ... wählt man den Flughafen, der der eigenen Position am nächsten ist. In der dann erscheinenden Tabelle scrollt man zum aktuellen Datum und nimmt in dieser Zeile die 4. Uhrzeit (Spalte BDE). Da die Zeitangaben (wie in der Fliegerei üblich) UTC Zeiten sind, muss hier noch 2h (Sommerzeit) oder 1h (Winterzeit) dazu addiert werden. Alles vor dieser Uhrzeit ist offiziell noch kein Nachtflug und genehmigungsfrei. :thumbsup:

      @ Galahat
      Ohne Deine geniale Rainbow-lib wäre ich bis heute nicht in der Lage, auch nur eine einzige WS2812B-Led zum Leuchten zu bringen. Du bist also "mitverantwortlich" für meine Spielereien. :D
      tschoeatsch Flammen-Code brachte dann noch ein zusätzliches Gimmick in dieses Projekt . :thumbup:
      Ich kann mich an dieser Stelle nur (schon wieder) ganz herzlich Bedanken bei Euch und dem Forum hier.


      Gruß
      Robert