Autonomous robot control system with DC motors, encoder feedback, web interface, and beacon detection capabilities.
- Precise Movement Control - DC motors with quadrature encoders for accurate positioning
- Web Control Interface - Remote control and monitoring via web browser
- Beacon Detection - Camera-based beacon tracking and detection
- Real-time Feedback - Encoder-based position tracking and telemetry
- Modular Architecture - Clean separation of concerns for easy development
team2/
├── src/
│ ├── app.py # Main application entry point
│ ├── movement_control/ # Motor control with encoder feedback
│ ├── web_control_interface/ # Web-based remote control
│ ├── beacon_detection/ # Camera-based beacon tracking
│ ├── control_logic_tracking/ # Navigation and control logic
│ └── raspberry_setup/ # Raspberry Pi configuration
├── pull_and_restart.sh # Deployment script
└── README.md # This file
- Controller: Raspberry Pi
- Motors: DFRobot FIT0450 Micro DC Motors (2x)
- Motor Controller: I²C interface (0x57)
- Camera: For beacon detection
# Create virtual environment (Raspberry Pi)
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Enable I²C on Raspberry Pi
sudo raspi-config
# Navigate to: Interface Options > I2C > Enable# Start the main application
python3 src/app.pyThe robot will perform a startup wiggle sequence to indicate it's ready.
from src.movement_control import MovementControl
import math
# Initialize robot
robot = MovementControl()
# Move forward 200mm
robot.move_distance(speed=100, distance=200)
# Turn 90° left
robot.turn_angle(angular_speed=1.0, angle_rad=math.pi/2)
# Stop motors
robot.stop()Precise motor control with encoder feedback for accurate distance and angle movements.
Key features:
- Distance-based movement (mm precision)
- Angle-based turning (radian precision)
- Continuous movement modes
- PID-controlled motor speeds
- Debug logging and diagnostics
Remote control and monitoring through a web browser.
Camera-based beacon detection and tracking system.
High-level navigation logic and position tracking.
- Hostname: robotpi-62.enst.fr
- Password: FyJvbBnybAujlQ
- MAC Address (wlan0): d8:3a:dd:29:fd:ef
- MAC Address (eth0): d8:3a:dd:29:fd:ee
Use the provided script to update and restart the robot:
./pull_and_restart.shThis script will:
- Pull latest changes from git
- Restart the robot application
Each module has its own README with detailed documentation:
- Movement Control - Motor control API
- Web Interface - Web server setup
- Beacon Detection - Computer vision
- Raspberry Setup - System configuration
# Check I²C devices
i2cdetect -y 8
# Run with debug output
python3 src/app.py --debug
# Test movement control
python3 src/movement_control_example.py