In a collaboration between the Kumasi Hive and Biomaker at the University of Cambridge (https://www.biomaker.org), 20 participants gathered in Kumasi with the joint team of organisers, Harry Akligoh, Anne-Pia Marty, Alexandra Ting and Jim Haseloff - for an accelerated course in programming systems and hardware for bioinstrumentation. The aim of the course was to introduce and explore new tools for fast prototyping of custom devices and touchscreen interfaces - useful for development of a wide range of programmable appliances.
Half of the participants had worked with the Biomaker Arduino system before; the other half were new to this. All were new to programming of the touchscreens. One of the main aims of the workshop was to see whether the combined use of graphical programming tools (XOD and Workshop4 IDE) could accelerate learning and use of these devices - for a highly motivated group!
WORKSHOP: DAY 11. Introduction(i) Introduction to participants and description of previous projects.
(ii) Allocation of teams and distribution of Biomaker Starter Kits.
Previous trained Biomaker participants were grouped together with other 10 participants that were new to the Biomaker programme.
(iii) Setup of the Starter Kits with XOD.Objectives: (i) install the software and drivers to allow XOD graphical programming of the Biomaker starter kit, (ii) test the connections and software installation by assembling and downloading several simple patches, (iii) enter parameter values for XOD nodes. (iv) Connect and control LED devices
Technical information about hardware and software:1. Arduino basics: This tutorial is a walk through a number of the features of Arduino microcontroller boards, and a dive into some basic concepts in electronics, with a description of the ports used for communication.
2. Open-Smart Rich UNO R3 multifunction microcontroller board: contains a variety of embedded components, including sensors, 7-segment 4 digit display, real-time clock, touch sensors, buzzer, mp3 player with microSD card holder and expansion shield.
3. XOD: open source software development environment that uses a graphical interface to represent hardware and computing elements as nodes that can be wired together to allow data flow between the objects. It provides a simple tool for non-programmers build useful systems.
Find links to the complete set of Biomaker tutorials at: https://www.biomaker.org/tutorials
2. Getting startedStep-by-step tutorial guide to Getting Started with the Biomaker Starter Kit. (Click here)
Objectives: (i) install the software and USB drivers to allow XOD graphical programming of the Biomaker starter kit, (ii) test the connections and software installation by assembling simple patches for the Rich UNO R3 Arduino board, (iii) enter parameter values for XOD nodes and download the code to the board to flash an onboard LED. (iv) Plug a bright external LED from the starter kit to the same port and test. Revise the graphical program to include input from an onboard touch switch. (v) Use the XOD watch node for real-time debugging. (vi) Learn about conditioning signals by connecting the XOD not and flip-n-times nodes. (vii) Divert the output from the LEDs to the onboard piezoelectric buzzer. You should gain a basic understanding of XOD based programming of Arduino microcontrollers after this tutorial.
Requirements: (i) Computer running MacOS, Windows or Linux (.rpm or.deb), (ii) Biomaker starter kit (2018-2019 version). More information about the Biomaker starter kit can be found at: https://www.biomaker.org/2019-starter-kit
3. Handling input and output devices with XODBiomaker Tutorial 2: Handling Simple Input/Output Devices (Click here)
Objectives: Learn how to manage simple input and output devices, using XOD programming. Use onboard touch buttons, real-time clock, piezoelectric buzzer, connect extension shield, and connect to 16x2 I2C LCD text display. Import your first Library in XOD. Connect and operate external devices.
XOD provides a range of software nodes for control of input and output devices. The microcontroller on the Arduino board has a series of digital and analogue ports that can be used to read or write to simple devices. For example, in the "Getting Started" tutorial, we saw how to interface with touch-sensitive key input and LED outputs using standard XOD nodes. An increasing number of low cost devices are becoming available that are (i) capable of a wide range of calibrated measurements and sophisticated outputs, and (ii) use logic controllers with complex serial communication protocols. Specialized software nodes are required to use these device in XOD, and many of these can be found in published XOD libraries, either default or user-contributed (https://xod.io/libs/).
In this tutorial, we will first show how to connect a 16x2 character LCD display to the Rich UNO R3 multifunction board using a discrete component that has been connected to the Rich UNO R3 board via an expansion shield provided with the Biomaker Starter Kit, and drive the screen using the text-lcd-16x2-i2c node in the xod/common-hardware library.
4. Interface design and 4D Workshop screen programmingTeam will receive a 4D Systems µLCD-32DT-AR Arduino Display Module Pack, which includes a Gen4 µLCD-32DT 3.2" LCD display with resistive touchscreen, a 4D Arduino adaptor shield and 5 way interface cable. The LCD display can be hooked up to the Arduino via a serial port. It is possible to build sophisticated user interfaces for Arduino-based instrumentation using graphical tools.
The Arduino adapter shield allows the µLCD display to be interfaced directly with the Biomaker starter kit without any wiring hassles. The µLCD-32DT is an intelligent display. It possess a dedicated microcontroller and storage which handles a range of functions for interactions and graphical display operations. 4D Systems provides a free Windows-based development environment (4D Workshop - see below) that allows non-programmers to build sophisticated user interfaces, using a drag-and-drop graphical interface. A wide range of interactive widgets can be arranged in a series of forms, customized by setting parameters, and downloaded to the programmable touchscreen. An Arduino microcontroller (or Raspberry Pi or computer) can communicate with the customized touchscreen by simple serial commands, and the screen manages all of the hard work of handling graphics and touchscreen interactivity.
Members of the XOD community have created XOD nodes and libraries that allow simple communication with the programmable screens. They provide a comprehensive range of serial commands to send data for display on the LCD display, and to receive touchscreen based instructions, such as button presses, slider values, etc. The 4D Systems screens handle all interactivity and graphical display - without needing explicitly code these. We provide a 3.2" touchscreen for Biomaker, but a wide range of other screen devices are available, which use the same development environment.
The prospect of "gluing" easily built and easily customized user interfaces to simple Arduino hardware with XOD based graphical programming opens up new opportunities for scientists, engineers and inventors. In order to introduce these powerful devices to new users in simple steps, we have pre-programmed touchscreens with a set of multi-screen graphical widgets, and use these to demonstrate:
- how to receive and display messages from hardware on the Biomaker Rich UNO R3 board.
- how to send information to the Biomaker Rich UNO R3 board after user interaction with the touchscreen.
Some additional detail and technical background is provided below, and there are relevant manuals, data sheets, application notes and instructional videos available via the 4D Systems website (https://4dsystems.com.au).
5. Challenge to design a hardware/software touchscreen-based interfaceThe Biomaker starter kit contains a number of sensor devices that allow the construction of a variety of simple instruments for monitoring laboratory reactions, culture conditions and environment. Access to a programmable touchscreen allows addition of sophisticated user interfaces. The challenge is to explore how a touchscreen interface could be used in projects such as: (i) construction of a controlled temperature incubator, (ii) sensor device for reading concentrations of heavy metal ions in water, (iii) control of a hood for sterile biological work, or (iv) automated microplate reader. (Note: these are projects currently underway in the Kumasi Hive)
There are more examples of the ways that touchscreens can be used for display and storage of time-series of sensor data at Biomaker Tutorial 5. This tutorial draws on a XOD guide at: https://xod.io/docs/guide/sd-log-example/ - adjusted for Biomaker Starter Kit hardware, and expanded to include the 4D Systems touchscreen. The example describes how to store sensor data and process it on the computer. We can read position data and display a time sequence of values on the 4D Systems touchscreen. This can be a springboard for design of new customized interfaces.
Teams were given the evening to design an interface that might be customized for their own set of sensors, actuators and application. A prototype was be built using the 4D Systems Workshop4 software - Teams then had a chance to develop their design the following day, and present their ideas to the rest of the group.
WORKSHOP: DAY 2Teams continued work on designing the graphical user interfaces for their teams projects. Later during the day, all teams their solutions to their colleagues.
Comments