プチコンまとめWiki (初代/mkII)

投稿プログラム : 光奏器

パンくずリスト

2012年4月8日投稿 / 投稿者 : hoy@kayama / タグ : 投稿プログラム 色調合 QRコード 初代対応

概要

フルカラーLEDと3つのスライドボリュームを組み合わせて、色を自在に光らせる電子工作を作り、光奏器(こうそうき)と名づけました。(写真参照) DSでソフト化したいと考えていたら、プチコンに出会い、久々にプログラミングしました。

用途

  • きれいな色を作って、友達に見せてあげる
  • 光の三原色の学習ツール
  • コンサートで観客が振るペンライト
  • カラオケを盛り上げる光り物(鳴り物の代わり)
  • 光によるモールス通信機

操作

タッチパネルで赤、緑、青のバーを上下して、好みの色を作ります。

  • Aボタン:画面のオフ、オン
  • Xボタン:RGB値の表示/非表示
  • Yボタン:画面のオン、オフのリバース
  • ↑↓←→:メモリー色の表示
  • Bボタン+↑↓←→:現在の表示色の記録

スクリーンショット・動画

sIMGP6397.jpg
sIMGP6404.jpg
sIMGP6405.jpg
sIMGP6920.jpg
sIMGP6926.jpg

QR コード

プチコンmkII 向けの QR コードです。

1/32/33/3
qr0.pngqr1.pngqr2.png

プログラムリスト

  1. ’ ─────────────────────
  2. ’−−−−−−−−−−−−−−−−−−−−−
  3. ’|    Kousouki        |
  4. ’|  Color Player      |
  5. ’| 2011.06.30 by hoy  |
  6. ’−−−−−−−−−−−−−−−−−−−−−
  7. GOSUB @INIT
  8. ?”         Kousouki ver1.2”
  9. ?”         Color Player”
  10. ?”       by hoy 2011.06.30”
  11. ?”      Slide Bars with Pen.”
  12. ?”        A: ON/OFF”
  13. ?”        Y: OFF/ON Reverse”
  14. ?”        X: RGB VoL ON/OFF”
  15. ?”        ↑↓←→: Show Colors”
  16. ?”        B+↑↓←→: Memory”
  17. @MATI
  18. B=BUTTON()
  19. IF B!=0 THEN GOTO @EXIT
  20. IF TCHST==FALSE THEN GOTO @MATI
  21. @EXIT
  22. CLS
  23. GOSUB @PUTCOL
  24. GOSUB @UPDWN
  25. ’−−−−− MAIN LOOP −−−−
  26. @LOOP
  27. B=BUTTON()
  28. IF B==64 THEN GOSUB @NUMOFF
  29. IF B==16 AND FLAG==1 THEN VISIBLE 1,1,1,1,1,1
  30. IF B==16 AND FLAG==−1 THEN VISIBLE 1,1,1,1,1,0
  31. IF B==0 AND FLAG==1 THEN VISIBLE 1,1,1,1,1,0
  32. IF B==0 AND FLAG==−1 THEN VISIBLE 1,1,1,1,1,1
  33. IF B==128 THEN GOSUB @REVERSE
  34. IF B==1 THEN GOSUB @PUT1
  35. IF B==2 THEN GOSUB @PUT2
  36. IF B==4 THEN GOSUB @PUT4
  37. IF B==8 THEN GOSUB @PUT8
  38. IF B==33 THEN GOSUB @SET1
  39. IF B==34 THEN GOSUB @SET2
  40. IF B==36 THEN GOSUB @SET4
  41. IF B==40 THEN GOSUB @SET8
  42. TST=TCHST
  43. IF TST==FALSE THEN GOTO @LOOP
  44. X=TCHX:Y=TCHY
  45. IF FLAG2==−1 THEN VISIBLE 0,1,1,1,1,1
  46. IF FLAG2==1 THEN VISIBLE 1,1,1,1,1,1
  47. IF X>15 AND X<55 THEN GOSUB @R
  48. IF X>75 AND X<115 THEN GOSUB @G
  49. IF X>135 AND X<175 THEN GOSUB @B
  50. IF X>185 THEN GOSUB @3UPDWN
  51. GOTO @LOOP
  52. ’−−−−− SUB −−−−
  53. @R
  54. YR=FLOOR((190−Y)*256/186)−1
  55. IF YR>255 THEN YR=255
  56. IF YR<0 THEN YR=0
  57. GOSUB @COLORSET
  58. GOSUB @BARR
  59. RETURN
  60. @G
  61. YG=FLOOR((190−Y)*256/186)−1
  62. IF YG>255 THEN YG=255
  63. IF YG<0 THEN YG=0
  64. GOSUB @COLORSET
  65. GOSUB @BARG
  66. RETURN
  67. @B
  68. YB=FLOOR((190−Y)*256/186)−1
  69. IF YB>255 THEN YB=255
  70. IF YB<0 THEN YB=0
  71. GOSUB @COLORSET
  72. GOSUB @BARB
  73. RETURN
  74. @ALLUP
  75. YR=YR+2:IF YR>255 THEN YR=255
  76. YG=YG+2:IF YG>255 THEN YG=255
  77. YB=YB+2:IF YB>255 THEN YB=255
  78. GOSUB @PUTCOL
  79. RETURN
  80. @ALLDWN
  81. YR=YR−1:IF YR<0 THEN YR=0
  82. YG=YG−1:IF YG<0 THEN YG=0
  83. YB=YB−1:IF YB<0 THEN YB=0
  84. GOSUB @PUTCOL
  85. RETURN
  86. @3UPDWN
  87. IF Y<96 THEN GOSUB @ALLUP
  88. IF Y>96 THEN GOSUB @ALLDWN
  89. RETURN
  90. ’−−−−−−−−
  91. @COLORSET
  92. R$=HEX$(YR)
  93. G$=HEX$(YG)
  94. B$=HEX$(YB)
  95. IF LEN(R$)==1 THEN R$=”0”+R$
  96. IF LEN(G$)==1 THEN G$=”0”+G$
  97. IF LEN(B$)==1 THEN B$=”0”+B$
  98. C$=R$+G$+B$
  99. GPAGE 0
  100. COLSET ”GRP”, 100, C$
  101. GPAGE 1
  102. COLSET ”GRP”, 100, C$
  103. CLS
  104. IF FLAG2==−1 GOTO @SKIP
  105. LOCATE 3,22
  106. ?”<R>    <G>    <B> ”
  107. LOCATE 3,20 : ? YR;
  108. LOCATE 10,20 : ? YG;
  109. LOCATE 17,20 : ? YB;
  110. @SKIP
  111. RETURN
  112. ’−−−−−−−
  113. @BARR
  114. GLINE 15,OLDYR,55,OLDYR,100
  115. GLINE 15,Y,55,Y,4
  116. OLDYR=Y
  117. RETURN
  118. @BARG
  119. GLINE 75,OLDYG,115,OLDYG,100
  120. GLINE 75,Y,115,Y,4
  121. OLDYG=Y
  122. RETURN
  123. @BARB
  124. GLINE 135,OLDYB,175,OLDYB,100
  125. GLINE 135,Y,175,Y,4
  126. OLDYB=Y
  127. RETURN
  128. @REVERSE
  129. FLAG=FLAG*−1
  130. FOR I = 0 TO 10000
  131. NEXT I
  132. RETURN
  133. @NUMOFF
  134. FLAG2=FLAG2*−1
  135. CLS
  136. GOSUB @COLORSET
  137. FOR I = 0 TO 10000
  138. NEXT I
  139. RETURN
  140. @PUTCOL
  141. GOSUB @COLORSET
  142. Y=FLOOR(190−(YR+1)*186/256)
  143. GOSUB @BARR
  144. Y=FLOOR(190−(YG+1)*186/256)
  145. GOSUB @BARG
  146. Y=FLOOR(190−(YB+1)*186/256)
  147. GOSUB @BARB
  148. RETURN
  149. @UPDWN
  150. GLINE 205,76,220,56,4
  151. GLINE 220,56,235,76,4
  152. GLINE 205,116,220,136,4
  153. GLINE 220,136,235,116,4
  154. RETURN
  155. @PUT1
  156. YR=MEMORY(0,0)
  157. YG=MEMORY(0,1)
  158. YB=MEMORY(0,2)
  159. GOSUB @PUTCOL
  160. RETURN
  161. @PUT2
  162. YR=MEMORY(1,0)
  163. YG=MEMORY(1,1)
  164. YB=MEMORY(1,2)
  165. GOSUB @PUTCOL
  166. RETURN
  167. @PUT4
  168. YR=MEMORY(2,0)
  169. YG=MEMORY(2,1)
  170. YB=MEMORY(2,2)
  171. GOSUB @PUTCOL
  172. RETURN
  173. @PUT8
  174. YR=MEMORY(3,0)
  175. YG=MEMORY(3,1)
  176. YB=MEMORY(3,2)
  177. GOSUB @PUTCOL
  178. RETURN
  179. @SET1
  180. MEMORY(0,0)=YR
  181. MEMORY(0,1)=YG
  182. MEMORY(0,2)=YB
  183. RETURN
  184. @SET2
  185. MEMORY(1,0)=YR
  186. MEMORY(1,1)=YG
  187. MEMORY(1,2)=YB
  188. RETURN
  189. @SET4
  190. MEMORY(2,0)=YR
  191. MEMORY(2,1)=YG
  192. MEMORY(2,2)=YB
  193. RETURN
  194. @SET8
  195. MEMORY(3,0)=YR
  196. MEMORY(3,1)=YG
  197. MEMORY(3,2)=YB
  198. RETURN
  199. @INIT
  200. CLEAR
  201. VISIBLE 1,1,1,1,1,1
  202. COLOR 2
  203. GPAGE 0
  204. GCLS 100
  205. PNLTYPE ”OFF”
  206. GPAGE 1
  207. GCLS 100
  208. DATA 58,13,31,48,136,161
  209. DATA 211,71,0,30,68,18
  210. DIM MEMORY(4,3)
  211. FOR I= 0 TO 3
  212.  FOR J = 0 TO 2
  213.   READ MEMORY(I,J)
  214.  NEXT J
  215. NEXT I
  216. FLAG=−1 : FLAG2=1
  217. YR=131 : YG=21 : YB=39
  218. GOSUB @PUTCOL
  219. GOSUB @UPDWN
  220. CLS
  221. RETURN
  222. ’−−−  END  −−−

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 三毛乱ジェロ : これをゲームに転用すると面白いかも。目的の色を探し出すタイムを競うとか色んな「原色」を混ぜて目的の色を作るとか。 (2012/04/08 (日) 23:59:02)
  • 名無しさん : これ MEM のところに保存できるようになるといいと思う (2012/04/09 (月) 14:09:25)
  • hoy : コメントありがとう。ゲーム化しました。−>「ペンキ屋さん」 (2012/04/28 (土) 13:42:49)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.119 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:12 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30