No description
  • C 90.8%
  • Makefile 7.9%
  • CSS 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-27 14:05:31 +02:00
.idea made make file with help, build, requirements, deploy and clean 2026-07-27 13:23:02 +02:00
assets upload banner 2026-07-16 13:11:11 +02:00
.gitignore commit before merge 2026-07-27 13:43:28 +02:00
demo.mkv demo video 2026-07-16 12:55:16 +02:00
LICENSE Initial commit 2026-06-09 14:40:24 +02:00
Makefile made make file with help, build, requirements, deploy and clean 2026-07-27 13:23:02 +02:00
README.md updated README.md with new Makefile info 2026-07-27 14:05:31 +02:00
rover.c The server has a GUI now, just a live log of what is being sent. and connection info. 2026-06-21 14:42:19 +02:00
server.c the server GUI can scroll. the text is no longer editable. 2026-06-22 18:09:52 +02:00
server.css the server GUI can scroll. the text is no longer editable. 2026-06-22 18:09:52 +02:00

! Note

This project is only supported on linux, so if you are on Windows you might not get everything to work.

EfficientRover

If you have a rover on a far away planet you don't want to waste any bits sending commands. These scripts make sending routes more efficient (assuming going forward is used most).

Workings

The server script accepts the connection from the rover. When it receives "ping" it sends a randomly generated string of 1, 01, 001 and 000. with 50% 1 for forward, 25% 01 for backwards and 12.5% 001 and 000 for left and right. the efficiency comes from the fact that the most used (forward) is only 1 character, and lesser used actions are more. 3blue1brown explains it very well (https://youtu.be/l6DKRf-fAAM?si=0wl0j-8jQxhWdPC4&t=208). That video is also where I got the idea for this project.

DEMO

Usage

  1. make deploy should compile and start everything. if not start the server then the rover.
  2. Press the ping button to get the instructions and move the rover.
  3. Press the reset button to re-center the rover.

Setup with make

Everything should work with make:

make requirements
make deploy

Manual setup

If make does not work you can run:

Requirements:

sudo apt install build-essential pkg-config libgtk-3-dev   

Compilation:

compile with gtk:

gcc `pkg-config --cflags gtk+-3.0` -o rover rover.c `pkg-config --libs gtk+-3.0` && gcc `pkg-config --cflags gtk+-3.0` server.c -o server `pkg-config --libs gtk+-3.0`

AI usage

NONE, no AI was used in this project