ç§ã¯Habrãé·ãéèªãã§ããŸãããèšäºãæžãçç±ã¯ãããŸããã§ãããåã³
![](https://habrastorage.org/getpro/habr/post_images/0c6/4c5/bdb/0c64c5bdbe203d2866047e0cf2f4152d.jpg)
ãã®èšäºã«ã¯ãåçããããªãããã¹ãã¯ã»ãšãã©ãªããäž»é¡ã«å¿ããåæ çãªäœè«ãéåžžã«å°ãªãã³ãŒããå«ãŸããŸãããæåŸã«ã¯Githubã®ãããžã§ã¯ããžã®ãªã³ã¯ããããŸãã ãããŠä»ããŸãæåã«ïŒ
ããã¯ãããååãRaspberry Piesãå®æçã«éãã§ããŠãç¹ã«ååã«æå°éã®è¿œå æéã§è²©å£²ããŠããããšãç¥ã£ããšããäºå®ããå§ãŸããŸããã ããäžåºŠããã€ã«ã€ããŠèããŠãç§ã¯æµæããããšãã§ããã圌ãããããæã«å ¥ããŸããã ãããäœã§ãããããã§äœãã§ããã®ããç§ã¯äŒããŸãããã ãã誰ããç¥ã£ãŠãããã誰ãç¥ããªãã圌ãã¯æ€çŽ¢ã§ãããããããã®èšäºããããŸãã ç§èªèº«ã圌ãš1ã2é±ééãã§ãå¿ èŠãªãã®ã«åãããŠèœã¡çããŸããã
![](https://habrastorage.org/getpro/habr/post_images/e2c/3f3/11d/e2c3f311dc4da3878556ec49e1dc0d33.jpg)
ããããããã§åãååãèå³æ·±ãæ å ±ãæããŸããïŒå¶åŸ¡ãããïŒã¢ãã¬ã¹ïŒã ã¬ãŒã©ã³ã ããIbeiãã泚æã§ããŸãïŒ+ é»æº ã ã³ãã¯ã¿ ãããã³å¥œã¿ãšè²ãžã®æ¥ç¶ã¯ã€ã€ ïŒãããšãã°ããã§èª¬æããDYI AmbilightãååŸããæãç°¡åãªæ¹æ³ã§ã ã ãŸãã¯ã奜ããªããã«ãã®ã¬ãŒã©ã³ãã§ç°¡åã«éã¶ããšãã§ããŸãïŒçè«çã«ã¯ãä»»æã®é»çãä»»æã®RGBè²ã§ãã€ã§ãç¹ç¯ã§ããŸããããç§ã¯æ°å¹Žéãã®ãããªãã®ãææããããšã倢èŠãŠããŸããïŒ
ããããããšãªãã圌ã¯äŒå µè¡ã§å¿ èŠãªéšåã泚æããŸããã æšå®é éæéã¯çŽ3é±éã ã£ãã®ã§ã1é±éã®ã¹ãŠã§ãŒãã³ãžã®äŒææ è¡ã®æºåãããŠæ°ãæ£ããæéããããŸããã åž°åœåŸãç§ã¯ãŸã 家ã«1é±éæ»åšããŠããã®ã§ãã¬ãŒã©ã³ãã®æ¥ç¶æ¹æ³ã«ã€ããŠå¯èœãªéãå€ãã®æ å ±ãèŠã€ããããšããç¬èªã®å¶åŸ¡ã¢ã«ãŽãªãºã ãäœæããããã®ããŸããŸãªã¹ã¯ãªãããšã©ã€ãã©ãªãæ¢ããŸããã è³¢æãªHabraã®èšäºã¯ããã»ã©å€ããããŸããã§ããããããã¯Arduinaãšã®æã«ã€ããŠã§ãããããã€ãã®ãªã³ã¯ããã® Pythonãããžã§ã¯ãã«ã€ãªãããŸããã åã蟌ã¿ã®ã¿ã¹ã¯ããªãã£ãã ãã§ãç§ã®éã¯Pythonã«ãããã€ããŠããªãã®ã§ïŒç§ã¯JavaãšAndroidã倧奜ãã§ãïŒãèªåã«ãšã£ãŠæçãªæ å ±ã¯ããŸãèŠã€ãããŸããã§ããã 空ãæéããã£ãã®ã§ãã¬ãŒã©ã³ãã¯æ¥ãŸããã§ãããAndroidã§ç°¡åãªã¬ãŒã©ã³ãã·ãã¥ã¬ãŒã¿ãŒã¢ããªã±ãŒã·ã§ã³ãå®è¡ããåŸè ã®å¶åŸ¡ã¢ã«ãŽãªãºã ãããã€ãäœæããããšã«ããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«ã·ã³ãã«ã§ãæ²ãã£ãŠããªãããã誰ã«ãèŠããããšããããŸããã§ããã
å é±æ«ãåŸ æã®ã¬ãŽ42009ã®ç®±ãããã·ãã«ã¹ã¯ããæã¡èŸŒãŸããŸãããããã¯ãã¬ãŒã©ã³ãã«ã€ããŠã®ç§ã®èããäžæçã«èŠãé ããŠããŸããŸããã
![](https://habrastorage.org/getpro/habr/post_images/fa8/a02/631/fa8a026312c30f9ebb62b866cb4688ed.png)
ã¬ãŽã®çµã¿ç«ãŠèšç»ã¯ãäžåœããã®å°å ã®å°çãäºæ³ãããæ¥é±æ«ã«èšå®ãããŸããã ã¬ãŽããã¯ã¹ã®ã°ã©ã³ããªãŒãã³ãšçŸåšã®ãããã¬ãŽãã¯ããã¯ã»ããã®çµã¿ç«ãŠããŸãã¯éå»æ°å¹Žã®å€¢ã®ããã²ãŒã -é·ãéèããŠããŸããã ããã±ãŒãžã¯éææ¥ã®å€æ¹ã«å°çããåææ¥ã®æã«ãã¶ã€ããŒã®çµã¿ç«ãŠãšã¿ã€ã ã©ãã¹ã¢ã»ã³ããªããã»ã¹ã®åé€ãéå§ããäºå®ã§ããã
ãã¡ãããéææ¥ã®å€ã«ã¯æµæã§ããããã€ã§ã¬ãŒã©ã³ããæ¥ç¶ããããšããŸããããå¿ èŠãªé ç·ããªãã£ããããRPiã®GPIOããŒããžã®æ¥ç¶ã¯å°é£ã§ããã ããã€ãã®å€ãæçš¿ãèŠã€ããå€ãããŠã¹ã解äœããã€ã³ã¿ãŒãããäžã®èšäºãèªãã§ã圌ã¯å°ãªããšããªããšãããŠã¬ãŒã©ã³ããæ¥ç¶ãããã©ã€ã¢ã«ã¹ã¯ãªãããå®è¡ããããšããŸããã ãããããã¹ãŠãç¡é§ã§ããã é»æºãã¬ãŒã©ã³ãã«æ¥ç¶ããããšãæåã®ã©ã€ããçœè²ã©ã€ãã§ç¹ç¯ããããã ãã§ããã€ã§äœãå§ããŠãåå¿ã¯ãããŸããã§ããã å€ãã®èŠçã®åŸãç§ã¯åé¡ãæãŸã§å»¶æããããšã«ããŸããã
ååäžãåç家ã®å人ãã¬ãŽã®çµã¿ç«ãŠãšæ®åœ±ãæäŒãã«æ¥ãŸããã圌ãšäžç·ã«è±èŒªããã€ã«ã€ãªããããšããŠã倱æããŸããã 1æéåŸã圌ãã¯ãã®ããžãã¹ãæŸæ£ãã移ååŒã¯ã¬ãŒã³ã®çµã¿ç«ãŠã®ããã«ã¢ããŒãã®ç°å¢ãæŽãã«è¡ããŸããã
[åæ çãªäœè«]
ã¢ã»ã³ããªã¯çªç¶çµäºããã¯ã¬ãŒã³ã¯ãã¹ãŠã®æåŸ ãæºãããŸãããããã¯ãæã£ã以äžã«ãã¢ã»ã³ããªããã»ã¹èªäœãå°é£ã§é åçã§ããã ã¿ã€ã ã©ãã¹ãããªãã«ãã¯ãã¡ãã§ã芧ããã ããŸã ã
[/äœè«]
圌ãã¯èšç»ãããé ããŠéå§ããããã«é ãçµãã£ãã®ã§ã圌ãã¯ããã¬ãŒã©ã³ãã«æ»ããŸããã§ããã ããããç¿æ¥ã®ååŸãããäžäººã®å人ãå°çããŸããã圌ã¯ãã§ã«å°é家ã§ãããéçã§ãããåæã«ã¬ãŒã©ã³ãããã€ã«æ¥ç¶ããããã«éåžžã«å¿ èŠãªé·ãã®ç°ãªãã¯ã€ã€ãŒãšã³ãã¯ã¿ãŒãæã£ãŠããŸããã 圌ãã¯åœŒãšäžç·ã«åº§ã£ãŠéžãã ã ãããã5æéãè²»ãããããããç¡é§ã«æããŸãã æåã¯ãè±èŒªã¯å€éšåºæ¿ãã€ãŸãç§ãã¡ã®åºæ¿ã«ãŸã£ããåå¿ããŸããã§ããã ãã®åŸããã€ã«æ¥ç¶ããããã®ã³ãã¯ã¿ã«è§Šãããšãæåã®ããã€ãã®ã©ã€ããç¹æ» ãå§ããããšããããŸããã 1æéåŸãæã§ãã€ã«è¡ãã¯ã€ã€ãéãããšãã¬ãŒã©ã³ãã®æåã®ããã€ãã®ã©ã€ããç¹ç¯ãŸãã¯æ¶ç¯ããããšãããããŸããã ãã®ãããã¹ã¯ãªããã¯ãŸã æ©èœããŠããŸãããã¹ã¯ãªãããæ©èœããªãçç±ãç解ããå¿ èŠããããŸããã Pythonã¹ã¯ãªããã®ç°¡åãªåæã«ãããããã€ã¹
/dev/spidev0.0
䜿çšãããŠ
/dev/spidev0.0
ãŸããã
/dev/spidev0.0
ãããã€ã¹
/dev/spidev0.0
ã·ã¹ãã ã«ååšããŠããŸããã 䞊è¡ããŠãç§ã¯åé¡ãã°ãŒã°ã«ã§èª¿ã¹ãŠãäœããèŠã€ãã圌ãã®èšãããšãé©çšãããã圹ã«ç«ããªãã£ãã
äžæ¥ã®çµãããŸã§ã«ãå®å šã«ç²ãæãŠãŠãã²ã¹ãã¯ç§ãå»ããŸããããããŠã圌ã家ãé転ããŠããéãç§ã¯ãã€ã®æ§æã«ããŸããããšã«æ±ºããŸãã
raspi-config
ãããŠãéå»æ°æ¥éã®äž»ãªåäºè©©ã®å€±æãã€ãŸãç§ã®SPIããªãã«ãªã£ãããšãèŠã€ããŸã...
å«ãŸããŠããŸãã ã¹ã¯ãªããã¯æ©èœãããã¹ãŠã®ãã€ãªãŒããçœã§ãªã³/ãªããã2ã€ã®ç¡éã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã-ãã§ãŒãïŒæ®µéçãªå€èŠ³ãšã©ã³ãã ãªè²ã§ã®ãã§ãŒãïŒããŸãã¯ãã§ã€ã¹-æåããæåŸãŸã§é£ç¶ããŠç¹ç¯ããã©ã€ãã
幞ãã«ãå¶éã¯ãããŸããã§ããã 圌ã¯ãè±èŒªã«ç §ãããŠçµã¿ç«ãŠãããã¬ãŽã¯ã¬ãŒã³ã®åçã2æãæ®ããŸããã
![ã¬ãŽ42009](https://habrastorage.org/getpro/habr/post_images/350/af4/3c2/350af43c2b67cbaa204163f47230d534.jpg)
![ã¬ãŽ42009](https://habrastorage.org/getpro/habr/post_images/693/bc3/6f2/693bc36f2055e86cf10c0ea816a8d5f0.jpg)
ã¹ã¯ãªããã®è²§åŒ±ãªæ©èœã¯ããã«éå±ã«ãªããPythonã§ç¬èªã®äœããæžãããšã¯éåžžã«åé¡ã§ããã ãããã£ãŠãRaspberryçšã®åçŽãªJavaã¢ããªã±ãŒã·ã§ã³ãäœæããææ¥ããéå§ããããšã決å®ãããŸããã ãããããææ¥ã-ããã¯æææ¥ã§ããã ä»é±ã®æææ¥ã«ãä»ã®ãã¹ãŠã®æææ¥ãããæ©ãä»äºã«è¡ããããªãã£ãã æææ¥ã«çã延ã³ãæ©ãã«ä»äºããéãåºãã倩äºã®äžãã«ãŒãããã®äžç«¯ã«è±èŒªãã¶ãäžããŠãå£çŽã®å€§ããªç©Žãã¶ãäžããŠéããŸããç§ã®ã¢ããŒãã§ã¯ãã³ãŒãã«åº§ã£ãŠããŸããããããã§ã¯å¥ã®ãã£ãããåŸ ã£ãŠããŸããã
å¿ èŠãªãã¹ãŠã®Javaããã±ãŒãžãã€ã³ã¹ããŒã«ããã®ã§ãHello Worldãäœæããã³ã³ãã€ã«ããŠããã«å®è¡ããããšã«ããŸããã Rapsberry Piã§ãã®ãããªåçŽãªã¢ããªã±ãŒã·ã§ã³ãã³ã³ãã€ã«ããã®ã«ãæ°ç§ããããŸããããçŽ5ç§ãããã«ã³ãŒãã«ã€ããŠèšãããšãã§ããŸããïŒ ããã¯ãéåžžã®IDEã®æ¬ åŠãšåæ§ã«ãéåžžã«äžäŸ¿ã§ããã ãããã£ãŠã倧ããªPCã§ã³ãŒããèšè¿°ãããã€ã®ftpã«ã³ã³ãã€ã«æžã¿ã¯ã©ã¹ãã¢ããããŒãããããã§ããããå®è¡ããããšã決å®ãããŸããã ãã®åŸããããžã§ã¯ããå€æ°ã®ãã¡ã€ã«ã«æé·ãããšãããã«jarã«åéããå§ããŸããã æãèå³æ·±ããã®ã«å°éããŸããã äž»ãªè³ªåã¯ãJavaã䜿çšããŠè±èŒªãç¹ç«ããæ¹æ³ã§ãã Googleã§æ€çŽ¢ããŠãäœãåŸãããŸããã§ãããCã«ã¯ã©ã€ãã©ãªãšPythonã®ã¹ã¯ãªããã䜿çšãããœãŒã¹ããããŸããã æåŸã«ããã®ããã«èŠããŸããïŒ
spidev = file("/dev/spidev0.0", "wb") spidev.write(pixels) time.sleep(refresh_rate/1000)
ããã§ã ãã¯ã»ã«ã¯è±èŒªã®çæ ¹ã®æ°ã®3åã®ãã€ãã®é åã§ãã é åå ã®3ã€ã®èŠçŽ ããšã«ãåé»çã®RGBãã£ã³ãã«ã®å€ããããŸãã 50åã®é»çã®ã¬ãŒã©ã³ãããããããããã¹ãŠç §ããã«ã¯ããã©ãŒã
{R0, G0, B0, R1, G1, B1, ... R49, G49, B49}
ã ããããŒã¯ãªãããã€ãã®é åãš
flush
ã
äž»ãªã¢ã€ãã¢ã¯ã1ã€ã®é»çãç¹ç¯ãããå Žåã§ãã åžžã«é åå šäœããã¡ã€ã«ã«æžã蟌ãå¿ èŠããããšããããšã§ããã ããŒãäžã®ãã¹ãŠã®å€æŽã衚瀺ããã«ã¯ãæéé 延ãå¿ èŠã§ãããå¿ èŠã«å¿ããŠå€æŽã§ããŸãã
![](https://habrastorage.org/getpro/habr/post_images/705/48b/79c/70548b79c07103a487a274023b04f85c.jpg)
Javaã«æ»ããšããã¡ã€ã«ã«æžã蟌ãããã®ã³ãŒãã¯ã»ãšãã©åãããã«èŠããŸãïŒ
try-catch
çç¥ãããŠããŸãïŒã
FileOutputStream spidev = new FileOutputStream(new File("/dev/spidev0.0")); spidev.write(bytes); spidev.flush(); Thread.sleep();
å®éãããã€ã¹ã§ã®äœæ¥ã®ç°¡åãªã¯ã©ã¹ãæžããã®ã§ãç¹å®ã®é»çãç¹å®ã®è²ã§ç §ãããã¬ãŒã©ã³ãå šäœãåãè²ã§è¿œããããããã§ãŒããããªã©ãããŸããŸãªç°¡åãªã¢ã¯ã·ã§ã³ã®ããã®ã©ãããŒã¯ã©ã¹ãããã€ãæžããŸããã 1æ¥åŸãç§ã¯ã¹ã¿ãã¯ãšä»ã®äœãã®å¥ã®èŠèŠåãå°ç¡ãã«ããŸããã
ããããåã³ããããã®ãã¢ã«ãŽãªãºã ããèµ·åããããšã¯ã»ãšãã©é¢å¿ããªãããŸãããã«ç²ããŸãã çŽæ¥ã³ã³ãããŒã«ã欲ããã£ãã æååããŒã¿ãåãå ¥ãã解æããéä¿¡ããããã³ãã³ããã«åºã¥ããŠã¬ãŒã©ã³ããšããåãããåçŽãªãµãŒããŒãåã³Javaã§äœæããããšã決å®ãããŸããã 䟿å®äžãããŒããã¬ãŒã©ã³ãã®é»çã®æ°ãããã³ããã€ã¹ïŒ
/dev/spidev0.0
ïŒãããµãŒããŒã®èµ·åæã«ãã©ã¡ãŒã¿ãŒã䜿çšããŠèšå®ãããããã«äœæãããŸããã
ã¯ã©ã€ã¢ã³ãã¯ãAndroidäžã«ãããŸãã ã¯ã©ã€ã¢ã³ãã®æåã®ããŒãžã§ã³ã§ã¯ãæå°éã®æ©èœããããŸãã-ãªã³/ãªããRGBã¹ã©ã€ããŒã䜿çšããŠè²ãèšå®ããå¥ã®ã¹ã©ã€ããŒã§ã©ã€ããã移åãããŸãã ã¯ã©ã€ã¢ã³ããµãŒããŒã³ãŒãã§ã®å¹Œå°æã«å¯Ÿããå«æªæã«ãããããããèšè¿°ãããã³ãŒãã¯æ£ããæ©èœããŸããã
ããã«ç§ã¯50åã®é»çã§ã¯ååã§ã¯ãªãããšã«æ°ã¥ããåŸã§10x10ã®æ£æ¹åœ¢ã«æãç³ãããšãã§ãããšæåŸ ããŠåãéã泚æããŸãããããã¯ãã¡ã³ã¿ãžãŒã®é£è¡ã®ããã®æ°ãããã£ãŒã«ãã§ããããã§ã¯å°ãªããšãå€å žçãªãããäœãããšãã§ããŸãã
å°ãåŸã«ãç§ã®å人ã§ããåŠçããã¯ã©ã€ã¢ã³ããµãŒããŒã³ãŒããããæ£ç¢ºãªã¢ãŒããã¯ãã£ã«æžãæããã®ãæäŒããŸãããä»ã§ã¯ãã¯ã©ã€ã¢ã³ãã¯æå®ã®ã³ãã³ãã»ããã䜿çšããŠãµãŒããŒãšéä¿¡ãã
Object
ã¿ã€ãã®ãã©ã¡ãŒã¿ãŒãåã³ãã³ãã®ããŒã¿ãšããŠæ©èœãããããäœã§ãå¯èœã§ãã ãŸãããäžæ£ã¢ã¯ã»ã¹ãããä¿è·ããããã«ããã¹ã¯ãŒããã£ãŒã«ãããµãŒããŒã«è¿œå ãããã¯ã©ã€ã¢ã³ãã§ã¯æåã®ã³ãã³ãã§éä¿¡ãããŸããã é©åããªãå ŽåããµãŒããŒã¯ã¯ã©ã€ã¢ã³ããåæããŸããã ããã¯ã誰ããç§ã®ãã€ãã©ããªåå/ IPãšããŒãã§å©çšã§ããããç¥ã£ãŠããŠãã¬ãŒã©ã³ãã§éã¶ããšãã§ããªãããã«ããããã«è¡ãããŸããã
æ°ããã¢ãŒããã¯ãã£çšã®ã³ãŒããäœãçŽããåŸã圌ã¯æ©èœãå¹ åºãæ¡åŒµãå§ããŸãããæ°ããã€ã³ã¿ãŒãã§ãŒã¹èŠçŽ ãšæ°ããå å¶åŸ¡ã¢ã«ãŽãªãºã ãè¿œå ããŸããã
![Androidã¯ã©ã€ã¢ã³ã](https://habrastorage.org/getpro/habr/post_images/168/99b/409/16899b4095f7a0eca5ec17a5c3a71fa2.png)
RGBã«ã©ãŒãšã©ã³ãã ã«ã©ãŒã®ã¡ãã€ããšãåããã®ãå«ãè¹ãè¿œå ãããŸããã NFCã¯ãã©ãã«ãèªã¿åããšãã«é»çããªã³/ãªãããããã«ãã蟌ãŸããŸããïŒæçµããŒãžã§ã³ããåé€ãããŸããïŒãGoogleSpeechRecognizerããã蟌ãŸããæåéã5ã€ã®ã³ãã³ããèµ€ãããç·ãããéãã ãé»è²ããšãè¹ãã ãŸããç§ã®æèŠã§ã¯ãé¢çœãæ©èœã¯ãã€ã³ã©ã€ã¶ãŒãšããŠã®ã¬ãŒã©ã³ãã®å šé·ã®äœ¿çšã§ã...ããã¯ããããããããæ£ããã§ãããïŒé£ç¶ããŠç¹ç¯ããã©ã³ãã®æ°ã¯ãã¹ããŒããã©ã³ã®ãã€ã¯ã«ãã£ãŠç¥èŠãããé³éã«äŸåããŠããŸããã ããã¯Caspaãã©ãã¯ã®äŸã§ç¹ã«å°è±¡çã«èŠããŸã-Sir Rock A Lot ïŒ
ã¢ããªã±ãŒã·ã§ã³æ©èœã®äžè¬çãªæŠèŠïŒ
ãã®åŸãããã€ãã®ã¢ã«ãŽãªãºã ãã«ãŒã«ã«å°ãçããããããµãŒããŒãšã¯ã©ã€ã¢ã³ãã§ãã°ãçºèŠããã³ãŒãããããã«ãªãã¡ã¯ã¿ãªã³ã°ããŸããã ããã§ãã¡ã€ã³ã³ã³ãããŒã«ç»é¢ã¯æ¬¡ã®ããã«ãªããŸãã
æ°ã«ãªã人ã®ããã«ããã¹ãŠã®ã³ãŒãã¯GithubïŒ ã©ã€ãã©ãª ã ãµãŒã㌠ã ã¯ã©ã€ã¢ã³ã ïŒã«æçš¿ãããŠããŸãã 圌ãäœãå©ããŠããããå¬ããã§ãã ãã©ãŒã¯èªäœã®èšç»ã¯ããŒãžã§ã³2.0ã«ããããã®æ©èœã¯æåŸãŸã§ç§ã¯ãŸã 決å®ããŠããŸããããèšç»ã¯æ¬¡ã®ãšããã§ãã
- ã³ã³ãããŒã«ç»é¢ã®éžæïŒã¹ãã¬ãŒããªãã³ãé·æ¹åœ¢ãŸãã¯æ£æ¹åœ¢ã
- çŽç·ã«åŒã䌞ã°ãããããŒãã®çŸåšã®æ©èœã®æ¡åŒµã
- ããŒããæ£æ¹åœ¢ãšé·æ¹åœ¢ã«æãç³ãŸãããšãã®ãªãã·ã§ã³ã®ã¢ã«ãŽãªãºã ã®ããã¯ãæžãïŒ
- é»çå¶åŸ¡
- æ£æ¹åœ¢ã®äžå¿ããã®ã€ã³ã©ã€ã¶ãŒ
- éæ¢ããã¹ã/ã¯ãªãŒãã³ã°ã©ã€ã³
- ãã
- ä»ã®äœãã ã¢ã€ãã¢ãããã°ãæžããŠãã ãããç§ã¯åãã§è°è«ããã¡ã¢ããŸãã
æéå ã«æžãã®ãå¿ããŠããããããªããšããïŒ
1.ãããããã¡ã€ã«ã«æžã蟌ãåã«åãã€ãªãŒãã®è²ã調æŽããå¿ èŠããããŸããããã¯ãã©ã€ãããå·ããããªããå€ã255-255-255ã§éãçºå ããããã§ãã ç§ãèŠã€ããPythonã¹ã¯ãªããã§ã¯ããããè¡ãããŠããŸãïŒ
def correct_pixel_brightness(pixel): corrected_pixel = bytearray(3) corrected_pixel[0] = int(pixel[0] / 1.1) corrected_pixel[1] = int(pixel[1] / 1.1) corrected_pixel[2] = int(pixel[2] / 1.3) return corrected_pixel
2.ã¢ã€ã³ã³ã¯ãã¬ãŽãäœæããã¿ã€ã ã©ããã®èšé²ãæäŒã£ãåã人ã«ãã£ãŠæãããŸããã ããã¯ç§ã®ç«ã®åçã«åºã¥ããŠããŸã-
![ç«ç²](https://habrastorage.org/getpro/habr/post_images/dab/148/897/dab148897e98cb4081c163b9d17fc8a4.jpg)
3.
/dev/spidev0.0
ãã¡ã€ã«ã§èª¬æãããŠããã¢ã¯ã·ã§ã³ã¯ã
/dev/spidev0.0
ã³ã³ãããŒã©ãŒãåããããŒãã§
/dev/spidev0.0
æ©èœããŸãã å é±æ«ã圌ãã¯DRã«ãè±èŒªã§ã¯ãªããªãã³ïŒ necrys ïŒã ããèŽããŸãã ïŒä»åã¯åºç¹ã®ããã ãã§ããïŒã äžåœãã泚æããæéã¯ãããŸããã§ããã圌ãã¯åžå ã§ç§ãã¡ããè³Œå ¥ããŠããŸããã売ãæã¯ãã³ã³ãããŒã©ãŒã«ã¯åããã®ããããšäž»åŒµããŸããã èªçæ¥ã®ãç¥ãã®æäžã«ã圌ãã¯æ¥ç¶ãè©Šã¿ãããšã«ããŸããã æ°æéã®èŒžéã«å€±æããããããã¹ãŠã®èœãšãç©Žãç¥ã£ãŠããã誀ã£ãŠãããã³ã«ãSM16716ã«å€æŽããããšãããŸã§é»æºãå ¥ããããšãã§ããªãã£ãããã§ããããã®åŸãããŒããç¹ç¯ããã远跡ããããšããããŸããããããã§ãå€ã«åºããã¯ãããŸããã§ããã åçŽãªCããã°ã©ã ãäœæããŠãåé¡ã¯è§£æ±ºããŸããã§ããã3ãã€ãã®é åãæžã蟌ãããšãããšããã®æ¥ã®äœæ¥ã®ããžãã¯ãç解ã§ããªãã£ãããŒãã®ã»ã¯ã·ã§ã³ã«ç¹ç«ããŸããã å®éšåŸãç¿æ¥ã®åã°ãŸã§ã«ãããŒãã®æ°ããææè ã¯ããŒããæäœããã¢ã«ãŽãªãºã ãåžã£ãŠç解ããããšãã§ããŸããïŒçºå ãŠãããããšã«4ãã€ãã®é åãæžã蟌ãå¿ èŠããããŸããæåã®ãã€ãã¯åžžã«0xFFã§ãæ®ãã¯RGBã§ãªããã°ãªããŸããã æåã®ãã€ãã®å€ãå€æŽãããšãããŒãã®åäœãçºçããŸããããã®æå³ã¯ãŸã ç解ãããŠããŸããã ããã¯ãã³ã³ãããŒã©ãŒãboblightã®ã¢ã»ã³ããªãšãããã³ã°ã®éããèæ ®ããŠãããæ£ããåäœããxbmcã«æ¥ç¶ããã®ã«æ°æ¥ããããŸããã ããããçµæãéæãããåŸïŒ
æ®å¿µãªããã倧èŠæš¡ãªãããžã§ã¯ããæžããçµéšã¯ãããŸããããã³ãŒããæžãå§ãããšãããããŸã§æé·ãããšã¯æããŸããã§ããã ããã¯ãGeetã§ã®æåã®çµéšã§ããããªãŒãã³ãœãŒã¹ã§ã®ã³ãŒãã®ã¬ã€ã¢ãŠãã§ããããŸãã
ããããšããç§ã¯ãããé¢çœãã£ããšæããŸãã