{"id":19696217,"url":"https://github.com/mithi/hexapod-irl","last_synced_at":"2025-04-29T11:32:01.713Z","repository":{"id":55089745,"uuid":"325841380","full_name":"mithi/hexapod-irl","owner":"mithi","description":"A \"fork\" of Bare-Minimum Hexapod Robot Simulator 2 modified to be able to control a real physical hexapod robot.","archived":false,"fork":false,"pushed_at":"2021-01-11T15:05:21.000Z","size":5641,"stargazers_count":75,"open_issues_count":2,"forks_count":7,"subscribers_count":6,"default_branch":"dev","last_synced_at":"2025-04-05T15:11:17.243Z","etag":null,"topics":["adafruit","arduino","hexapod","javascript","johnny-five","nodejs","react","robot","robotics"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mithi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-31T17:00:17.000Z","updated_at":"2025-01-30T14:59:35.000Z","dependencies_parsed_at":"2022-08-14T11:40:32.543Z","dependency_job_id":null,"html_url":"https://github.com/mithi/hexapod-irl","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-irl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-irl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-irl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mithi%2Fhexapod-irl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mithi","download_url":"https://codeload.github.com/mithi/hexapod-irl/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251493991,"owners_count":21598208,"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":["adafruit","arduino","hexapod","javascript","johnny-five","nodejs","react","robot","robotics"],"created_at":"2024-11-11T19:34:19.135Z","updated_at":"2025-04-29T11:32:01.146Z","avatar_url":"https://github.com/mithi.png","language":"JavaScript","funding_links":["https://ko-fi.com/minimithi"],"categories":[],"sub_categories":[],"readme":"# Mithi's Hexapod IRL [![buy me coffee](https://img.shields.io/badge/Buy%20me%20-coffee!-orange.svg?logo=buy-me-a-coffee\u0026color=795548)](https://ko-fi.com/minimithi)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1670421/103467765-451a2180-4d8d-11eb-8f94-1a23201595b9.gif\" alt=\"drawing\" /\u003e\n\u003c/p\u003e\n\nThis is a \"fork\" of the original [Bare-Minimum Hexapod Robot Simulator 2](https://github.com/mithi/hexapod) that is modified to be able to control a real physical hexapod robot, among other things. Note: This uses the [hexapod-kinematics-library](https://github.com/mithi/hexapod-kinematics-library) for computations, replacing previous `src/hexapod`.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1670421/103467849-46981980-4d8e-11eb-911e-7cb63282c0c2.gif\" alt=\"drawing\" /\u003e\n\u003c/p\u003e\n\n## 🚧 Work In Progress  🚧\n\n❗❗🚜 🚧 👷 🏗️  (Underconstruction, use at your own risk! ) ❗❗🚜 🚧 👷 🏗️\n\n## Updates\n\n-   [`v0.2.0`](https://github.com/mithi/hexapod-irl/tree/socket-io-version) - Replace PubNub with [SocketIO](http://socket.io/). Based on my experiments, PubNub batches messages and isn't _\"inrealtime\"_ enough. Using SocketIO, the jankiness is significantly reduced.\n-   [`v0.1.0`](https://github.com/mithi/hexapod-irl/tree/pubnub-version) - Use [PubNub](https://www.pubnub.com/) to send commands. Janky.\n\n## How to Use (v0.0.2)\n\n1. Never built a hexapod robot before? The [mithi/hexy](https://github.com/mithi/hexy) repository is a great place to start! Includes the BOM!\n\n2. Build your hexapod robot with an [Arduino](http://arduino.cc/)-compatible / [Johnny-five](http://johnny-five.io/) compatible board. I personally used an [Adafruit Metro Mini 328](https://www.adafruit.com/product/2590). Don't forget to flash your board with the recommended standard firmata flavor (see also: [Johnny Five Wiki: Getting Started](https://github.com/rwaldron/johnny-five/wiki/Getting-Started))\n\n3. Update your servo config in [`./src/_SERVO_CONFIG.js`](./src/_SERVO_CONFIG.js). The [Johnny Five documentation, Servo API page](http://johnny-five.io/api/servo/) is your friend!\n\n4. I personally use two pwm pins of my board and one [PCA9685](https://www.adafruit.com/product/815) to drive my eighteen mg996r servos. If you do the same, make sure [you hook it up properly](https://learn.adafruit.com/16-channel-pwm-servo-driver/hooking-it-up)!\n\n5. Inspect and modify the variables in [`./src/_VAR_CONFIG.js`](./src/_VAR_CONFIG.js) as needed.\n\n6. This is how the angle of each servo is transformed [(function)](./src/_TRANSFORM.js) based on my specific physical hexapod robot configuration. Modify this to suit your needs.\n\n7. This is the bare minimum [node script](./src/_ROBOT_SERVER.js) that will talk to your Arduino and the front-end web app / user interface. Modify this to suit your needs.\n\n8. Open two terminal tabs and run the following:\n\n```\n$ npm install\n\n# on one terminal tab, this builds and serves the react app\n$ npm run prod:client\n\n# on another terminal tab, this runs the johnny-five script\n$ npm run run:server\n```\n\nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmithi%2Fhexapod-irl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmithi%2Fhexapod-irl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmithi%2Fhexapod-irl/lists"}