# Arduino Files for HomeScope's XY axes In HomeScope the Arduinos (Z and also XY) work as a **2-State automata** which has two states: (i) `listening`, (ii) `actuating`. ## XY control with No LCD display and No GUI The most basic version of the code to control XY only listens for JoyStick commands from the user. These can be four possible: move x forward (X:++), move x backwards (X:--), move y fowards (Y:++), or move y backwards (Y:--) The code is: > `Arduino_XY_no_GUI_no_LCD.ino` ## XY control wirh LCD but no GUI The next step in complexity is to add a LCD display notifying the angle (0 to 90 degrees) coordinates of the servo motors so we have some orientation about where are we. > `Arduino_XY_no_GUI.ino` ## XY control with LCD and GUI sending messages to GPIOs Using the Arduino GPIOs (1,2) and (3,4) we can read messages from the Raspberry Pi. If the pins are grounded no message is conveyed (00). To move one way or the other we read (10) or (01) respectively. Ths final complete code then is: > `Arduino_XY.ino` To understand the codes listed here visit [Arduino XY hacks](https://git.xinstitute.org.cn/Biology_Laboratory/Arduino_XY_hacks) repository.