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