# Introduction
The ArduBridge (GSOF_ArduBridge) is a Python software package designed to bridge between a host computer (e.g: PC or RPI) and an Arduino.
The ArduShield (GSOF_ArduShield) is an expansion board for the Arduino Uno R3 that adds additional features and connectors to attach devices such as servos, DC motors, analog sensors, high-power actuators, etc.
The main computer runs the Python script and the ArduBridge sends the commands to the Arduino over USB(RS232). This provides a convinient way to develop real-time algorithms on the main computer and use of the sensors and actuators via the Arduino. In addition, the electronic hardware can be used without the ArduBridge software by programming the Arduino directly in C/C++.
# Shield hardware
The ArduShield includes a dual H-bridge capable of driving DC motors, Thermo Electric Coolers (TEC), and other high-power devices up to 12V / 2A.
In addition, the onboard 5V regulator eliminates the need to supply a precise voltage to drive the external peripherals and to prevent overloading the USB host.
The ArduShield also includes connectors for easy connection of servos, analog sensors, General Input Output ports (GPIO), and devices over the Serial-Peripheral-Interface (SPI) or Inter-Integrated-Circuit I2C bus.
Although the ArduShield can be used in various projects, it was initially designed to encapsulate the electronic circuits used in Digital-Microfluidics (DMF) setup. A unique feature of the shield is the capability to stack up additional extension boards (e.g., the Digital-Microfluidics (DMF) electrode driver) without the need for extra cables and workbench space. Another unique capability is its ability to measure the impedance between any DMF electrode and the Indium-Tin-Oxide (ITO) plate. This is extremely useful for detecting faults in droplets and estimating droplet size.

# Installation and hardware setup
The ArduBridge Python model is a pip package installation and the firmware that runs on the Arduino is installed by programming (also know as uploading).
## Firmware upload
To program the Arduino use the xloader application (https://github.com/xinabox/xLoader) and follow these steps:
1. Open the xloader application.
2. Select the COM port that the Arduino is connected to.
3. Select the Hex file "Bridge_Ctrl_V18.ino.hex" (or the most updated FW you have).
4. Press the "Upload" button and wait for the programming operation to finish after a few seconds.

## Python modules installation
Before installing the ArduShield module, make sure Python 3.7 or above is installed (https://www.python.org/)
together with the latest pyserial module (use the command "pip install pyserial" to install it).<br />
or in short:
- Clone
- Install requirements `pip install -r requirements.txt`
Installation of the ArduBridge can be done in two ways:
1. By double clicking the setup.bat batch file.
2. By running the setup.py script in a command prompt ("CMD") window.
# Documentation and example code
A detailed [user manual](https://github.com/mrGSOF/arduBridge/blob/main/Documentation/GSOF_ArduBridgeShield_UM.pdf) can be found under the Documentation folder.
[Code example](https://github.com/mrGSOF/arduBridge/tree/main/Examples) are present under the Example folder.

Update the COM port in ArduBridge_IDE.py and run in interactive mode ("python -i ArduBridge_IDE.py")
You can interact the Arduino using the ardu and ards objects (refer to the [tutorial](https://github.com/mrGSOF/arduBridge/blob/main/Documentation/GSOF_ArduBridgeShield_UM.docx) for further information).
# Acknowledgements
I want to thank the following beta testers for their valuable contributions in the developent of the ArduBridge program:
James Perry (Ph.D.), Laura Leclerc, Kenza Samlali (Ph.D.), Tzur Soffer, and Sam Little.
Their feedback and suggestions were instrumental in identifying and resolving any issues in the program. I would especially like to acknowledge James and Tzur. James used the Ardubridge in all of his academic publications and teaching new students how to use it as well. Tzur automated his room and build autonomous robots using the ArduBridge environment.
Raw data
{
"_id": null,
"home_page": "https://github.com/mrGSOF/arduBridge.git",
"name": "GSOF-ArduBridge",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "ArduBridge",
"author": "Guy Soffer",
"author_email": "gsoffer@yahoo.com",
"download_url": "https://files.pythonhosted.org/packages/cb/5a/37be293484c795216987415051d6786c85ae2fd8b7ac5a01c40f660bd1fe/gsof_ardubridge-0.11.tar.gz",
"platform": "any",
"description": "# Introduction\r\nThe ArduBridge (GSOF_ArduBridge) is a Python software package designed to bridge between a host computer (e.g: PC or RPI) and an Arduino.\r\nThe ArduShield (GSOF_ArduShield) is an expansion board for the Arduino Uno R3 that adds additional features and connectors to attach devices such as servos, DC motors, analog sensors, high-power actuators, etc.\r\nThe main computer runs the Python script and the ArduBridge sends the commands to the Arduino over USB(RS232). This provides a convinient way to develop real-time algorithms on the main computer and use of the sensors and actuators via the Arduino. In addition, the electronic hardware can be used without the ArduBridge software by programming the Arduino directly in C/C++.\r\n\r\n# Shield hardware\r\nThe ArduShield includes a dual H-bridge capable of driving DC motors, Thermo Electric Coolers (TEC), and other high-power devices up to 12V / 2A.\r\nIn addition, the onboard 5V regulator eliminates the need to supply a precise voltage to drive the external peripherals and to prevent overloading the USB host.\r\n The ArduShield also includes connectors for easy connection of servos, analog sensors, General Input Output ports (GPIO), and devices over the Serial-Peripheral-Interface (SPI) or Inter-Integrated-Circuit I2C bus.\r\n Although the ArduShield can be used in various projects, it was initially designed to encapsulate the electronic circuits used in Digital-Microfluidics (DMF) setup. A unique feature of the shield is the capability to stack up additional extension boards (e.g., the Digital-Microfluidics (DMF) electrode driver) without the need for extra cables and workbench space. Another unique capability is its ability to measure the impedance between any DMF electrode and the Indium-Tin-Oxide (ITO) plate. This is extremely useful for detecting faults in droplets and estimating droplet size.\r\n\r\n\r\n# Installation and hardware setup\r\nThe ArduBridge Python model is a pip package installation and the firmware that runs on the Arduino is installed by programming (also know as uploading).\r\n## Firmware upload\r\nTo program the Arduino use the xloader application (https://github.com/xinabox/xLoader) and follow these steps:\r\n1.\tOpen the xloader application.\r\n2.\tSelect the COM port that the Arduino is connected to.\r\n3.\tSelect the Hex file \"Bridge_Ctrl_V18.ino.hex\" (or the most updated FW you have).\r\n4.\tPress the \"Upload\" button and wait for the programming operation to finish after a few seconds.\r\n\r\n\r\n## Python modules installation\r\nBefore installing the ArduShield module, make sure Python 3.7 or above is installed (https://www.python.org/)\r\n together with the latest pyserial module (use the command \"pip install pyserial\" to install it).<br />\r\nor in short:\r\n\r\n- Clone\r\n- Install requirements `pip install -r requirements.txt`\r\n \r\nInstallation of the ArduBridge can be done in two ways:\r\n1.\tBy double clicking the setup.bat batch file.\r\n2.\tBy running the setup.py script in a command prompt (\"CMD\") window.\r\n\r\n# Documentation and example code\r\nA detailed [user manual](https://github.com/mrGSOF/arduBridge/blob/main/Documentation/GSOF_ArduBridgeShield_UM.pdf) can be found under the Documentation folder.\r\n[Code example](https://github.com/mrGSOF/arduBridge/tree/main/Examples) are present under the Example folder.\r\n\r\n\r\nUpdate the COM port in ArduBridge_IDE.py and run in interactive mode (\"python -i ArduBridge_IDE.py\")\r\nYou can interact the Arduino using the ardu and ards objects (refer to the [tutorial](https://github.com/mrGSOF/arduBridge/blob/main/Documentation/GSOF_ArduBridgeShield_UM.docx) for further information).\r\n \r\n# Acknowledgements\r\nI want to thank the following beta testers for their valuable contributions in the developent of the ArduBridge program:\r\nJames Perry (Ph.D.), Laura Leclerc, Kenza Samlali (Ph.D.), Tzur Soffer, and Sam Little.\r\nTheir feedback and suggestions were instrumental in identifying and resolving any issues in the program. I would especially like to acknowledge James and Tzur. James used the Ardubridge in all of his academic publications and teaching new students how to use it as well. Tzur automated his room and build autonomous robots using the ArduBridge environment.\r\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Protocol stack to bridge between an Arduino and Python",
"version": "0.11",
"project_urls": {
"Homepage": "https://github.com/mrGSOF/arduBridge.git"
},
"split_keywords": [
"ardubridge"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f011a6c13bfe63f57d012ea5d244862e2eb707d929183259ae0456215e0a2b32",
"md5": "55c4b26f7f371ef7f3b337f2ad63ecb2",
"sha256": "171550c67b001b4192c527f394b9b51f382ac82bad0dac7f3a6a3c889d617429"
},
"downloads": -1,
"filename": "GSOF_ArduBridge-0.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "55c4b26f7f371ef7f3b337f2ad63ecb2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 103650,
"upload_time": "2024-10-26T16:38:43",
"upload_time_iso_8601": "2024-10-26T16:38:43.941918Z",
"url": "https://files.pythonhosted.org/packages/f0/11/a6c13bfe63f57d012ea5d244862e2eb707d929183259ae0456215e0a2b32/GSOF_ArduBridge-0.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cb5a37be293484c795216987415051d6786c85ae2fd8b7ac5a01c40f660bd1fe",
"md5": "690076f05afb8a53dfadacdeab0f8d49",
"sha256": "5de0b7c331887f4a1e3a1ebd458346ed0d78c2b4d92869e022bbbb89ed44f17c"
},
"downloads": -1,
"filename": "gsof_ardubridge-0.11.tar.gz",
"has_sig": false,
"md5_digest": "690076f05afb8a53dfadacdeab0f8d49",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 71105,
"upload_time": "2024-10-26T16:38:45",
"upload_time_iso_8601": "2024-10-26T16:38:45.525901Z",
"url": "https://files.pythonhosted.org/packages/cb/5a/37be293484c795216987415051d6786c85ae2fd8b7ac5a01c40f660bd1fe/gsof_ardubridge-0.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-26 16:38:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mrGSOF",
"github_project": "arduBridge",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pyserial",
"specs": []
}
],
"lcname": "gsof-ardubridge"
}