Tuna Gül

All projects

AI

Hackathons

Robotics

Probot Studio

FIRST robotics

Other robots

Systems

Illustration of the method with simulated readings: six Hall sensors on a ring, a distance circle around each, the pairwise intersections nearest the magnet's path, and their average marking the magnet and the shaft angle.

Hall-sensor absolute encoder Archive

An attempt at a cheap absolute encoder for our FRC robot. A ring of Hall sensors around a magnet, and the circle geometry to find the magnet, worked out by hand in C.

Building cross-section with four elevator shafts, the cars at their floors and passengers queued at the landings, fed by a small floor-versus-time trace of the last minute, from a small dispatch simulation.

Elevator dispatch simulator Won

A building and elevator simulator in Rust, written in a hackathon week with one teammate, with cascaded PID control for every car. Our team took 1st place at Boğaziçi AI UpForAChallenge.

Two-camera distance to targets Archive

Distance to the reflective FRC targets from two cheap cameras, without a full stereo calibration. Blobs are paired across the two frames, and distance is fitted against 1/disparity from real measurements.

Illustration of a streaming JSON decoder: a small nested list drawn as an indented tree on a white card, its deeper part boxed in amber as a lazy generator below the max_depth cut, leaving the card through a port beside the root bracket as a stream of token chips on a winding track, with chevrons showing the direction, that runs off to the right.

DBEX Archive

A JSON-compatible encoder and decoder in Python built on generators, so it can stop at a chosen depth and hand back the rest lazily. On PyPI since 11th grade.

Illustration of a vision coprocessor: a camera with an LED ring wired to a small screen, where a half-hexagon reflective target glows in a dark frame with its detected contour, corner points and a centroid crosshair.

NightVision (FRC 7839) Archive

The vision coprocessor of FRC 7839, the team I co-founded in high school: a terminal UI on a small screen, an Arduino control panel, and the link to the robot.

Illustration of a C vector's memory: older buffers of 2, 4 and 8 slots drawn as freed dashed outlines, each reallocated at double size into the live 16-slot buffer, and a small struct of three pointers below whose coloured arrows mark the buffer's start, the end of the used part and the end of capacity.

vector-h Archive

A generic vector for C89, built from macros: one line declares a typed vector with its functions, sorting and searching included.

Line-of-Sight

Line-of-Sight Archive

2D shadow casting in pygame: the block grid becomes a few long edges, rays go to every corner and just past it, and the lit area is drawn from where they hit.

Path-Finding

Path-Finding Archive

A grid path-finding visualiser in pygame: draw walls, place a start and an end, and watch an A*-style search spread out and trace the path.

Illustration of a C pre-preprocessor: on the left a C file with a Python function inside /** **/ marker comments and an /*( seq(5) )*/ expression marker; on the right the output file, where the Python block is gone and the marker has become 0, 1, 2, 3, 4, joined by an amber connector.

ppps Archive

A pre-preprocessor for C and C++ on PyPI: Python written inside marked comments in a C file runs before compilation, and its results are written into the output.

Illustration of a home-built handheld game console: a green shell with corner screws and a strip of bare circuit board under the screen, a pixel-art Snake game chasing an amber apple, four direction buttons on the left and two action buttons on the right.

MEGABOI Archive

A handheld game console on an Arduino Mega with a TFT screen: menus, Snake and a terminal.