{"id":25578989,"url":"https://github.com/bradleynull/patrolbot","last_synced_at":"2026-05-03T17:32:36.258Z","repository":{"id":40954227,"uuid":"143542002","full_name":"bradleynull/patrolbot","owner":"bradleynull","description":"Creating a Raspberry Pi controlled two wheeled robot to patrol the house.","archived":false,"fork":false,"pushed_at":"2023-02-16T01:30:08.000Z","size":92,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-25T13:52:48.866Z","etag":null,"topics":["opencv","opencv-python","pitft","pygame","python3","raspberry-pi","robotics","rpi-camera","ultrasonic-sensor"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradleynull.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,"governance":null}},"created_at":"2018-08-04T15:46:54.000Z","updated_at":"2022-03-20T16:03:26.000Z","dependencies_parsed_at":"2023-01-25T01:45:12.146Z","dependency_job_id":"a4921b24-6c8c-4dc7-b13d-2d3244a9f21f","html_url":"https://github.com/bradleynull/patrolbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bradleynull/patrolbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleynull%2Fpatrolbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleynull%2Fpatrolbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleynull%2Fpatrolbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleynull%2Fpatrolbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradleynull","download_url":"https://codeload.github.com/bradleynull/patrolbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleynull%2Fpatrolbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32578578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["opencv","opencv-python","pitft","pygame","python3","raspberry-pi","robotics","rpi-camera","ultrasonic-sensor"],"created_at":"2025-02-21T03:45:16.573Z","updated_at":"2026-05-03T17:32:36.225Z","avatar_url":"https://github.com/bradleynull.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PatrolBot\nCreating a Raspberry Pi controlled two wheeled robot to patrol the house.\n\n![Patrolbot breadboard setup](docs/media/breadboard_setup.jpg)\n\nThe current setup consists of:\n\n* [Raspberry Pi 3 Model B+](https://www.arrow.com/en/products/raspberrypi3b/raspberry-pi-foundation)\n* [Raspberry Pi Camera Module](https://www.amazon.com/Raspberry-Pi-Camera-Module-Megapixel/dp/B01ER2SKFS)\n* [Adafruit 2.4'' PiTFT](https://learn.adafruit.com/adafruit-2-4-pitft-hat-with-resistive-touchscreen-mini-kit?view=all)\n* [Adafruit TB6612 Motor Driver](https://learn.adafruit.com/adafruit-tb6612-h-bridge-dc-stepper-motor-driver-breakout/overview)\n* [Kuman RPi GPIO Breakout Expansion Board and Ribbon Cable](https://www.amazon.com/gp/product/B0761NYF6Y)\n* [Robotic Platform](https://www.amazon.com/Adafruit-3244-3-Layer-Round-Chassis/dp/B01N0ZWLFG/)\n\nCurrently, to drive the PiTFT display the software needs to be run as root in\norder to write directly to the frame buffer at `/dev/fb1`:\n\n```bash\n$ sudo su\n# . ./venv/bin/activate\n(venv) # python ./main.py\n```\n\n## Prerequisites\n\nThis project requires [OpenCV 3.4](https://github.com/opencv/opencv) \nand the [contribution libraries](https://github.com/opencv/opencv_contrib) or \nhigher compiled for Python3. The `scripts/build_opencv.sh` is provided to \nhelp build OpenCV specifically for this project.\n\nTo install the pip requirements:\n\n```bash\n$ virtualenv ./venv -p python3\n...\n$ . ./venv/bin/activate\n(venv) $ pip install -r ./requirements.txt\n```\n\nNow you'll need to copy the `cv2.so` from OpenCV's library to the virtualenv\n\n```bash\n$ cp /path/to/opencv/lib/cv2.cpython-35m-arm-linux-gnueabihf.so \\\n./venv/lib/python3.4/site-packages/cv2.so\n```\n\n## Unit Tests\n\nThis project uses the Python `unittest` library. To run a single test:\n\n```bash\n(venv) $ python -m unittest tests.name_of_unit_tests.TestFixture.test_name\n```\n\nwhere `name_of_unit_tests` matches a file in the `tests/` directory, \n`TestFixture` matches the class name in that file, and `test_name` matches\nthe member function of `TestFixture` to run.\n\nTo run the entire suite of unit tests:\n\n```bash\n(venv) $ python -m unittest discover -s tests -p \"*_unit_tests.py\"\n```\n\n## Project Organization\n\nThe `patrolbot` library consists of:\n\n* `flask_app/` - Contains an implementation of web UI using Flask\n* `gui/` - Contains the onboard GUI implementation using PyGame\n* `sensors/camera` - Interface to the Raspberry Pi camera using OpenCV\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleynull%2Fpatrolbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradleynull%2Fpatrolbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleynull%2Fpatrolbot/lists"}