{"id":17647284,"url":"https://github.com/ironsheep/p2-mult-servo-exerciser","last_synced_at":"2025-03-30T07:29:34.445Z","repository":{"id":164570636,"uuid":"640033514","full_name":"ironsheep/P2-mult-servo-exerciser","owner":"ironsheep","description":"Exercise/Characterize Multiple servos connected via PCA9685 PWM controller","archived":false,"fork":false,"pushed_at":"2024-03-13T20:10:20.000Z","size":15329,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T09:48:57.913Z","etag":null,"topics":["p2","parallax-propeller-microcontroller","pca9685","propeller2","rotary-encoders","servo-controller","spin2","timi-display"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ironsheep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ironsheep","patreon":"IronSheep"}},"created_at":"2023-05-12T20:15:35.000Z","updated_at":"2023-05-16T07:46:43.000Z","dependencies_parsed_at":"2024-10-23T14:07:55.701Z","dependency_job_id":null,"html_url":"https://github.com/ironsheep/P2-mult-servo-exerciser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironsheep%2FP2-mult-servo-exerciser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironsheep%2FP2-mult-servo-exerciser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironsheep%2FP2-mult-servo-exerciser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironsheep%2FP2-mult-servo-exerciser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ironsheep","download_url":"https://codeload.github.com/ironsheep/P2-mult-servo-exerciser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290555,"owners_count":20753723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["p2","parallax-propeller-microcontroller","pca9685","propeller2","rotary-encoders","servo-controller","spin2","timi-display"],"created_at":"2024-10-23T11:11:55.415Z","updated_at":"2025-03-30T07:29:34.408Z","avatar_url":"https://github.com/ironsheep.png","language":"Shell","funding_links":["https://github.com/sponsors/ironsheep","https://patreon.com/IronSheep","https://www.buymeacoffee.com/ironsheep","https://www.patreon.com/IronSheep?fan_landing=true"],"categories":[],"sub_categories":[],"readme":"# P2 Multi-servo Exerciser\nExercise/Characterize multiple servos connected via PCA9685 PWM controller\n\n![Project Maintenance][maintenance-shield]\n\n[![License][license-shield]](LICENSE)\n\n## Table of Contents\n\nOn this Page:\n\n- [Features](#features)\n- Pictures of this project in use\n- [How to contribute](#how-to-contribute)\n\nAdditional pages:\n\n- [The rotary Encoder object](./RotaryEnc.md) - Reusable object for reading rotary encoder with push button\n- [The TIMI Interface object](./TIMI.md) - Reusable object for driving all of the TIMI Displays\n- [The TIMI-130 Datasheet](./Docs/TIMI-130_Datasheet_REV1.0.pdf) \n- [Testing Eyes](./Unit2UnderTest.md) - the 2nd device i exercized with this project\n\n## Exerciser with OLED display and Rotary Encoder for control\n\nMost of us playing with servos in our projects have a single servo tester:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./DOCs/images/singleTester.jpg\" width=\"400\"\u003e\n\u003c/p\u003e\n\nBut when we are using a 16-channel PWM controller driving our servos we can either unplug each servo to test it or we can do something like this project! \n\n### Bringing together the parts we need\n\nI grabbed a TIMI-130 serial attached OLED display and a rotary encoder with pushbutton feature as be my interface and I used code I already had for the PCA9685 controller.  \n\nI then wrote a driver for the encoder which provided distance and velocity for the turning part a single, double-click for the push button part. [See RotaryEncoder page](./RotaryEnc.md)\n\nThen I created a single TIMI interface object by porting the python TIMI library. Now I can drive the display. [See TIMI Displays page](./TIMI.md)\n\n### Using the tester\n\nIn the end my cobbled together tester looks like this:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./DOCs/images/controlDisplay.jpg\" width=\"400\"\u003e\n\u003c/p\u003e\n\nAnd this is the tester connected to the back of the 6-servo hardware I'm characterizing:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./DOCs/images/testFixture.jpg\" width=\"400\"\u003e\n\u003c/p\u003e\n\nLastly, this is the output from the tester:\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./DOCs/images/results-ang.jpg\" width=\"400\"\u003e\n\u003c/p\u003e\n\n### Features\n\nTo use this exercisor simply connect to the PCA9685 i2c bus and run the project.\n\n- Steps through each of the servos from 0-15\n- Cycles LO and HI for each servo\n- Reminds which end of the range is currently being tested\n- Emits (via debug_ the final LO, HI values for each servo tested.\n\nEnjoy!\n\n## How to Contribute\n\nThis is a project supporting our P2 Development Community. Please feel free to contribute to this project. You can contribute in the following ways:\n\n- File **Feature Requests** or **Issues** (describing things you are seeing while using our code) at the [Project Issue Tracking Page](https://github.com/ironsheep/P2-Click-UWB/issues)\n- Fork this repo and then add your code to it. Finally, create a Pull Request to contribute your code back to this repository for inclusion with the projects code. See [CONTRIBUTING](CONTRIBUTING.md)\n\n---\n\n\u003e If you like my work and/or this has helped you in some way then feel free to help me out for a couple of :coffee:'s or :pizza: slices!\n\u003e\n\u003e [![coffee](https://www.buymeacoffee.com/assets/img/custom_images/black_img.png)](https://www.buymeacoffee.com/ironsheep) \u0026nbsp;\u0026nbsp; -OR- \u0026nbsp;\u0026nbsp; [![Patreon](./DOCs/images/patreon.png)](https://www.patreon.com/IronSheep?fan_landing=true)[Patreon.com/IronSheep](https://www.patreon.com/IronSheep?fan_landing=true)\n\n---\n\n## Disclaimer and Legal\n\n\u003e *Parallax, Propeller Spin, and the Parallax and Propeller Hat logos* are trademarks of Parallax Inc., dba Parallax Semiconductor\n\u003e\n\u003e This project is a community project not for commercial use.\n\u003e\n\u003e This project is in no way affiliated with, authorized, maintained, sponsored or endorsed by *Parallax Inc., dba Parallax Semiconductor* or any of its affiliates or subsidiaries.\n\n---\n\n## License\n\nLicensed under the MIT License.\n\nFollow these links for more information:\n\n### [Copyright](copyright) | [License](LICENSE)\n\n[maintenance-shield]: https://img.shields.io/badge/maintainer-stephen%40ironsheep%2ebiz-blue.svg?style=for-the-badge\n\n[license-shield]: https://img.shields.io/badge/License-MIT-yellow.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironsheep%2Fp2-mult-servo-exerciser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fironsheep%2Fp2-mult-servo-exerciser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironsheep%2Fp2-mult-servo-exerciser/lists"}