{"id":14977957,"url":"https://github.com/joeyorlando/self_driving_car","last_synced_at":"2025-10-28T07:30:38.373Z","repository":{"id":143743515,"uuid":"86102746","full_name":"joeyorlando/self_driving_car","owner":"joeyorlando","description":"Neural network/Haar cascade trained self-driving RC car using Raspberry Pi","archived":false,"fork":false,"pushed_at":"2019-04-07T15:04:23.000Z","size":1735,"stargazers_count":12,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T12:44:09.583Z","etag":null,"topics":["haar-cascade","javascript","machine-learning","neural-network","opencv","python","python3","raspberry-pi","raspberry-pi-camera","raspberry-pi-car","scikit-learn","scikitlearn-machine-learning","unsupervised-learning"],"latest_commit_sha":null,"homepage":"","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/joeyorlando.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":"2017-03-24T19:14:14.000Z","updated_at":"2023-11-26T14:54:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"04f7a69d-9f70-44c4-8101-60ba06d2fdd1","html_url":"https://github.com/joeyorlando/self_driving_car","commit_stats":{"total_commits":83,"total_committers":1,"mean_commits":83.0,"dds":0.0,"last_synced_commit":"9c1b93c054493f16f5e988ee674dea455e26f5e5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyorlando%2Fself_driving_car","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyorlando%2Fself_driving_car/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyorlando%2Fself_driving_car/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyorlando%2Fself_driving_car/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joeyorlando","download_url":"https://codeload.github.com/joeyorlando/self_driving_car/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238608384,"owners_count":19500370,"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":["haar-cascade","javascript","machine-learning","neural-network","opencv","python","python3","raspberry-pi","raspberry-pi-camera","raspberry-pi-car","scikit-learn","scikitlearn-machine-learning","unsupervised-learning"],"created_at":"2024-09-24T13:56:36.201Z","updated_at":"2025-10-28T07:30:37.733Z","avatar_url":"https://github.com/joeyorlando.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Self Driving RC Car\nThis repository houses all of the software/instructions, as well as schematics, that will allow you to turn an ordinary RC car into a \"smart\" self-driving car 🤓. The car is capable of autonomously detecting the bounds of the road\n\nAll of the software in this project (except for a smidgeon of HTML/CSS/JS) is Python 3.6.0.\n\n## Running the web server\n**Note**: because this uses the `picamera` module, this will likely only run on the rasperry pi.\n```\nmake run-web-server\n```\n\n##Things you'll need\nBelow is the list of parts that I used to make this project happen.\n#### Hardware/Electrical\n- Raspberry Pi\n- Raspberry Pi camera ([case](https://www.amazon.ca/gp/product/B00IJZK66G/ref=oh_aui_detailpage_o01_s00?ie=UTF8\u0026psc=1) is recommended)\n- Lots of jumper cables (male to male \u0026 male to female)\n- Half breadboard [L293D](http://www.robotshop.com/ca/en/600-ma-dual-h-bridge-motor-driver-dc-steppers-l293d.html) H-Bridge Motor Driver\n- [HC-SR04](http://www.robotshop.com/ca/en/hc-sr04-ultrasonic-range-finder.html) Ultrasonic Range Finder\n- Resistors: 330Ω and 470Ω\n- RC Car - I used one like [this](https://www.amazon.ca/gp/product/B00A9NJHS4/ref=oh_aui_detailpage_o00_s00?ie=UTF8\u0026psc=1)\n\n**Note on the Raspberry Pi**: I used the Model 2B but the 3 has since come out, either or should work for this project. I would recommend the 3 as you don't need to worry about purchasing an extra WiFi dongle. A kit like [this](https://www.amazon.ca/CanaKit-Raspberry-Complete-Starter-Kit/dp/B01CCF6V3A/ref=sr_1_3?s=electronics\u0026ie=UTF8\u0026qid=1491049831\u0026sr=1-3\u0026keywords=raspberry+pi+2+model+b) is probably best as it comes with a case, preinstalled SD, etc. For this walkthrough I'll make the assumption that you already have a functioning, WiFi connected Pi.\n\n**Note on the RC Car**: If you're crafty you really don't need to purchase an RC car. Essentially you'll be \"tearing the guts\" out of the car down to just the DC motor that controls forwards/reverse, servo that controls left/right, and the chassis. You could build a car with a kit like [this](https://www.amazon.ca/JOSYOO-4-wheel-Chassis-Encoder-Arduino/dp/B0116UY41I/ref=sr_1_1?s=electronics\u0026ie=UTF8\u0026qid=1491050965\u0026sr=1-1\u0026keywords=robot+car) for cheaper but I decided not to focus on that (at least for now).\n\n#### Tools\n- Electrical tape\n- A small screwdriver set like [this](https://www.amazon.ca/TEKTON-2985-Jewelers-Precision-Screwdriver/dp/B000NY6Q8S/ref=sr_1_1?ie=UTF8\u0026qid=1491053451\u0026sr=8-1\u0026keywords=small+screwdriver+set) comes in handy\n- Soldering Iron Kit (optional)\n- Wire-stripper (or if you don't have this a box-cutter/knife will do the trick)\n\n**Note on soldering**: soldering isn't *really* necessary for this project, although it's a temporary solution. If you're a noob at soldering like me, you can just strip your wires back, inter-twine the cooper and throw some electrical tape on it.\n\n## Wiring things up\n![Schematic](/schematics/schematic.png?raw=true)\n**Note**: [Fritzing](http://fritzing.org/download/) schematic can be found [here](/schematics/self_driving_car.fzz).\n\n## Testing out our connections\n...test scripts to make sure everything works fine\n\n## To-do list\n- [x] Get materials\n- [x] Control rear DC motor from Pi\n- [ ] Control front DC motor from Pi\n- [ ] Control HC-SR04 from Pi\n- [x] Create schematic\n- [ ] Stream video to Mac from Pi camera\n- [ ] Connect to web server running on Pi\n- [ ] Drive car from Mac\n- [ ] Collect data\n...\n\n## References\n- Connecting an [HC-SR04](https://tutorials-raspberrypi.com/raspberry-pi-ultrasonic-sensor-hc-sr04/)\n- Connecting an [L293D](http://www.rhydolabz.com/wiki/?p=11288)\n- Connecting an [SG-5010](https://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor/hardware)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeyorlando%2Fself_driving_car","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoeyorlando%2Fself_driving_car","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeyorlando%2Fself_driving_car/lists"}