{"id":18712761,"url":"https://github.com/apexskier/slider","last_synced_at":"2025-06-19T08:38:25.708Z","repository":{"id":150780121,"uuid":"58103104","full_name":"apexskier/slider","owner":"apexskier","description":"Arduino based mechanical slider.","archived":false,"fork":false,"pushed_at":"2016-11-16T16:52:51.000Z","size":1823,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-28T08:40:29.273Z","etag":null,"topics":["3d-printing","arduino","camera-slider","iot"],"latest_commit_sha":null,"homepage":null,"language":"OpenSCAD","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/apexskier.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":"2016-05-05T03:59:50.000Z","updated_at":"2022-12-06T01:08:33.000Z","dependencies_parsed_at":"2023-04-10T02:03:38.826Z","dependency_job_id":null,"html_url":"https://github.com/apexskier/slider","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/apexskier%2Fslider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexskier%2Fslider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexskier%2Fslider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexskier%2Fslider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apexskier","download_url":"https://codeload.github.com/apexskier/slider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239576797,"owners_count":19662113,"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":["3d-printing","arduino","camera-slider","iot"],"created_at":"2024-11-07T12:43:40.803Z","updated_at":"2025-02-19T00:52:10.598Z","avatar_url":"https://github.com/apexskier.png","language":"OpenSCAD","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slider\n\nArduino driven mechanical video slider.\n\n[Parts list](https://docs.google.com/a/camlittle.com/spreadsheets/d/1xlj7D98955wYuXj9ept1h3pb_NClaukpYvvVbXTrUsw/edit?usp=sharing)\n\n## Finished project\n\n![Control box and motor housing](images/control_box.jpg)\n\n![Timing belt pully and 3D printed mount](images/printed_pully.jpg)\n\n## Features\n\n- Auto calibration\n- Simple oscillation between each end\n- Single direction movement towards the end\n- Speed control\n\n## Code\n\nThe code is controlled by a basic state machine, paired with global application\nstate and event triggers. When powered on, the system enters the\nCalibratingFindLeft state.\n\nEach button produces buttonDown and buttonUp events as they are pressed and\nreleased.\n\nThese are the main state transitions:\n\n```\nStopped\n  - main buttonUp -\u003e OscillatingLeft\n  - left buttonUp -\u003e MoveLeft\n  - right buttonUp -\u003e MoveRight\nOscillatingLeft\n  - position at left side -\u003e OscillatingRight\n  - main buttonDown -\u003e Stopped\nOscillatingRight\n  - position at right side -\u003e OscillatingLeft\n  - main buttonDown -\u003e Stopped\nMoveLeft\n  - position at left side -\u003e Stopped\nMoveRight\n  - position at right side -\u003e Stopped\nCalibratingFindLeft\n  - left buttonDown -\u003e CalibratingFindRight\n    (record \"0\" point)\nCalibratingFindRight\n  - right buttonDown -\u003e CalibratingReset\n    (record slider length)\nCalibratingReset\n  - position past center -\u003e Stopped\n```\n\nIn most cases, when in motion buttonDown events on the direction of motion's\nswitch automatically adjust the internal calibration. There are a few other\nevent handling checks to safeguard against unexpected behavior.\n\n## Resources\n\nThese two DIY slider designs contributed heavily towards ours.\n\n- http://s.co.tt/2015/04/24/diy-motion-control-camera-slider/\n- https://learn.adafruit.com/bluetooth-motorized-camera-slider\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexskier%2Fslider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapexskier%2Fslider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexskier%2Fslider/lists"}