2026-10-14 21:42:24 +00:00
<!DOCTYPE html>
2026-10-18 00:38:48 +00:00
< html lang = "en" data-theme = "colorful" >
2026-10-14 21:42:24 +00:00
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
2026-10-18 00:19:21 +00:00
< title > RC and Autonomous 4WD Vehicle — Projects — Ertunç Özbay< / title >
2026-10-18 00:38:48 +00:00
< meta name = "description" content = "Project notes and 2.4 GHz telemetry protocol structures for the RC and Autonomous 4WD Vehicle by Ertunç Özbay." >
2026-10-14 21:42:24 +00:00
< link rel = "icon" type = "image/svg+xml" href = "../assets/images/favicon.svg" >
2026-10-18 00:38:48 +00:00
< link rel = "stylesheet" href = "../assets/css/style.css?v=2" >
2026-10-14 21:42:24 +00:00
< / head >
< body >
< a class = "skip-link" href = "#main-content" > Skip to main content< / a >
< header class = "site-header" >
< div class = "container header-inner" >
< a class = "site-brand" href = "../index.html" >
< span class = "brand-mark" aria-hidden = "true" > EÖ< / span >
< span >
Ertunç Özbay
2026-10-18 00:19:21 +00:00
< span class = "brand-subtitle" > embedded // hardware // open-source< / span >
2026-10-14 21:42:24 +00:00
< / span >
< / a >
2026-10-18 00:38:48 +00:00
< div class = "header-controls" >
< div class = "theme-switcher" role = "group" aria-label = "Select UI Theme" >
< button type = "button" class = "theme-btn" data-set-theme = "colorful" aria-pressed = "true" > 🎨 Colorful< / button >
< button type = "button" class = "theme-btn" data-set-theme = "neon" aria-pressed = "false" > 🌈 Neon< / button >
< button type = "button" class = "theme-btn" data-set-theme = "blueprint" aria-pressed = "false" > 📐 Blueprint< / button >
< / div >
< button class = "nav-toggle" type = "button" data-nav-toggle aria-expanded = "false" aria-controls = "primary-navigation" >
< span aria-hidden = "true" > ☰< / span >
< span data-nav-label > Menu< / span >
< / button >
< nav id = "primary-navigation" class = "site-nav" data-site-nav aria-label = "Main navigation" >
< ul class = "nav-list" >
< li > < a class = "nav-link" href = "../index.html" > Home< / a > < / li >
< li > < a class = "nav-link" href = "../about.html" > About< / a > < / li >
< li > < a class = "nav-link" href = "../projects/index.html" aria-current = "page" > Projects< / a > < / li >
< li > < a class = "nav-link" href = "../blog/index.html" > Blog< / a > < / li >
< li > < a class = "nav-link" href = "../lab.html" > Lab< / a > < / li >
< li > < a class = "nav-link" href = "../contact.html" > Contact< / a > < / li >
< / ul >
< / nav >
< / div >
2026-10-14 21:42:24 +00:00
< / div >
< / header >
< main id = "main-content" >
< div class = "container" >
< nav class = "breadcrumb" aria-label = "Breadcrumb" >
< a href = "index.html" > ← Back to Projects< / a >
< / nav >
< article >
< header class = "workshop-hero" >
< div class = "card-meta" >
2026-10-18 00:19:21 +00:00
< span class = "badge badge-active" > Status: In Progress< / span >
2026-10-18 00:38:48 +00:00
< span > Project 04 // 4WD Robotics, Control Logic & 2.4 GHz Telemetry< / span >
2026-10-14 21:42:24 +00:00
< / div >
2026-10-18 00:19:21 +00:00
< h1 > < span class = "gradient-title" > RC and Autonomous 4WD Vehicle< / span > < / h1 >
2026-10-14 21:42:24 +00:00
< p class = "hero-lead" >
2026-10-18 00:19:21 +00:00
A standalone 4WD robotic vehicle project exploring manual 2.4 GHz wireless control (paired with my < a href = "multi-functional-controller.html" > Multi-Functional RC Controller< / a > ) and autonomous obstacle-avoidance behavior.
2026-10-14 21:42:24 +00:00
< / p >
< div class = "button-row" >
2026-10-18 00:19:21 +00:00
< a class = "btn btn-youtube" href = "#poc-video" > 🎬 Watch PoC Video Slot< / a >
2026-10-18 00:38:48 +00:00
< a class = "btn btn-primary" href = "multi-functional-controller.html" > 🎛️ Companion RC Controller< / a >
2026-10-14 21:42:24 +00:00
< a class = "btn btn-secondary" href = "index.html" > All Projects< / a >
< / div >
< / header >
2026-10-18 00:19:21 +00:00
<!-- YouTube Proof - of - Concept Video Placeholder -->
< section id = "poc-video" class = "poc-video-section" aria-labelledby = "rc-video-heading" >
< div class = "poc-video-card" >
< span class = "section-label" > 🎬 Proof of Concept // YouTube Video Showcase< / span >
< h2 id = "rc-video-heading" > YouTube Proof-of-Concept Demonstration< / h2 >
< div class = "poc-video-screen" role = "region" aria-label = "YouTube Proof of Concept Video Placeholder" >
< div class = "poc-play-badge" aria-hidden = "true" >
< div class = "poc-play-triangle" > < / div >
< / div >
< span class = "poc-status-pill" > 🎥 YouTube PoC Video — Recording / Coming Soon< / span >
< div class = "poc-video-title" > 4WD RC & Autonomous Vehicle — Wireless Drive & Control Loop Test< / div >
< p class = "poc-video-desc" >
Upcoming YouTube demonstration covering 2.4 GHz remote drive response from the Multi-Functional Controller, motor driver PWM tuning, and autonomous mode switching.
< / p >
< / div >
< / div >
< / section >
2026-10-14 21:42:24 +00:00
< section class = "section-block reading-width" aria-labelledby = "p2-overview" >
< span class = "section-label" > 01 // Overview< / span >
< h2 id = "p2-overview" > Why I Am Building This< / h2 >
< p >
2026-10-18 00:19:21 +00:00
A physical vehicle sits right at the intersection of the subjects I care about most: power electronics, closed-loop control logic, and real-time embedded decision-making. If a firmware routine makes a bad timing assumption or power transients aren't filtered properly, you see it immediately in how the vehicle behaves on the floor.
2026-10-14 21:42:24 +00:00
< / p >
< p >
2026-10-18 00:19:21 +00:00
This project is maintained strictly separate from the transmitter console so that the vehicle node and the < a href = "multi-functional-controller.html" > Multi-Functional RC Controller< / a > communicate over a clean, modular 2.4 GHz packet protocol.
2026-10-14 21:42:24 +00:00
< / p >
< / section >
2026-10-18 00:38:48 +00:00
<!-- 2.4 GHz Control Packet Code Snippet -->
< section class = "section-block" aria-labelledby = "p2-protocol" >
< span class = "section-label" > 02 // 2.4 GHz Wireless Protocol Structure< / span >
< h2 id = "p2-protocol" > Packed C99 Telemetry & Drive Structs< / h2 >
< p class = "reading-width" >
To guarantee deterministic serialization over the 32-byte nRF24L01+ payload buffer between the controller and the vehicle, the link layer uses packed fixed-width C99 structs:
< / p >
< div class = "code-window" >
< div class = "code-window-header" >
< span class = "code-window-title" >
< span class = "code-dots" > < span class = "code-dot red" > < / span > < span class = "code-dot amber" > < / span > < span class = "code-dot green" > < / span > < / span >
c99 — Packed 2.4 GHz Control & Telemetry Packet Definition
< / span >
< button type = "button" class = "copy-code-btn" data-copy-code > 📋 Copy Code< / button >
< / div >
< pre > < code > #include < stdint.h>
#include < assert.h>
typedef struct __attribute__((packed)) {
uint8_t magic; // 0xA5 frame sync byte
uint8_t seq; // Rolling packet sequence number
int16_t throttle_pwm; // -1000 to +1000 normalized longitudinal drive
int16_t steering_pwm; // -1000 to +1000 differential yaw command
uint8_t mode_flags; // Bit 0: Autonomous Mode, Bit 1: Emergency Stop
uint8_t crc8; // Checksum for packet integrity
} RcControlPacket_t;
_Static_assert(sizeof(RcControlPacket_t) == 8, "RcControlPacket_t must be 8 bytes");< / code > < / pre >
< / div >
< / section >
2026-10-14 21:42:24 +00:00
< section class = "section-block reading-width" aria-labelledby = "p2-confirmed" >
2026-10-18 00:38:48 +00:00
< span class = "section-label" > 03 // Confirmed Information< / span >
2026-10-14 21:42:24 +00:00
< h2 id = "p2-confirmed" > Current Documentation Status< / h2 >
< table class = "spec-table" >
< thead >
< tr >
< th scope = "col" > Attribute< / th >
< th scope = "col" > Confirmed Status< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < strong > Project Name< / strong > < / td >
2026-10-18 00:19:21 +00:00
< td > RC and Autonomous 4WD Vehicle< / td >
2026-10-14 21:42:24 +00:00
< / tr >
< tr >
< td > < strong > Status< / strong > < / td >
2026-10-18 00:19:21 +00:00
< td > In progress (Hardware & control loop integration)< / td >
2026-10-14 21:42:24 +00:00
< / tr >
< tr >
2026-10-18 00:19:21 +00:00
< td > < strong > Companion Transmitter< / strong > < / td >
< td > < a href = "multi-functional-controller.html" > ESP32-S3 Multi-Functional RC Controller (MFC)< / a > < / td >
2026-10-14 21:42:24 +00:00
< / tr >
< tr >
2026-10-18 00:19:21 +00:00
< td > < strong > Core Focus Areas< / strong > < / td >
< td > Manual 2.4 GHz RC drive, autonomous behavior exploration, motor drive electronics, and embedded control software< / td >
2026-10-14 21:42:24 +00:00
< / tr >
< / tbody >
< / table >
< / section >
< / article >
< / div >
< / main >
< footer class = "site-footer" >
< div class = "container footer-inner" >
< div >
2026-10-18 00:38:48 +00:00
< strong > Ertunç Özbay< / strong > — Electrical & Electronics Engineering Student • < a href = "mailto:ertunc.ozbay@outlook.com" > ertunc.ozbay@outlook.com< / a >
2026-10-14 21:42:24 +00:00
< / div >
< ul class = "footer-links" aria-label = "Footer links" >
< li > < a href = "../projects/index.html" > Projects< / a > < / li >
< li > < a href = "../blog/index.html" > Blog< / a > < / li >
< li > < a href = "../lab.html" > Lab< / a > < / li >
< li > < a href = "../contact.html" > Contact< / a > < / li >
2026-10-21 16:42:52 +00:00
< li > < a href = "http://34.57.151.250:3000/ertunc-ozbay" rel = "noopener noreferrer" > GitHub< / a > < / li >
2026-10-18 00:19:21 +00:00
< li > < a href = "https://www.linkedin.com/in/ertunc-ozbay" rel = "noopener noreferrer" > LinkedIn< / a > < / li >
2026-10-14 21:42:24 +00:00
< / ul >
< / div >
< / footer >
2026-10-18 00:38:48 +00:00
< script src = "../assets/js/main.js?v=2" > < / script >
2026-10-14 21:42:24 +00:00
< / body >
< / html >