idc-milab / openlh

The OpenLH is a Liquid handling system based on an available robotic arm platform (uARM swift Pro) which allows for creative exploration by biologists and bio-enthusiasts.
http://milab.idc.ac.il/teaching/projects/openlh/
16 stars 6 forks source link
biohacking flask python uarm-swift-pro

OpenLH: Open Liquid-Handling System

The OpenLH is a Liquid handling system based on an available robotic arm platform (uARM swift Pro) which allows for creative exploration by biologists and bio-enthusiasts.

You can find full and detailed step-by-step guide for building one on our Instructables page, including BOM, STL models and precise instructions. Find more info on the project's website. Share with us if you're building one!

OpenLH

Getting Started

Before you continue reading, make sure you have:

Python 3.7 and PyCharm IDE. Then, clone this repository by:

git clone https://github.com/idc-milab/openlh

Setting up Python Environment

Open the folder you cloned as a project, through PyCharm.
First, we will create virtual environment for this project (For more information https://www.jetbrains.com/help/pycharm-edu/creating-virtual-environment.html):

  1. Enter File → Settings → Project: → Project Interpreter.
  2. Click the :gear: icon and choose Add
  3. In Add Python Interpreter window, select Virtualenv Environment:
    • Specify the location of the new virtual environment in the text field, or click Virtual environment location and find location in your file system. Note that the directory where the new virtual environment should be located, must be empty!
    • Choose the base interpreter from the drop-down list, or click Choose the base interpreter and find the base interpreter in your file system.
    • Select the Make available to all projects check-box, if needed.
      1. Click Ok

Install packages

This project uses several libraries within it:

After setting up the virtual environment, use pip to install the required packages through the Terminal in the bottom left:

  pip install -r requirements.txt

Running for the first time

After setting it all up, run both app.py and listener.py modules. Then, in your web browser enter: http://127.0.0.1:5000/. Now you can easily create programs for the arm via the blockly interface and run them with the OpenLH!

Main features

software

Project Structure

The uArm runs on top of an Arduino Mega 2560 with a custom version of Marlin firmware (available under GPL license). The robot operates using G-code definitions sent through UART protocol.

Overview

The code flows throughout the project in the following way: The user may generate different programs manipulating the arm using google's Blockly interface. The generated program is then compiled to python code, using the Swift API (which compiles to G-code commands), and sent as an XML Http Request to app.py. The message is then being sent as a UDP message to the listener. Eventually, the listener is executing the code which activates the arm. In addition, it is possible to save programs for later use and upload images for the Bitmap to Bioprint feature.