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

NETTypeInfo["System.IO.Ports.SerialPort"]

Graphics[{White,EdgeForm[Black],Button[Polygon[{{0,0},{1,0},{1,4},{0,4}}],ser@Write[MakeNETObject[{10,10},"System.Byte[]"],0,2]],Button[Polygon[{{1,0},{2,0},{2,4},{1,4}}],ser@Write[MakeNETObject[{20,20},"System.Byte[]"],0,2]],Button[Polygon[{{2,0},{3,0},{3,4},{2,4}}],ser@Write[MakeNETObject[{30,30},"System.Byte[]"],0,2]],Button[Polygon[{{3,0},{4,0},{4,4},{3,4}}],ser@Write[MakeNETObject[{40,40},"System.Byte[]"],0,2]],Button[Polygon[{{4,0},{5,0},{5,4},{4,4}}],ser@Write[MakeNETObject[{50,50},"System.Byte[]"],0,2]],Button[Polygon[{{5,0},{6,0},{6,4},{5,4}}],ser@Write[MakeNETObject[{60,60},"System.Byte[]"],0,2]],Button[Polygon[{{6,0},{7,0},{7,4},{6,4}}],ser@Write[MakeNETObject[{70,70},"System.Byte[]"],0,2]],Button[Polygon[{{7,0},{8,0},{8,4},{7,4}}],ser@Write[MakeNETObject[{80,80},"System.Byte[]"],0,2]],
Black,
Button[Polygon[{{0.6,4},{1.4,4},{1.4,2},{0.6,2}}],ser@Write[MakeNETObject[{15,15},"System.Byte[]"],0,2]],Button[Polygon[{{1.6,4},{2.4,4},{2.4,2},{1.6,2}}],ser@Write[MakeNETObject[{25,25},"System.Byte[]"],0,2]],Button[Polygon[{{3.6,4},{4.4,4},{4.4,2},{3.6,2}}],ser@Write[MakeNETObject[{45,45},"System.Byte[]"],0,2]],Button[Polygon[{{4.6,4},{5.4,4},{5.4,2},{4.6,2}}],ser@Write[MakeNETObject[{55,55},"System.Byte[]"],0,2]],Button[Polygon[{{5.6,4},{6.4,4},{6.4,2},{5.6,2}}],ser@Write[MakeNETObject[{65,65},"System.Byte[]"],0,2]]
}]