{"id":20669085,"url":"https://github.com/havrak/uav-project","last_synced_at":"2025-04-13T15:51:42.030Z","repository":{"id":109997514,"uuid":"403690088","full_name":"havrak/UAV-project","owner":"havrak","description":"Building a UAV as part of my final year on high school, now my hobby project","archived":false,"fork":false,"pushed_at":"2023-11-30T14:52:35.000Z","size":153308,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T06:44:57.740Z","etag":null,"topics":["camera","cpp","drone","raspberry-pi","rpi0","uav"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/havrak.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-06T16:27:15.000Z","updated_at":"2025-01-05T01:35:57.000Z","dependencies_parsed_at":"2023-10-22T20:25:06.302Z","dependency_job_id":"8c28093d-331a-4d24-8180-5dc079c7cafe","html_url":"https://github.com/havrak/UAV-project","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/havrak%2FUAV-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/havrak%2FUAV-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/havrak%2FUAV-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/havrak%2FUAV-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/havrak","download_url":"https://codeload.github.com/havrak/UAV-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741146,"owners_count":21154249,"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":["camera","cpp","drone","raspberry-pi","rpi0","uav"],"created_at":"2024-11-16T20:12:53.805Z","updated_at":"2025-04-13T15:51:41.991Z","avatar_url":"https://github.com/havrak.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UAV project\n\nThis repository contains all resource that comprised my final thesis for my senior year in high school.\nMain purpose was to create UAV platform based on Raspberry Pi.\n\nCodebase is this project is rather bad by my current standards and is heavily impacted by the fact it was essentially my first hardware related project.\nNot to mention my experience with C++ was rather limited at the time.\n\nDesktop client is written in C++ using Gtk3 and is used to control the drone and display telemetry data.\nUI wise it's really bad, and code itself doesn't land much in a way for easy rewrite.\n\nDrone side might fare a bit better, but it's still not great.\nUsage of threads is rather questionable and OOP design patterns were a hip new thing for me at the time and not something I was able to use properly.\n\nThus some parts of codebase are overengineered and some lack any flexibility and don't deserve much other than deletion.\n\nIn my 3rd semester of university I've made addition to this project in a shape of proper custom PCB to house drone electronics.\n\nI might rewrite this project in the future, but time is a limited resource and school+work take priority.\nThough if rewrite happens, it will be wholly different project.\n* camera streaming with gstreamer has never worked as well as I wanted it to\n* using Wi-Fi for communication was never ideal (drone was acting as AP)\n* codebase and communication protocol needs to be much more open to allow different configurations of hardware\n* desktop client needs to be rewritten from scratch and preferably in Qt\n* way more robust compilation and deployment process is needed (Kconfig, hierarchical Makefiles, etc.)\n\n\n# Libraries and toolkits\n* [WT901B library](https://github.com/havrak/Raspberry-JY901-Serial-I2C)\n* [INA226 library](https://github.com/havrak/raspberry-pi-ina226)\n* [PCA9685 library](https://github.com/havrak/PCA9685-rpi)\n* [inih (INI Not Invented Here)](https://github.com/benhoyt/inih)\n* Gtk3\n* crp, fmt\n* WiringPi\n\n# Photos\n\n### UAV Photos\n\n![whole plane](./photos/whole_plane.jpg)\n\n![body detail](./photos/body.jpg)\n\n### Board\n\n![board](./photos/board.png)\n\n\n# Credits\n* textures for desktop client originate from [marek-cel/QFlightinstruments](https://github.com/marek-cel/QFlightinstruments)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhavrak%2Fuav-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhavrak%2Fuav-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhavrak%2Fuav-project/lists"}