{"id":22876847,"url":"https://github.com/jeancollas/raspicop","last_synced_at":"2025-08-01T01:03:33.145Z","repository":{"id":66993804,"uuid":"45348699","full_name":"JeanCollas/Raspicop","owner":"JeanCollas","description":"Implementation of a C++ Raspberry quadricopter","archived":false,"fork":false,"pushed_at":"2015-11-02T15:05:38.000Z","size":564,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T19:47:33.795Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/JeanCollas.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}},"created_at":"2015-11-01T16:47:57.000Z","updated_at":"2015-11-01T17:14:51.000Z","dependencies_parsed_at":"2023-03-11T00:31:21.391Z","dependency_job_id":null,"html_url":"https://github.com/JeanCollas/Raspicop","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/JeanCollas%2FRaspicop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FRaspicop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FRaspicop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FRaspicop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeanCollas","download_url":"https://codeload.github.com/JeanCollas/Raspicop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246473461,"owners_count":20783285,"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":[],"created_at":"2024-12-13T15:28:00.714Z","updated_at":"2025-03-31T13:29:16.912Z","avatar_url":"https://github.com/JeanCollas.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspicop\nImplementation of a C++ Raspberry quadricopter\n\nIt is 'another' Picopter project, which still needs a lot of work to compete some other more advanced projects.\nThis project has been mainly done for fun, and started from scratch for educational purposes (Github, Raspberry, C++, sensors, ...). \nIt is composed of several modules, and is not finished yet, the application framework is done but the pilot is missing :)\n\nI have started this repository to share my -very high- number of issues faced while implementing, hope this will help some people, and probably me in the future. I spent quite some hours on making everything work well, especially the 3D thing.\nIt aims at being improved. \n\n\nMore to come!\n\n\\o/ My first Github repository filled!\n\n# History\nI started this project by buying a Raspberry Pi 2, some sensors, ESC and motors. \nMore details to come...\n\n# What this code does\n\nFor the moment it is limited to the MPU control, some console interaction over SSH, some display console and 3D via GTK over SSH, that will be extended to radio-communication.\nThe control of ESCs will be implemented using the Servoblaster library of richardghirst.\n\n# Howto\n\n    make\n    sudo ./Raspicop 2\u003e errorOutput\n\n# Hardware\n\n## Yet handled\n\n    Raspberry Pi 2\n    Wifi dongle\n    MPU-6050 (Accelerometer, Gyroscope)\n    HC-SR04 (Distance sensor)\n    \n## To come\n\n    ESCs (half way)\n    GY-264 HMC5883L (Compass)\n    RFM12B (radio transmitters)\n    or HC-12 SI4463 (wireless serial port)\n    3G USB key (if ok with power consumption) + GPS for remote flights\n    HC-SR501 (Infrared sensor)\n    Camera + Infrared camera\n    Battery checker\n    \n    Some Arduino delegation is useful\n    \n    \n# Software\n    Raspbian Jessie\n    bcm2835 library\n    gtkmm\n    samba (to edit under windows)\n    \n    Windows + Putty + XLaunch\n    \n## To come\n    a way to work I2C in user land (currently sudo)\n    Servoblaster\n    \n\n# Content\n\n## Main files and config\n    config.h    // Hadware and loop config\n    signals.h    \n    worker.h    // Async worker\n    main.cpp    // Main file\n    main.h     \n    Makefile    \n\n## MPU6050 module\n    helper_3dmath.h             // Original 3DMath helper\n    I2Cdev.h                    // I2Cdev lib from jrowberg\n    MPU6050_6Axis_MotionApps20.h // from jrowberg\n    MPU6050.cpp                 // from jrowberg\n    MPU6050.h                   // modified MPU6050 object\n    MPU6050_Output.cpp          // MPU6050 object extension\n    MPU6050_Output.h            // MPU6050 output object\n\n\n## Console interaction and display modules\n    inputs.h            // IO helpers functions\n    helper_string.h     // string helper\n    keyboard.cpp        // keyboard console module\n    keyboard.h          // keyboard console module\n    display.h           // console display module\n\n## 3D Display\n    geometry.h          // Objects definition\n    copter3d.h          // 3D copter component\n    window3d.h          // Window used to display the 3D copter\n\n\n# Specific issues encontered\n\n## Username/password\nFirst problem when starting the Pi: what is the default username/password?? Ok, after a little search it is pi/raspberry\nThen how to set an \"easy\" password because we don't care about security: password has to be set via sudo: sudo su; passwd pi;\n\n## Issue with the Wifi configuration, net access over wifi when the LAN is connected\n    sudo apt-get remove ifplugd\n    sudo route del default\n    sudo route add default gw 192.168.1.1 # (wifi router IP)\n\n## To find the Pi IP if assigned with dynamic DHCP sous windows (cmd), quick check all IPs of subnet:\n\n    FOR /L %I IN (1,1,254) DO @echo %I \u0026 ping.exe -w 10 -n 1 192.168.1.%I | FIND /i \"TTL\"\n\n## No X for sudo ssh applications\n\nWhen running a GTK application over ssh, if the app is ran under sudo, it fails. \nSolution:\n    Run script enableSudoDisplay.sh\n\nWhat does it do: \n    xauth list\n    sudo xauth add $\n    where $ is the line corresponding to the X window.\n\n## Setup Samba to edit the project via windows (quite easy)\n\n    sudo apt-get install samba\n    sudo smbpasswd -a pi\n    sudo nano /etc/samba/smb.conf\n\nthen add something like this (Prog will be the name of the shared folder)\n\n    [Prog]\n    path = /home/pi/projects\n    valid users = pi\n    writable = yes\n\nUnder windows 10:\n\n    Explorer: \\\\192.168.1.11 (any pi IP)\n    click on a folder, in the ribbon: \"rapid access\" \u003e Map to keep it as a network drive.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancollas%2Fraspicop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeancollas%2Fraspicop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancollas%2Fraspicop/lists"}