Hatena::ブログ(Diary)

SHIROのモバイル日記 RSSフィード

2018-01-21

[]教室タイマー

教室用の簡易タイマープログラムです。IchigoJam教室で「1分考えて」などと時間を区切った課題の時に使えます。
Video 5モード(8文字×6行表示)で拡大して表示しています。
f:id:shiro0922:20180121042044p:image:w360

  • 実行すると、設定する分数を聞かれます。1〜99分で入力します。
  • 入力してエンターキーを押すと、すぐにタイマーが作動します。分数をダウンカウント表示すると共に、イチゴマークの横棒グラフで進行度を表示します。
  • 時間が来ると、BEEP音が鳴ってタイマーが止まります。何かキーを押すと時間設定に戻ります。プログラムを終了したい時はESCキーで止めてください。

TICK関数で簡易にカウントしているので、時間が若干ずれます。IchigoJam実機で、10分設定で1〜2秒早く終わります。
web版だと多少遅くなるので、16行の「TICK()<59」を「TICK()<57」にしてください。
もちろんキッチンタイマーの方が正確に計れますが、IchigoJam教室だったらIchigoJamでやりたいですよね(^_^)

プログラムリスト

1 '*Classroom Timer
2 CLV:CLK:VIDEO 5:CLS
3 ?"Minutes"
4 ?"(1-99)="
5 INPUT T
6 A=T*60
7 CLS:?
8 FOR S=0 TO 29
9 ?CHR$(165);:NEXT
10 GSB 25
11 BEEP
12 'TIMER
13 FOR S=0 TO 29:B=0
14 '@SLOOP
15 CLT
16 IF TICK()<59 CONT
17 A=A-1
18 GSB 25
19 B=B+1
20 IF B<T*2 GOTO 14
21 LC S%8,1+S/8:?CHR$(255)
22 NEXT
23 BEEP 10,60
24 IF INKEY() RUN ELSE CONT
25 '@PRTM
26 LC 0,0
27 N=A/600:?N;
28 N=A%600/60:?N;
29 ?":";
30 N=A%60/10:?N;
31 N=A%60%10:?N;
32 RTN

web版

こちらをクリック。

2018-01-19

[]IchigoIgaiZenbu

f:id:shiro0922:20180119061919j:image:w360
キーボード・モニタ一体型IchigoJamの2号機です。
以前作った1号機と同じく、ELECOMキーボードテンキー部分をくり抜いて仕込みました。

f:id:shiro0922:20180119071159j:image:w360
今回は液晶モニタユニットと、IchigoIgai基板を組み込んでみました。
IchigoIgaiの幅はテンキーにピッタリです(笑)
USB端子を上向きに立てて付けるなど、いろいろ改造しています。

f:id:shiro0922:20180119061955j:image:w360
IchigoDakeを差せば、BASIC環境。

f:id:shiro0922:20180119062123j:image:w360
IchigoDakeLatteを差せば、JavaScript環境。

f:id:shiro0922:20180119070353j:image:w360
IchigoDakeModokiを差せば、4K拡張版BASIC環境になります。
(画面はIchigoTrek-4K。Web版はこちら

これで、いつでもどこでも好きな環境でプログラミングができます(^_^)v

余談ですが、前作の経験と、IchigoIgai基板を使ったこともあって、工作はだいぶ楽になりました。
ただ、液晶ユニットが電源5Vでも動く当たり品だったのですが、変な癖があって、IchigoIgai基板経由で電源を取ると動きませんでした。
そのため、USB電源を液晶ユニット→IchigoIgaiへ回しています。IchigoIgaiのスイッチがOFFでも液晶ユニットは通電状態なので、バッテリ側のスイッチを切らないと電力を消費してしまいます。

材料

3.5インチ 高画質、埋め込みモジュールモニター

追記

IchigonQuestの1.0.0α版が出たので、さっそくテスト。
すぐに差し替えて試せるのが便利です(^_^)
f:id:shiro0922:20180119213052j:image:w360

2018-01-17

[]リモコンカムロボOLED

タミヤとナチュラルスタイルの共同開発で、カムロボとIchigoJamを使ったロボットプログラム教室が各地で行われ始めています。
http://tamiya-robotschool.com/
私も以前にカムロボ+IchigoJamを組み立てて、さらにアームをサーボモーターで動くように改造して、リモコンで操作できるカムロボを作りました。
f:id:shiro0922:20170915173547j:image:w360

動画はこちら。
D

今回、さらにCN5にOLED有機EL)を載せて、動作中にメッセージを表示するようにしました。
f:id:shiro0922:20180117132203j:image:w360

動画はこちら。
D

プログラムは以下のとおりです。
OLED表示サブルーチンは、「連打OLED」と同じく、国野さんのサイトのプログラムを使わせていただいています。1Kバイトぎりぎりなので、圧縮して見づらいプログラムになっています。

1 '*Remocon CamRobo OLED
2 GSB27
3 WAIT120:OUT0:PWM3,240:PWM4,50
4 '@LOOP
5 L=ANA(2):R=ANA(0):CLS
6 M=0
7 IFL<200M=1:?"LEFT FORWARD"
8 IFL>823M=2:?"LEFT BACK"
9 S=0
10 IFR<200S=32:?"RIGHT FORWARD"
11 IFR>823S=16:?"RIGHT BACK"
12 OUTM+S
13 IF!IN(1)&&TICK()>180GSB17
14 IF!IN(4)&&TICK()>180GSB22
15 GSB34
16 WAIT6:GOTO4
17 '@ARML
18 PWM3,145:?"LEFT ARM UP":GSB34
19 WAIT30
20 PWM3,240:?"LEFT ARM DOWN":GSB34
21 CLT:RTN
22 '@ARMR
23 PWM4,145:?"RIGHT ARM UP":GSB34
24 WAIT30
25 PWM4,50:?"RIGHT ARM DOWN":GSB34
26 CLT:RTN
27 '@OLEDINIT
28 let[0],#4000,33,#227F,#700,#B5F0,#1840,#230B,#21B,#18C9,#4694,#2410
29 let[11],#7803,#DB,#18D2,#2708,#2300,#2507,#5D56,#40FE,#415B,#3D01
30 let[21],#D2FA,#700B,#3101,#3F01,#D1F4,#3001,#4662,#3C01,#D1EC,#BDF0
31 let[90],#D5AE,#8D80,#2014,#A100,#DAC8,#8112,#D9CF,#DBF1,#A440,#AFA6
32 ifi2cw(60,#800,1,#8B4,20)?"E"
33 video3:copy#A00,#800,62:clv
34 '@OLEDOUT
35 for[98]=0to7:i=usr(#A08,#900+[98]*16)|i2cw(60,#A01,1,#B00,128):next:rtn

2017-12-25

[]エモ万華鏡

エモシリーズ第4弾、万華鏡です。筒の中でLEDテープを光らせて、穴から覗いて見ます。
動画はこちら。
D

筒はマーブルチョコレートを使います。
もちろん中身はおいしくいただきました(^_^)
f:id:shiro0922:20171225003909j:image:w360

ふたにのぞき穴を開けます。
f:id:shiro0922:20171225130554j:image:medium

回路はエモディスクなどと同じで、IchigoDakeでWS2812Bを制御します。
f:id:shiro0922:20171225143504j:image:w360

内面鏡の材料は、ダイソーのハードカードケースです。
f:id:shiro0922:20171225003934j:image:w360

ハサミで切って、12cm×1.9cm×3面の正三角柱を作ります。
f:id:shiro0922:20171225150249j:image:w360

底面にLEDテープを両面テープで貼り付け。
f:id:shiro0922:20171225150933j:image:w360

三角柱の外側を黒ビニールテープで覆います。
f:id:shiro0922:20171225152027j:image:w360

筒の中に三角柱を挿入。
f:id:shiro0922:20171225170917j:image:w360

筒の外側に回路基板を固定して完成。
f:id:shiro0922:20171225152714j:image:w360

プログラムはこちら。

10 '*WS2812B Kaleidoscope
20 VIDEO 0
30 POKE #700,102,32,240,181,114,182,8,36,36,2,9,25,11,76,128,37,11,120,255,34,34,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,0,34
40 POKE #728,34,96,1,62,253,209,109,8,239,209,2,49,1,56,234,209,98,182,240,189,16,0,0,80
50 POKE #740,2,73,8,104,4,34,16,67,8,96,112,71,0,128,0,80:U=USR(#740,0)
60 FOR I=0 TO 4
70 LET [I*3],RND(100),RND(100),RND(100)
80 NEXT
90 '@LOOP
100 FOR I=0 TO 3
110 FOR J=0 TO 2
120 [I*3+J]=[I*3+J+3]
130 NEXT
140 NEXT
150 LET [12],RND(100),RND(100),RND(100)
160 U=USR(#700,0)
170 WAIT 10
180 GOTO 90

2017-12-23

[]バーサライタRPi・地名編

先日作ったバーサライタRPiで、地名を表示してみました。動画はこちら。
D

プログラムは以下のとおりです。
データがわかりやすいプログラムにしたので、内容を見ればネタバレですが…(笑)

地名1「上田」

10 '*POV Ueda
11 VIDEO 0
12 W=20
13 [0] =`0100000
14 [1] =`0100000
15 [2] =`0111110
16 [3] =`0101000
17 [4] =`0100000
18 [5] =`0000000
19 [6] =`0111110
20 [7] =`0101010
21 [8] =`0111110
22 [9] =`0101010
23 [10]=`0111110
24 [11]=`0000000
25 [12]=`0000000
26 '@LOOP
27 FOR I=0 TO 12
28 OUT [I]
29 FOR T=1 TO W:NEXT
30 NEXT
31 GOTO 26

地名2「福井」

10 '*POV Fukui
11 VIDEO 0
12 W=20
13 [0] =`0100010
14 [1] =`0010010
15 [2] =`0001110
16 [3] =`0000000
17 [4] =`0100100
18 [5] =`0010010
19 [6] =`0001110
20 [7] =`0000000
21 [8] =`0001000
22 [9] =`0111100
23 [10]=`0000010
24 [11]=`0000000
25 [12]=`0000000
26 '@LOOP
27 FOR I=0 TO 12
28 OUT [I]
29 FOR T=1 TO W:NEXT
30 NEXT
31 GOTO 26

地名3「仙台」

10 '*POV Sendai
11 VIDEO 0
12 W=15
13 [0] =`0000100
14 [1] =`1111110
15 [2] =`0000001
16 [3] =`1111000
17 [4] =`1000000
18 [5] =`1111111
19 [6] =`1000000
20 [7] =`1111000
21 [8] =`0000000
22 [9] =`1110100
23 [10]=`1010110
24 [11]=`1010101
25 [12]=`1010100
26 [13]=`1110110
27 [14]=`0000000
28 [15]=`0000000
29 '@LOOP
30 FOR I=0 TO 15
31 OUT [I]
32 FOR T=1 TO W:NEXT
33 NEXT
34 GOTO 29

地名4「鯖江」

10 '*POV Sabae
11 VIDEO 0
12 W=20
13 [0] =`0001100
14 [1] =`1011110
15 [2] =`1111101
16 [3] =`1011110
17 [4] =`0001100
18 [5] =`0000000
19 [6] =`1000001
20 [7] =`1000001
21 [8] =`1111111
22 [9] =`1000001
23 [10]=`1000001
24 [11]=`0000000
25 [12]=`0000000
26 '@LOOP
27 FOR I=0 TO 12
28 OUT [I]
29 FOR T=1 TO W:NEXT
30 NEXT
31 GOTO 26
ダウンロード
リンク集
アクセスカウンター