アニメーションまたはArduinoとの連携

DynamicModule[
{(*変数定義*)
get=0,(*取得点数*)
score=0,(*得点*)
Fflag=0,(*終了フラグ*)
Sflag=0,(*開始フラグ*)
StartTime=0(*ゲーム開始時のt*)
},
{(*text変数の初期化*)
CountDown=Text[Style["",Large],{9,9}];
FinishText1=Text[Style["",Large],{5,2}];
FinishText2=Text[Style["",Large],{5,4}];
Score=Text[Style["",Large],{5,5}];
StartText=Text[Style["",30],{5,5}];

(*ボタン*)
Button[restart,Fflag=1],
Button[start,Sflag=1],
Button[click,get++],

Animate[
(*初期化*)
If[Fflag==1,
get=0;
score=0;
t=0;
Fflag=0;
Sflag=0;
CountDown=Text[Style["",Large],{9,9}];
FinishText1=Text[Style["",Large],{5,2}];
FinishText2=Text[Style["",Large],{5,4}];
Score=Text[Style["",Large],{5,5}];
StartText=Text[Style["",30],{5,5}];
];

If[Sflag==0,(*待機状態*)
StartText=Text[Style["Clic Start",30],{5,5}];
StartTime=t(*開始時のtを記録*)
];

If[t<=StartTime+3&&Sflag==1,(**カウントダウン中*)
StartText=Text[Style["",30],{5,5}];
CountDown=Text[Style[IntegerPart[4-(t-StartTime)],Large],{5,5}];
get=0
];

If[(StartTime+3<t<StartTime+8)&&Sflag==1,(*プレイ中*)
CountDown=Text[Style["",Large]];
Score=Text[Style[get,35],{5,5}];
score=get
];

If[(StartTime+8<t)&&Sflag==1,(*リザルト*)
Score=Text[Style["",Large],{5,5}];
FinishText1=Text[Style["FINISH",30],{5,6}];
FinishText2=Text[Style["クリック"score,30],{5,4}]
];
Graphics[
{
StartText,CountDown,Score,FinishText1,FinishText2
},
PlotRange->{{0,10},{0,10}}],
{t,0,Infinity},(*時間変数とその範囲*)
AnimationRate->1
]
}
]