{"id":27696245,"url":"https://github.com/fustinoni-net/pirobotplatform","last_synced_at":"2026-02-02T06:02:34.774Z","repository":{"id":289489275,"uuid":"58653337","full_name":"fustinoni-net/PiRobotPlatform","owner":"fustinoni-net","description":"A Java library to control the PI2GO Lite robot and the CamJam EduKit #3. It's easy to extend the API to support other robots made with the Raspberry Pi.","archived":false,"fork":false,"pushed_at":"2016-11-18T16:14:30.000Z","size":867,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-25T15:08:53.046Z","etag":null,"topics":["camjam-edukit","pi2go-lite","raspberry-pi","robot-framework","robotics"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fustinoni-net.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,"zenodo":null}},"created_at":"2016-05-12T15:23:19.000Z","updated_at":"2020-03-03T18:17:17.000Z","dependencies_parsed_at":"2025-04-23T15:37:16.633Z","dependency_job_id":null,"html_url":"https://github.com/fustinoni-net/PiRobotPlatform","commit_stats":null,"previous_names":["fustinoni-net/pirobotplatform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fustinoni-net%2FPiRobotPlatform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fustinoni-net%2FPiRobotPlatform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fustinoni-net%2FPiRobotPlatform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fustinoni-net%2FPiRobotPlatform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fustinoni-net","download_url":"https://codeload.github.com/fustinoni-net/PiRobotPlatform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250840609,"owners_count":21495910,"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":["camjam-edukit","pi2go-lite","raspberry-pi","robot-framework","robotics"],"created_at":"2025-04-25T15:08:58.538Z","updated_at":"2026-02-02T06:02:29.739Z","avatar_url":"https://github.com/fustinoni-net.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PiRobotPlatform\n\n![Pi2Go-Lite Robot Kit](http://pirobotplatform.fustinoni.net/img/pi2go.jpg)\n![CamJam EduKit 3 – Robotics](http://pirobotplatform.fustinoni.net/img/cam3.jpg)\n![CamJam EduKit 3 – Robotics](http://pirobotplatform.fustinoni.net/img/controllerVideo.jpg)\n\nJava API to control: \n* Pi2Go-Lite Robot Kit ( http://pi2go.co.uk/ )\n* CamJam EduKit 3 – Robotics ( http://camjam.me/?page_id=1035 )\n* generic robots based on the Raspberry Pi ( https://www.raspberrypi.org/ ).\n\nThe library is composed by some different subprojects that logically, at least for me, divide the sources for scopes.\n\n* PiRobotPlatform: the aggregator for all other modules.\n* ExecuteFromJar: utility to run a program from inside a jar file. Used to run the ServoBlaster driver.\n* PiRobot: all the interfaces used to describe the robots components.\n* PiRobotImplementation: the implementation of all common component\n* HCSR04: build the native C library (Jni) for driving the HCSR04 ultrasound sensor.\n* Pi2Go: all the classes implementing the Pi2Go-Lite robot, plus some examples on how to use the library.\n* PiRobotRMI: interfaces and local object to command the robot remotely via RMI ( https://docs.oracle.com/javase/tutorial/rmi/ )\n* Pi2GoRMI: the Pi2Go-Lite implementation of the PiRobotRMI library plus an example on how to use it.\n* CamJamEK3: classes to command the CamJam EduKit #3 robot, plus examples\n* MoteJPiRobot: an example of how to use the library to command the Pi2Go-Lite, the CamJam EduKit 3, but also other robots, using a Nintendo Wii Remote and Nunchuk ( https://en.wikipedia.org/wiki/Wii_Remote ). Enjoy :-)\n* RobotWebControl: an example of how to use the PiRobotPlatform library to command a Pi2Go-Lite or a CamJam EduKit #3 robot using a web page on a pc, tablet, smartphone.  Enjoy :-)\n\n\nThe projects that have an executable part (examples or main class) are:\n* Pi2Go\n* Pi2GoRMI\n* CamJamEK3\n* MoteJPiRobot\n* RobotWebControl\n\nRefer to the readme file of each single projects for more specific information and remember: running the examples will make your robot move with all the possible consequences.\n\n\nThose libraries are based on:\n* Pi4J library ( http://pi4j.com/ )\n* Wiring Pi library ( http://wiringpi.com/ )\n* ServoBlaster driver ( https://github.com/richardghirst/PiBits/tree/master/ServoBlaster )\n\nThe projects are managed with Maven (https://maven.apache.org/), so it's possible to open them in many different IDEs and build them via the Maven command line program.\n\nThe aim of this library is purely educational. Don't use it for any other purpose.\n\n## Please be careful. \nRunning the library on the wrong hardware can brake your pi and or your robot. Carefully check the sources and read the instruction.\nRunning the examples will make your robot move with all the possible consequences.\n\n####  ***** Use at your own risk. *****\n\n\n## Prerequisites\n\n### Robots\nTo use this library you must have one of the supported robots based on the Raspberry Pi board or extend the library to support your own one.\nSupported robot:\n* Pi2Go-Lite ( http://www.pi2go.co.uk/ ) with a Raspberry Pi B+ (Should work with every Raspberry Pi models)\n* CamJam EduKit 3 – Robotics ( http://camjam.me/?page_id=1035 )\n\n### Operating system\nThe library was built and tested using Raspbian Jessie version May 2016, but should also works in previous version.\n\n### Java\nThe library is based on Java 8. Previous versions are not supported.\nTo test the java version you can use the command:\n\n    java -version\n\nthat will prompt something like:\n\n    java version \"1.8.0_65\"\n    Java(TM) SE Runtime Environment (build 1.8.0_65-b17)\n    Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)\n\nversion 1.8.xxx or greater is ok.\n\nIf your Java version is a previous one, or you get \n\n    -bash: java: command not found\n\nyou can install Java 8 with this procedure:\n\nFirst upgrade your OS:\n\n    sudo apt-get update \u0026\u0026 sudo apt-get upgrade\n\nThen install JDK8 for ARM:\n\n    sudo apt-get install oracle-java8-jdk\n\n\n\n### Maven\nTo build the library you need Maven. To test if is installed on your pi, execute the command:\n\n    mvn -version\n\nif you get a response like the following one Maven is installed.\n\n    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)\n    Maven home: /opt/apache-maven-3.3.9\n    Java version: 1.8.0_65, vendor: Oracle Corporation\n    Java home: /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre\n    Default locale: en_GB, platform encoding: UTF-8\n    OS name: \"linux\", version: \"4.4.9+\", arch: \"arm\", family: \"unix\"\n\nOtherwise if you get:\n\n    -bash: mvn: command not found\n\nyou will have to install it.\n\nThe most convenient way to do it on your Pi is to follow the guide at https://www.xianic.net/post/installing-maven-on-the-raspberry-pi/\n\nI summerized the procedure for you:\n\n    wget http://www.mirrorservice.org/sites/ftp.apache.org/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz\n    cd /opt\n    sudo tar -xzvf /home/pi/apache-maven-3.3.9-bin.tar.gz\n    cd /etc/profile.d/\n    sudo nano maven.sh\n    \n    export M2_HOME=/opt/apache-maven-3.3.9\n    export PATH=$PATH:$M2_HOME/bin\n\nthen you have to close and reopen the shell, or logout and log back in.\n \nCheck the installation with:\n    mvn -version\n\nyou will get:\n\n    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)\n    Maven home: /opt/apache-maven-3.3.9\n    Java version: 1.8.0, vendor: Oracle Corporation\n    Java home: /usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre\n    Default locale: en_GB, platform encoding: UTF-8\n    OS name: \"linux\", version: \"4.1.19+\", arch: \"arm\", family: \"unix\"\n\n\nFor others platform refer to the Maven project web site.\n\n\n### Git\nTo install Git on your Pi:\n\n    sudo apt-get update \u0026\u0026 sudo apt-get upgrade\n    sudo apt-get install git\n\nOn other systems refer to https://github.com or https://git-scm.com/ \n\n\n\n## Installation guide\nTo install the library on your Pi, and get something to run and test, follows this step:\n\n* execute:\n\n    git clone https://github.com/fustinoni-net/PiRobotPlatform.git\n\nThis command will create the directory  PiRobotPlatform and download inside it the main project and all sub-projects.\n\n* move into the directory: \n\n    cd PiRobotPlatform\n\n* edit the pom.xml file (use your favorite editor or nano): \n\n    nano pom.xml \n\n* In the pom.xml customize the following part with your own one. Also if you run the build locally you have to set the right parameter here or the project will not build.\n\n        \u003c!-- DEFAULT RASPBERRY PI PROPERTIES --\u003e\n        \u003cpi.host\u003eraspi-pi2go.homenet.telecomitalia.it\u003c/pi.host\u003e\n        \u003cpi.port\u003e22\u003c/pi.port\u003e\n        \u003cpi.user\u003epi\u003c/pi.user\u003e\n        \u003cpi.password\u003eraspberry\u003c/pi.password\u003e\n\n* save and exit from the editor :-)\n\n* execute Maven:\n\n    mvn install\n\nRunning Maven for the first time will take a while. Maven will download, in a .m2 directory in your user home, all the necessary dependencies for itself and for the projects too. Don't be scared, let it run and build all the projects.\n\nAfter some minutes the process will stop and you will get something like this (plus many more line before):\n\n```\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Summary:\n[INFO]\n[INFO] PiRobotPlatform .................................... SUCCESS [  6.929 s]\n[INFO] ExecuteFromJar ..................................... SUCCESS [ 36.223 s]\n[INFO] PiRobot ............................................ SUCCESS [ 31.716 s]\n[INFO] HCSR04 ............................................. SUCCESS [01:57 min]\n[INFO] PiRobotImpl ........................................ SUCCESS [ 33.358 s]\n[INFO] Pi2Go .............................................. SUCCESS [ 40.817 s]\n[INFO] PiRobotRMI ......................................... SUCCESS [  7.725 s]\n[INFO] Pi2GoRMI ........................................... SUCCESS [ 22.335 s]\n[INFO] MoteJPiRobot ....................................... SUCCESS [ 50.163 s]\n[INFO] CamJamEK3 .......................................... SUCCESS [ 17.780 s]\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 06:10 min\n[INFO] Finished at: 2016-06-02T06:53:20+00:00\n[INFO] Final Memory: 17M/46M\n[INFO] ------------------------------------------------------------------------\n```\n\nIf all success you are done. Otherwise sorry :-( \n\n## Run the projects\nTo run the projects from their jar files, with all the dependencies inside, go to the subproject dir and execute the commnad: \n\n    mvn antrun:run\n\nYou can execute this Maven plug-in on the Pi itself, but also from a remote computer. In this case the project will be executed on the Pi via SSH.\nAfter having run the project the first time from Maven, you will find a new directory on the Pi named \"artifacts\" containing the executable jar file.\nYou can run those jar file on the Pi with the command:\n    \n    sudo java -jar file.jar\n\nIn the pom.xml file of each subprograms,  you will find the default executable class declared like\n\n    \u003cpi.main.class\u003eexamples.LedsExample\u003c/pi.main.class\u003e (from Pi2Go project).\n\nYou can change it and and then rebuild the subproject with\n    \n    mvn install \n\nand then execute it with \n\n    mvn antrun:run \n\nor just execute the class from the jars in the \"artifacts\" directory with the command\n\n    sudo java -cp file.jar class\n\nEach project readme file provide more specific information on how to run the project itself or the provided examples.\n\n\n## Debug the projects\nTo debug the projects use the command\n\n    mvn antrun:run -P debug-server\n\nthat will use the debug-server maven profile. Then connect the remote debug of your IDE via dt_socket to your Raspeberry Pi on the port 8765.\n\n\n## Terms and conditions:\n\nThis software is provided as is. No responsibility of any kind is taken by the author.\nAlthough the author has tried all the softwares on his computers he does not guarantee that they work on your environment and that they are safe for you to use.\n\n*** Use at your own risk!! ***\n\n### All the trademarks are properties of their owner.\nThis author is not related in any way to any entity (corporation, person, brand, trademark, …) mentioned in this page.\n\n## Many thanks for their work to:\nAll the people that developed the projects quoted in this page. I learned a lot from their work and also get many part and idea.\nExpecially for the Maven pom files I have to thank the people of the Pi4J projects.\nI hope I have respected all the licenses terms and conditions. Otherwise, let me know, and I will comply with their requirements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffustinoni-net%2Fpirobotplatform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffustinoni-net%2Fpirobotplatform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffustinoni-net%2Fpirobotplatform/lists"}