It is vital to provide laboratory activities to maximize learning in STEM disciplines. Traditionally, students perform experiments by being present in a laboratory and working with physical systems. However, when considering the financial involvement, manageability, and accessibility, this arrangement is not always effective. With the emerging technologies in computing hardware and software, researchers and academics are leaning toward Internet accessible remote testbeds to replace or supplement existing laboratory experiments. Remote testbeds can maximizes utilization time, increase collaboration among universities and research centers, and provide access to expensive experimental resources.
Researchers are using various hardware and software technologies for remote laboratory developments. Thinking broadly, a remote testbed system can be divided into a few major components: the testbed itself and the interface of the testbed and a computer, graphical user interface (GUI), and server for remote access and access management. A number of software tools are used for graphical user interface development and server applications. Some of these tools are LabVIEW, Matlab, and .NET. These are expensive and the first two have some limitations in terms of flexibility in development and browser adaptability.
With these in mind, this paper will report the design and development of experimental testbeds using Python for computer interfacing, GUI development, and remote access. In addition, it will compare the feasibility of this development with the LabVIEW, Matlab, and other software tools. Python is a scripting language available on the market for software development particularly suited to internet applications. As Python is an open source tool, it has a wide variety of modules, exceptions, high-level dynamic data types, classes, and interfaces to huge libraries.
In terms of experimental development, this paper will report two remote testbeds that were developed using the Python. The testbeds are remote programming of a microcontroller system for interfacing applications and a mobile platform with self-navigation. Both systems will be integrated with a laboratory course for microcontroller and interfacing applications.
Within the first testbed, an Arduino microcontroller is interfaced with a number of output devices (liquid crystal display, seven segment display, light emitting diodes, and a stepper motors). Using a GUI, remote users can run a few pre-developed programs provided with the system as well as upload their own program to the microcontroller. The testbed has the capability to compile an uploaded program and send the compilation report to the remote user. If needed, the remote user will then debug the program and upload again. Finally, the user can verify the program implementation through a video feedback provided with the testbed. The second testbed is a self-navigated mobile platform fitted with a vacuum cleaner. The mobile platform is wirelessly connected to the server for operation and control. The system is fitted with a number of sensors to implement self-navigation through obstacles and has an onboard microcontroller system for control. A GUI was developed to facilitate interaction between the system and a remote user. Finally, discussion will highlight the features of this Python development in comparison with other approaches for remote testbed development.
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.