アニメーション&Arduinoとの連携

Needs["NETLink`"]
InstallNET[];
ser=NETNew["System.IO.Ports.SerialPort","COM8",9600]
ser@Open[]

Animate[
x=400Cos[5t];
y=400Sin[3t];
(*車*)
body={White,Polygon[{{-1000+300t,0},{-800+300t,0},{-800+300t,50},{-840+300t,50},{-840+300t,50},{-840+300t,100},{-960+300t,100},{-960+300t,50},{-1000+300t,50}}]};
taiya={Gray,Disk[{-950+300t,0},25],Disk[{-850+300t,0},25]};
light={Yellow,Opacity[0.3],Disk[{-810+300t,25},200,{-Pi/8,Pi/8}]};
light2={Yellow,Rectangle[{-800+300t,15},{-820+300t,35}]};
windows={Black,GrayLevel[0.3],Rectangle[{-850+300t,50},{-895+300t,90}],Rectangle[{-950+300t,50},{-905+300t,90}]};
car={body,taiya,light,light2,windows};
(*星*)
star={Yellow,Polygon[{{x,y+700},{x-24,y+626},{x-99,y+624},{x-40,y-21+600},{x-60,y-96+600},{x,y-52+600},{x+60,y-96+600},{x+40,y-21+600},{x+99,y+624},{x+24,y+626}}]};
(*かえる*)
body={Green,Disk[{0,0},{90,100}]};
body2={White,Opacity[.75],Disk[{0,-20},{60,70}]};
head={Green,Disk[{0,130},{110,80}],Disk[{-60,200},40],Disk[{60,200},40],White,Disk[{-60,200},30],Disk[{60,200},30]};
eyes={Black,Thickness[0.01],Line[{{60-20*Sin[t],200},{60+20*Sin[t],200}}],Line[{{-60-20*Sin[t],200},{-60+20*Sin[t],200}}]};
nose={Black,Disk[{-10,140},5],Disk[{10,140},5]};
mouse={White,Opacity[0.75],Disk[{0,130},80+Abs[15Sin[t]],{0,-Pi}]};
legs={Green,Thickness[0.02],CapForm["Round"],JoinForm["Round"],Line[{{0,-50},{-100,-50},{-100,-100}}],Line[{{0,-50},{100,-50},{100,-100}}]};
hands={Green,CapForm["Round"],Thickness[0.02],Line[{{-60,-20},{-60,-100}}],Line[{{60,-20},{60,-100}}]};
frog={legs,body,body2,hands,head,eyes,nose,mouse};
(*地面*)
base={Brown,Rectangle[{-700,-150},{700,75}]};
(*オプション*)
options={Background->GrayLevel[.1],PlotRange->{{-600,600},{-150,1000}},Axes->False};

Graphics[{
base,
Button[car,ser@Write["C"]],
Button[star,ser@Write["B"]],
Button[frog,ser@Write["A"]]
},options],
{t,0,2Pi,Pi/2000},AnimationRunning->True
]

Button["Stop Program",ser@Close[]]