{"id":30,"date":"2015-02-18T15:15:13","date_gmt":"2015-02-18T14:15:13","guid":{"rendered":"http:\/\/deadbeef.cz\/?p=30"},"modified":"2015-02-19T16:43:46","modified_gmt":"2015-02-19T15:43:46","slug":"8x8-rgb-matice-colorduino","status":"publish","type":"post","link":"http:\/\/deadbeef.cz\/?p=30","title":{"rendered":"8&#215;8 RGB matice &#8211; Colorduino"},"content":{"rendered":"<p>Prvn\u00ed projekt, kter\u00fd je nahran\u00fd snad v ka\u017ed\u00e9m arduinu je rozblik\u00e1n\u00ed ledky p\u0159ipojen\u00e9 k pinu 13. Trochu pokro\u010dilej\u0161\u00ed je uk\u00e1zkov\u00fd sketch Fade, kter\u00fd ukazuje mo\u017enosti PWM (pulzn\u011b \u0161\u00ed\u0159kov\u00e9 modulace), kter\u00fd supluje analogov\u00fd v\u00fdstup a umo\u017e\u0148uje tak plynulou regulaci jasu ledky.<\/p>\n<p>Proto\u017ee &#8211; asi jako ka\u017ed\u00fd &#8211; m\u00e1m r\u00e1d kdy\u017e to blik\u00e1, vrt\u00ed se to &#8211; zkr\u00e1tka, ukazuje to n\u011bjakou formu \u017eivota, nemohla m\u011b minout koup\u011b \u010dtvercov\u00e9 matice tvo\u0159en\u00e9 64 RGB ledkami. Ka\u017edou jednotlivou ledku m\u016f\u017eeme rozsv\u00edtit do po\u017eadovan\u00e9 barvy, a vytv\u00e1\u0159et tak r\u016fzn\u00e9 obrazce.<\/p>\n<div id=\"attachment_64\" class=\"wp-caption alignnone\" style=\"width: 820px\"><a href=\"http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491.jpg\"><img loading=\"lazy\" class=\"size-large wp-image-64\" src=\"http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491-1021x1024.jpg\" alt=\"Uk\u00e1zka RGB matice\" width=\"820\" height=\"822\" srcset=\"http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491-1021x1024.jpg 1021w, http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491-150x150.jpg 150w, http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491-300x300.jpg 300w, http:\/\/deadbeef.cz\/wp-content\/uploads\/2015\/02\/IMG_20141219_1106491.jpg 1997w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><p class=\"wp-caption-text\">Uk\u00e1zka RGB matice<\/p><\/div>\n<p>P\u0159i koupi jsem se domn\u00edval, \u017ee si po\u0159\u00edd\u00edm jen samotnou matici a ovl\u00e1d\u00e1n\u00ed jednotliv\u00fdch LEDek dod\u011bl\u00e1m s\u00e1m. Tady jsem v\u0161ak narazil. Arduina s \u010dipy Atmega328 maj\u00ed pouze 6 PWM v\u00fdstup\u016f, na p\u0159\u00edm\u00e9 ovl\u00e1d\u00e1n\u00ed matice jich je v\u0161ak pot\u0159eba 8. Abych se vyhnul sh\u00e1n\u011bn\u00ed v\u00edcekan\u00e1lov\u00e9ho PWM \u0159adi\u010de, \u0159e\u0161il multiplexery, nebo p\u00e1chal je\u0161t\u011b v\u011bt\u0161\u00ed zv\u011brstva, kapituloval jsem a po\u0159\u00eddil Colorduino, kter\u00e9 je pro \u0159\u00edzen\u00ed t\u00e9to matice p\u0159\u00edmo d\u011blan\u00e9.<\/p>\n<p>Pro jednodu\u0161\u0161\u00ed obsluhu jsem si na\u0161el <a href=\"https:\/\/github.com\/lincomatic\/Colorduino\/\">knihovnu na GitHubu<\/a>.<\/p>\n<p>Pro pr\u00e1ci s matic\u00ed je pot\u0159eba ji inicializovat a voliteln\u011b nastavit vyv\u00e1\u017een\u00ed b\u00edl\u00e9:<\/p>\n<p><code><br \/>\n#include void setup(){<br \/>\nColorduino.Init(); \/\/ inicializace<br \/>\nunsigned char whiteBalVal[3] = {36,63,63};<br \/>\nColorduino.SetWhiteBal(whiteBalVal);<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Funkce Colorduino.SetWhiteBal() nastav\u00ed vyv\u00e1\u017een\u00ed b\u00edl\u00e9 po jednotliv\u00fdch slo\u017ek\u00e1ch v po\u0159\u00e1d\u00ed\u00a0RGB. \u010c\u00edsla v tomto kousku k\u00f3du jsou p\u0159evzata z knihovn<code><\/code>y a jsou pouze \u0161estibitov\u00e1 a unsigned, proto je maximum 63.<\/p>\n<p>Kdy\u017e je matice inicializovan\u00e1, je mo\u017en\u00e9 za\u010d\u00edt rozsv\u011bcovat jednotliv\u00e9 ledky:<\/p>\n<p><code><br \/>\nSetPixel(unsigned char x, unsigned char y, unsigned char r, unsigned char g, unsigned char b);<br \/>\n<\/code><\/p>\n<p>Prvn\u00ed 2 parametry jsou sou\u0159adnice pixelu a dal\u0161\u00ed t\u0159i jsou po\u017eadovan\u00e1 barva nastaviteln\u00e1 v \u00farovni [0;255]. Pixely se neobarv\u00ed hned. Jejich zm\u011bna je nejd\u0159\u00edve ukl\u00e1d\u00e1na do mezipam\u011bti, aby nedoch\u00e1zelo k deformaci po\u017eadovan\u00e9ho obr\u00e1zku p\u0159i jeho generov\u00e1n\u00ed.<\/p>\n<p><code>Colorduino.FlipPage();<\/code><\/p>\n<p>&#8230; se postar\u00e1 o vykreslen\u00ed n\u00e1mi vygenerovan\u00e9ho obr\u00e1zku.<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>Dal\u0161\u00ed odkazy:<\/p>\n<p><a href=\"http:\/\/blog.lincomatic.com\/?p=148\" target=\"_blank\">http:\/\/blog.lincomatic.com\/?p=148<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prvn\u00ed projekt, kter\u00fd je nahran\u00fd snad v ka\u017ed\u00e9m arduinu je rozblik\u00e1n\u00ed ledky p\u0159ipojen\u00e9 k pinu 13. Trochu pokro\u010dilej\u0161\u00ed je uk\u00e1zkov\u00fd sketch Fade, kter\u00fd ukazuje mo\u017enosti PWM (pulzn\u011b \u0161\u00ed\u0159kov\u00e9 modulace), kter\u00fd supluje analogov\u00fd v\u00fdstup a umo\u017e\u0148uje tak plynulou regulaci jasu ledky. Proto\u017ee &#8211; asi jako ka\u017ed\u00fd &#8211; m\u00e1m r\u00e1d kdy\u017e to blik\u00e1, vrt\u00ed se to &#8211; &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,9],"tags":[14,15,17,16],"_links":{"self":[{"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/posts\/30"}],"collection":[{"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30"}],"version-history":[{"count":6,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":138,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=\/wp\/v2\/posts\/30\/revisions\/138"}],"wp:attachment":[{"href":"http:\/\/deadbeef.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/deadbeef.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}