{"id":19409878,"url":"https://github.com/dsuarezv/myarmui","last_synced_at":"2025-02-25T02:21:08.398Z","repository":{"id":151789793,"uuid":"138708727","full_name":"dsuarezv/myarmui","owner":"dsuarezv","description":"Software to control MyArm robotic arm","archived":false,"fork":false,"pushed_at":"2018-06-26T09:33:09.000Z","size":9146,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"devel","last_synced_at":"2025-01-07T14:47:13.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsuarezv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-26T08:33:38.000Z","updated_at":"2019-06-26T03:26:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"af568c67-6349-48a4-b818-2c46f4d34058","html_url":"https://github.com/dsuarezv/myarmui","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/dsuarezv%2Fmyarmui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsuarezv%2Fmyarmui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsuarezv%2Fmyarmui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsuarezv%2Fmyarmui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsuarezv","download_url":"https://codeload.github.com/dsuarezv/myarmui/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240587845,"owners_count":19825060,"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":[],"created_at":"2024-11-10T12:13:55.619Z","updated_at":"2025-02-25T02:21:08.386Z","avatar_url":"https://github.com/dsuarezv.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"MyArm control software\n======================\n\nThis repository contains the PC and Arduino firmware to control [this](https://grabcad.com/library/desktop-robotic-arm-1) robotic arm: \n![Robot picture](/screenshots/00.jpg)\n\nPlans for building are available here: \n\n* https://grabcad.com/library/desktop-robotic-arm-1\n* https://www.inventables.com/projects/desktop-robotic-arm\n \nThe software here is made of a library written in C# that can be reused and a GUI for Windows that uses the library to connect to the robot and send basic movement commands. It allows basis path creation / edition. \n![GUI](/screenshots/01.png)\n\n## Description\n\nThe Arduino firmware controls the servos in the robot. It receives positions in 3D through the serial port and calculates the inverse kinematics solution to move the tip of the arm to position. \n\nThe PC library provides a high level API to move the robot in 3D space and handles all the serial communication and encoding with the robot's firmware. \n\n## Usage\n\n### Arduino\n\nTo install the Arduino firmware, use the Arduino IDE and open the the project in `/Firmware/Arduino/MyArmServer`. Deploy to your Arduino as usual. The output pins where the servos are located can be found in MyArm.cpp. Depending on the servo shield ou are using or where you have connected the servos you may want to change these values. It's the ControlPin field set in `MyArm::Init()`. \n\nIt also contains the default maximum and mininum angle values for each axis, which you may want to tweak for specific motors, in the fields `AngleMin` and `AngleMax`. \n\n### GUI\n\nI have included a compiled version of the GUI in the `/bin` directory, in case you don't have a .NET build chain set up. Just open that folder and double click the file `MyArmUI.exe`. \n\nSelect the serial port your arduino is connected to and hit connect. Once connected, you can use the controls below to move the arm. Even if you don't have the robot connected, you can still play with the software and see how the robot would react with the 3D preview on the right. To rotate the 3D view, drag with the right mouse button on that control. \n\nThe semicircle on the left is a view of the robot from above, clicking anywhere will move the tip of the robot to that position at the current height. To change the height, use the mouse wheel, with the mouse over that control. You can also set the height with the mini scrollbar to the right of the semicircle. \n\n#### Building the GUI\n\nOpen the solution in Visual Studio and compile. The GUI is a WinForms project. It uses a couple of dependencies, mainly OpenTK and opencv (both included). OpenCV is not really used, but I've been tinkering with it and want to keep it handy.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsuarezv%2Fmyarmui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsuarezv%2Fmyarmui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsuarezv%2Fmyarmui/lists"}