{"id":26277799,"url":"https://github.com/kevinmcaleer/smars","last_synced_at":"2025-05-06T23:10:40.403Z","repository":{"id":47354813,"uuid":"148444205","full_name":"kevinmcaleer/smars","owner":"kevinmcaleer","description":"Screwless Modular Assemblable Robotic System ","archived":false,"fork":false,"pushed_at":"2020-10-19T08:25:32.000Z","size":16225,"stargazers_count":32,"open_issues_count":4,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-05T15:03:52.600Z","etag":null,"topics":["arduino","python","raspberry-pi","raspberry-pi-zero-wh","robot","robotics","smars"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/kevinmcaleer.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":"SECURITY.md","support":null}},"created_at":"2018-09-12T08:03:37.000Z","updated_at":"2025-03-17T19:11:47.000Z","dependencies_parsed_at":"2022-08-21T22:21:35.823Z","dependency_job_id":null,"html_url":"https://github.com/kevinmcaleer/smars","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmcaleer%2Fsmars","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmcaleer%2Fsmars/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmcaleer%2Fsmars/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmcaleer%2Fsmars/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinmcaleer","download_url":"https://codeload.github.com/kevinmcaleer/smars/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252782783,"owners_count":21803408,"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":["arduino","python","raspberry-pi","raspberry-pi-zero-wh","robot","robotics","smars"],"created_at":"2025-03-14T12:30:12.657Z","updated_at":"2025-05-06T23:10:40.378Z","avatar_url":"https://github.com/kevinmcaleer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SMARS\n\nScrewless Modular Assemblable Robotic System\n\n![Build Status](https://travis-ci.com/kevinmcaleer/smars.svg)\n\n## SMARSfan.com\n\nVisit www.smarsfan.com for more information about this project. The site includes build instructions, videos, an interview with the designer and much more.\n\n## SMARSLab \u0026 SMARS_Library\n\nI've broken the SMARS code into two parts:\n\nSMARS_Library is a component that can now be installed via\n\n```console\npip install smars-library\n```\n\n or visiting \u003chttps://pypi.org/project/smars-library/\u003e\n\nSMARSLab is a web-based application for controlling your SMARS robots. The aim it that this will support both bluetooth connected wheeled SMARS as well as ones running locally on a raspberry pi zero. It currently supports QUAD SMARS and there is a test `butil.py` app for testing bluetooth connectivity.\nVisit \u003chttps://www.github.com/kevinmcaleer/smarslab\u003e for more information.\n\n## About this library\n\nThis library will enable you to get the quad robot walking and detecting its environment.\n\n## Python Library now pulls from pip\n\nThere is now a SMARS Python library available via pip.\n\n***Make sure you follow the instructions below to ensure the virtual environment is setup correctly and everything should work perfectly.***\n\n## Setup a virtual environment\n\nThe best way to ensure all the right prerequisites are installed and the supported version of python is installed is by setting up a virtual environment for python.\n\nTo Install virtualenv:\n\n* log on to your raspberry pi\n* install virtualenv:\n\n```console\nsudo apt-get install virtualenv\n```\n\n* create a new virtual python environment:\n\n```console\nvirtualenv -p python3 venv\n```\n\n* activate the new python environment:\n\n```console\nsource venv/bin/activate\n```\n\n* install the pre-requisites:\n\n```console\npip install -r requirements.txt\n```\n\n* to deactivate the environment once you have finished, type\n\n```console\ndeactivate\n```\n\n## Files\n\n```.\n├── Documentation                   - All the Documents\n│   └── SMARS Build Instructions\n│       └── Build instructions.pdf  - PDF version of the build instructions\n├── limb_setup.py                   - script for helping setup limbs on a QUAD SMARS\n├── pinouts.md                      - Describes the pinouts for the PCA9685\n├── README.md                       - this file\n├── requirements.txt                - used by pip to install the prerequisites\n├── S-Code.md                       - a code similar to G-Code for sending commands to a SMARS, work in progress\n├── S-CodeParse.py                  - a parser for S-Code\n├── Scratch 1.4\n│   └── SMARSScratchDemo.sb         - an example Scratch 1.4 file for communicating with SMARS\n├── ScratchListener.py              - the lister app for communicating with SMARS and Scratch\n├── setup.sh                        - a shell script for setting up the code on a raspberry pi\n├── SMARS_ultrasonic_demo\n│   └── SMARS_ultrasonic_demo.ino   - a sample Arduino script for using the ultrasonic sensor\n├── STL_Files                       - some STL files for modified tracks\n│   ├── Track 18mm.png\n│   ├── Track 18mm.stl\n│   ├── Track 20.5mm 16h.stl\n│   ├── Track 20.5mm.stl\n│   ├── Track 205mm.stl\n│   ├── Track 210mm.stl\n│   └── Track.png\n└── test                            - the test suite\n    ├── test.md                     - test suite documentation\n    ├── test.py                     - a simple test app for checking your SMARS setup\n    └── test_suite.py               - the test suite used by Travis-CI to confirm build quality\n```\n\n## Scratch 1.4 Code\n\nThe Library now includes a sample Scratch 1.4 script that will enable you to control your SMARS Quad robot from the scratch environment. Please note you will need to enable the remote sensor control for this to work, by right clicking on the sensor and clicking on 'enable remote sensing'.\n\nThe Scratch demo script needs to communicate with the Python 'ScratchListener.py' code, and you will need to know the IP address of the computer running Scratch 1.4.\n\nNote only Scratch 1.4 has the 'enable remote sensing' option available, Scratch 2.0 \u0026 Scratch 3.0 do not allow this, however you can still download and use Scratch 1.4 from the Scratch website: \u003chttp://scratch.mit.edu\u003e\n\nLink to thingiverse original model:\n\u003chttps://www.thingiverse.com/thing:2662828\u003e\n\nLink to Quad version\n\u003chttps://www.thingiverse.com/thing:2755973\u003e\n\n## Overview and Background\n\nThis robot is really easy and cheap to 3d print, build and program. It can be assembled without screws or soldering and it's modular so it can be adapted for different purposes. I'm Swiss, so I don't know American scholastic system but I would use SMARS in last year of middle school, high school or universities/ colleges. There is more \"open electronics\" compared to a Lego NXT or similar, so students need a few knowledges about security, electrical laws and so on. It can be use to improve software development skills, CAD skills or electronics skills, students can design their own modules and customize their SMARS.\n\n### Programming SMARS\n\nYou can use most common small hardware platforms as the brains inside SMARS, the Arduino platform (and compatible) was used in the original design as its cheap, commonly available, and the tools for programming it are easy to use. For the quad version of the robot a Raspberry Pi Zero was used. The language commonly used on the Pi (and where it gets it name from) is Python. A library module has been written for both Arduino and Python to help you get started.\n\n### Getting the Arduino IDE\n\nVisit \u003chttp://www.arduino.cc\u003e to download the latest Arduino Integrated Development Environment (IDE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinmcaleer%2Fsmars","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinmcaleer%2Fsmars","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinmcaleer%2Fsmars/lists"}