My static website generator using poole https://www.xythobuz.de
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ledcube.de.html 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>8x8x8 LED Wuerfel (#) xythobuz.de</title>
  6. <meta name="description" content="AVR LED Cube with Java Software and Music Visualization" />
  7. <meta name="keywords" content="xythobuz" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <link rel="author" href="/xythobuz@xythobuz.de">
  10. <link rel="shortcut icon" href="/img/favicon.ico">
  11. <link rel="alternate" type="application/rss+xml" title="Blog" href="/rss.xml">
  12. <link type="text/css" rel="stylesheet" href="/css/sh_bright.min.css" />
  13. <link rel="stylesheet" href="/css/bootstrap.css" type="text/css" media="screen" />
  14. <link rel="stylesheet" href="/css/gh-fork-ribbon.css" />
  15. <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
  16. <script type="text/javascript" src="/js/sh_main.js"></script>
  17. <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
  18. <script type="text/javascript" src="/js/bootstrap.js"></script>
  19. <script type='text/javascript'>
  20. /* <![CDATA[ */
  21. (function() {
  22. var s = document.createElement('script');
  23. var t = document.getElementsByTagName('script')[0];
  24. s.type = 'text/javascript';
  25. s.async = true;
  26. s.src = '//api.flattr.com/js/0.6/load.js?mode=auto&uid=xythobuz&category=text';
  27. t.parentNode.insertBefore(s, t);
  28. })();
  29. /* ]]> */
  30. </script>
  31. </head>
  32. <body onload="sh_highlightDocument('/js/sh/', '.min.js');" style="font-size: 1.1em; font-family: 'Droid Sans', sans-serif;">
  33. <div class="github-fork-ribbon-wrapper right">
  34. <div class="github-fork-ribbon"><a href="
  35. https://github.com/xythobuz/LED-Cube
  36. ">Fork me on GitHub</a></div></div>
  37. <div class="navbar">
  38. <div class="navbar-inner">
  39. <ul class="nav">
  40. <li><a href="/index.html">Home</a></li>
  41. <li><a href="/blog.html">Blog</a></li>
  42. <li><a href="/contact.html">Contact</a></li>
  43. <li class="dropdown"><a href="/software.html" class="dropdown-toggle" data-toggle="dropdown">Software<b class="caret"></b></a><ul class="dropdown-menu">
  44. <li><a href="/avrnetstack.html">avrNetStack</a></li>
  45. <li><a href="/avrserial.html">AVR Serial Library</a></li>
  46. <li><a href="/yasab.html">YASAB AVR Bootloader</a></li>
  47. <li><a href="/c250.html">Mio C250 Unlock</a></li>
  48. <li><a href="/nas.html">IB-NAS6210 Linux</a></li>
  49. <li><a href="/serialhelper.html">Serial Helper</a></li>
  50. <li><a href="/ultimatenotifier.html">Ultimate Notifier Script</a></li>
  51. </ul>
  52. <li class="dropdown"><a href="/hardware.html" class="dropdown-toggle" data-toggle="dropdown">Hardware<b class="caret"></b></a><ul class="dropdown-menu">
  53. <li><a href="/ledcube.html">8x8x8 LED Cube</a></li>
  54. <li><a href="/xycontrol.html">xyControl</a></li>
  55. <li class="dropdown-submenu"><a href="/xyrobot.html" class="dropdown-toggle disabled" data-toggle="dropdown">xyRobot</a><ul class="dropdown-menu">
  56. <li><a href="/bluetooth.html">Bluetooth UART (BTM-222)</a></li>
  57. <li><a href="/k6x4008.html">K6x4008 SRAM</a></li>
  58. <li><a href="/rremote.html">rRemote</a></li>
  59. <li><a href="/xyrobotremote.html">xyRobotRemote</a></li>
  60. </ul>
  61. <li><a href="/ssop28.html">SSOP28 - DIL Adapter</a></li>
  62. <li><a href="/serialdebug.html">Serial Debug</a></li>
  63. <li><a href="/ledmatrix.html">LED Matrix</a></li>
  64. </ul>
  65. <li class="divider-vertical"></li>
  66. <li><a href="http://xythobuz.de/lastmusic">♫</a></li>
  67. <li class="divider-vertical"></li>
  68. <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Language<b class="caret"></b></a><ul class="dropdown-menu">
  69. <li><a href='ledcube.de.html'>Deutsch</a></li> <li><a href='ledcube.html'>English</a></li>
  70. </ul></li>
  71. <li class="divider-vertical"></li>
  72. <script type="text/javascript">
  73. function sitesearch(curobj) {
  74. curobj.q.value = "site:xythobuz.de " + curobj.r.value
  75. }
  76. </script>
  77. <form class="navbar-search" action="http://www.google.com/search" method="get" onSubmit="sitesearch(this)">
  78. <input name="q" type="hidden" />
  79. <input name="r" type="text" class="search-query span2" placeholder="Search..." />
  80. </form>
  81. </ul>
  82. </div>
  83. </div>
  84. <div style="width: 75%; margin-left: auto; margin-right: auto;">
  85. <h1>8x8x8 LED Wuerfel</h1>
  86. <p>Downloade die <a href="https://github.com/xythobuz/LED-Cube/zipball/master">aktuelle Codebase als Zip</a>.</p>
  87. <iframe width="640" height="360" src="http://www.youtube.com/embed/czxCxTBSgHM?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>
  88. <p><a href="http://www.youtube.com/watch?v=czxCxTBSgHM"><code>Youtube Direktlink</code></a></p>
  89. <p>Als Schulprojekt und für den Explore-IT Wettbewerb von SAP in Markdorf haben meine zwei Teamkollegen, Max <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#117;&#116;&#97;&#116;&#116;&#101;&#100;&#111;&#110;&#109;&#121;&#97;&#114;&#109;&#64;&#109;&#101;&#46;&#99;&#111;&#109;">&#104;&#117;&#116;&#97;&#116;&#116;&#101;&#100;&#111;&#110;&#109;&#121;&#97;&#114;&#109;&#64;&#109;&#101;&#46;&#99;&#111;&#109;</a> und Felix, zusammen mit mir diesen einfarbigen 8x8x8 LED Cube gebaut. Für Interessierte hier alle Software sowie Schaltplan und Boardlayout unter der GPLv3. Viel Freude damit.</p>
  90. <p><a href="/img/cube14.jpg"><img alt="Foto 1" src="/img/cube14_small.jpg" /></a>
  91. <a href="/img/cube11.jpg"><img alt="Foto 2" src="/img/cube11_small.jpg" /></a></p>
  92. <h2>Hardware</h2>
  93. <p>Ein AtMega32 steuert über einen 8bit Bus 8 Latches. Diese 64 bit steuern über je einen PNP Transistor die Anoden von jeweils 8 übereinander liegenden LEDs.</p>
  94. <p>Des weiteren steuert der Prozessor 8 N-Kanal MOSFETs welche die Kathoden von 64 in einer x-z Ebene liegenden LEDs steuern.</p>
  95. <p>Ausserdem kommuniziert der AtMega32 über einen FT232RL per USB mit einem PC. Ãœber den TWI (I2C) Bus wird auf ein 1MBit FRAM zugegriffen.</p>
  96. <p>Zusätzlich ist ein AtMega8 auf der Platine. Dieser liest über einen MSGEQ7 ein Audiosignal und sendet dieses über TWI an den AtMega32.</p>
  97. <p>Eine ausführlichere Bauteilliste findet sich im Github Repository, im Ordner Hardware als parts.txt.</p>
  98. <p><a href="/img/cube10.jpg"><img alt="Foto 3" src="/img/cube10_small.jpg" /></a>
  99. <a href="/img/cube12.jpg"><img alt="Foto 4" src="/img/cube12_small.jpg" /></a></p>
  100. <h2>Software</h2>
  101. <p>Die Software besteht aus 3 großen Teilen, die CubeFirmware für den AtMega32, die AudioFirmware für den AtMega8 und CubeControl. Letzteres ist eine Plattformunabhängige Java Software, welche es erlaubt, Animationen für den LED Cube zu erstellen und diese an den Cube zu übertragen. Hierfür wird Java3D benötigt.</p>
  102. <h3>Cube Firmware</h3>
  103. <p>Die Hauptaufgabe der CubeFirmware ist es, Animationen aus dem FRAM zu laden und anzuzeigen. Nebenbei wird auf Anfragen per USB gewartet und entsprechend gehandelt. Auf Knopfdruck steuert die CubeFirmware den AtMega8 an, um Audio Daten zu visualisieren.</p>
  104. <p><a href="/img/kuehler1.jpg"><img alt="Foto 7" src="/img/kuehler1_small.jpg" /></a>
  105. <a href="/img/kuehler2.jpg"><img alt="Foto 8" src="/img/kuehler2_small.jpg" /></a></p>
  106. <h3>Audio Firmware</h3>
  107. <p>Die AudioFirmware liest den MSGEQ7 aus, um bei entsprechender Anfrage über TWI diese Daten zu übertragen.</p>
  108. <h3>CubeControl</h3>
  109. <p>Neben einigen Java Klassen um einen 3D LED Würfel darzustellen und mit diesem zu interagieren, besteht CubeControl auch aus einer Java Native Interface (JNI) Library, welche sowohl unter Windows als auch unter Unix die serielle Kommunikation für CubeControl ermöglicht. Für die 3D Darstellung wird <a href="http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html">Java3D</a> benötigt. In der OS X Lion Variante von Java ist dies bereits enthalten, für Windows und Linux muss es separat heruntergeladen werden.</p>
  110. <p><a href="/img/cubecontrol.png"><img alt="Screenshot" src="/img/cubecontrol_small.png" /></a>
  111. <a href="/img/cubeschem.png"><img alt="Schematic" src="/img/cubeschem_small.png" /></a></p>
  112. <h3>Hardware Emulator</h3>
  113. <p>Ein kleines Projekt, welches unter Unix ein Pseudo Terminal öffnet und die Cube Hardware emuliert. Kann zum testen von CubeControl genutzt werden.</p>
  114. <h3>UploadTest</h3>
  115. <p>Ein kleines CLI Tool um Testdaten und mit CubeControl gespeicherte Animationen an den Cube zu senden.</p>
  116. <h2>Download</h2>
  117. <p>Im <a href="https://github.com/xythobuz/LED-Cube">GitHub Repository</a> findet sich der gesamte Code sowie die Eagle Dateien und Schaltplan und Layout als PNGs.</p>
  118. <p><a href="/img/cube13.jpg"><img alt="Foto 5" src="/img/cube13_small.jpg" /></a>
  119. <a href="/img/cube15.jpg"><img alt="Foto 6" src="/img/cube15_small.jpg" /></a></p>
  120. <span id="flattr">
  121. <a class="FlattrButton" href="http://www.xythobuz.de/ledcube.de.html" title="8x8x8 LED Wuerfel">AVR LED Cube with Java Software and Music Visualization</a>
  122. </span>
  123. <span id="twitter">
  124. <a href="https://twitter.com/share" class="twitter-share-buttdata-via="xythobuz" data-dnt="true" data-related="xythobuz" data-count="vertical">Tweet</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s;if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twi.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitwjs");</script>
  125. </span>
  126. <span id="reddit">
  127. <script type="text/javascript">reddit_url = "http://www.xythobuz.de/ledcube.de.html";</script>
  128. <script type="text/javascript" src="http://www.redcom/static/button/button2.js"></script>
  129. </span>
  130. <span id="github">
  131. <a href="https://github.com/xythobuz/LED-Cube" class="gitforked-button gitforked-forks gitforked-watchers"></a>
  132. </span>
  133. <div id="print"><script>var pfHeaderImgUrl = '';var pfHeaderTagline = '';var pfdisableClickToDel = 0;var pfHideImages = 0;var pfImageDisplayStyle = 'right';var pfDisablePDF = 0;var pfDisableEmail = 0;var pfDisablePrint = 0;var pfCustomCSS = '';var pfBtVersion='1';(function(){var js, pf;pf = document.createElement('script');pf.type = 'text/javascript';if('https:' == document.location.protocol){js='https://pf-cdn.printfriendly.com/ssl/main.js'}else{js='http://cdn.printfriendly.com/printfriendly.js'}pf.src=js;document.getElementsByTagName('head')[0].appendChild(pf)})();</script><a href="http://www.printfriendly.com" style="color:#6D9F00;text-decoration:none;" class="printfriendly" onclick="window.print();return false;" title="Printer Friendly and PDF"><img style="border:none;margin:0 6px" src="https://pf-cdn.printfriendly.com/images/icons/pf-print-icon.gif" width="16" height="15" alt="Print Friendly Version of this page" />Print <img style="border:none;margin:0 6px" src="https://pf-cdn.printfriendly.com/images/icons/pf-pdf-icon.gif" width="12" height="12" alt="Get a PDF version of this webpage" />PDF</a></div>
  134. <div id="disqus_thread"></div>
  135. <script type="text/javascript">
  136. var disqus_shortname = "xythobuz";
  137. (function() {
  138. var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
  139. dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js";
  140. (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0] ).appendChild(dsq);
  141. })();
  142. </script>
  143. <noscript>Please enable JavaScript to view the <a href="http://disqus. com/?ref_noscript">comments powered by Disqus.</a></noscript>
  144. <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
  145. </div>
  146. <div style="color: gray; text-align: center;">
  147. Built with <a href="http://bitbucket.org/obensonne/poole">Poole</a>
  148. &middot;
  149. Made with <a href="http://twitter.github.io/bootstrap/index.html">Bootstrap</a>
  150. &middot;
  151. Using <a href="http://shjs.sourceforge.net">SHJS</a>
  152. &middot;
  153. Licensed as <a href="http://creativecommons.org/licenses/by/3.0">CC-BY</a>
  154. </div>
  155. <img src="http://xythobuz.de/stats/count.php?img" alt="Analytics">
  156. <script src="http://gitforked.com/api/1.1/button.js" type="text/javascript"></script>
  157. <script type="text/javascript">
  158. var _gaq = _gaq || [];
  159. _gaq.push(['_setAccount', 'UA-39163591-1']);
  160. _gaq.push(['_setDomainName', 'xythobuz.org']);
  161. _gaq.push(['_setAllowLinker', true]);
  162. _gaq.push(['_trackPageview']);
  163. setTimeout("_gaq.push(['_trackEvent', '30_seconds', 'read'])", 30000);
  164. (function() {
  165. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  166. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  167. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  168. })();
  169. </script>
  170. </body>
  171. </html>