Safety First:
- Wear safety glasses when cutting aluminum
- Work on anti-static mat (especially when handling Arduino)
- Keep fire extinguisher nearby during power testing
Pre-Assembly Checklist:
graph TD
A[Unpack Components] --> B[Verify BOM Completeness]
B --> C[Charge Batteries]
C --> D[Prepare Tools]
D --> E[Clear Workspace]
-
Base Plate Preparation:
- Cut aluminum plate to 15x20cm dimensions
- File sharp edges smooth
- Drill 3mm mounting holes for motors and electronics
-
Motor Installation:
1. Position motors at front corners 2. Use rubber gaskets between motor and chassis 3. Secure with M3 bolts and lock washers 4. Verify shaft alignment with sprockets
-
Track System Assembly:
- Install drive sprockets on motor shafts
- Mount idler wheels at rear (adjustable tension)
- Thread rubber tracks with 5-10mm slack
Critical Electrical Isolation:
1. Cut EVA foam to match chassis dimensions
2. Apply double-sided tape to aluminum surface
3. Press foam firmly onto chassis
4. Punch holes through foam for mounting points
5. Verify continuity:
- Multimeter should show OL (open) between any component and chassis| Component | Position | Mounting Method |
|---|---|---|
| Arduino Uno | Center | Nylon standoffs |
| L298N Module | Rear | Silicone pads |
| PS2 Receiver | Front | Hot glue |
| Battery Holders | Sides | Velcro strips |
Installation Sequence:
- Mount Arduino with 10mm standoffs
- Position L298N near motors with thermal pad
- Secure PS2 receiver at highest point
- Attach battery holders to sides
graph LR
A[18650 Battery+] --> B[L298N +12V]
C[L298N GND] --> D[Common Ground Bus]
E[9V Battery+] --> F[Arduino Vin]
G[Arduino GND] --> D
-
Motor Wiring:
- Left Motor → L298N OUT1/OUT2
- Right Motor → L298N OUT3/OUT4
- Use heat shrink on all terminals
-
Control Wiring:
PS2 Receiver to Arduino: - CLK → Pin 13 - CMD → Pin 11 - ATT → Pin 10 - DAT → Pin 12 - VCC → 3.3V - GND → GND L298N to Arduino: - ENA → Pin 3 - IN1 → Pin 4 - IN2 → Pin 5 - IN3 → Pin 7 - IN4 → Pin 8 - ENB → Pin 6
- Bundle wires by system (power/signal)
- Use spiral wrap for motor cables
- Secure with zip ties every 5cm
- Label connections with tape flags
-
Install Dependencies:
Required Libraries: - PS2X_lib (v1.8.0+) -
Upload Sketch:
1. Connect Arduino via USB 2. Open `src/tank_robot_ps2.ino` 3. Verify board type: Arduino Uno 4. Upload code
Safety Verification:
- No metal-on-metal contact
- Insulation layer intact
- All wires secured
- Tracks move freely
Startup Procedure:
- Connect motor battery first
- Power Arduino via separate source
- Press PS button on controller
- Check serial monitor:
Found Controller
| Command | Expected Movement | Correction If Wrong |
|---|---|---|
| Forward | Both tracks forward | Swap IN1/IN2 or IN3/IN4 |
| Left Turn | Right forward, left backward | Reverse motor polarity |
| Right Turn | Left forward, right backward | Swap left/right motor wires |
1. Center analog sticks
2. Upload deadzone test sketch:
void setup() { Serial.begin(57600); }
void loop() {
Serial.print("LX: "); Serial.print(ps2x.Analog(PSS_LX));
Serial.print(" LY: "); Serial.println(ps2x.Analog(PSS_LY));
}
3. Adjust DEADZONE value until noise stabilizesFunctional Checklist:
- Forward/backward movement
- Left/right pivoting
- Stop when releasing controls
- Auto-stop on controller disconnect
- No overheating components
- Minimum 30min runtime
First Run Protocol:
- Test on foam surface
- Begin at 50% speed
- Gradually increase to full speed
- Monitor battery voltage drop
| Interval | Task |
|---|---|
| After 5 runs | Check track tension |
| Monthly | Clean motor brushes |
| Quarterly | Reapply thermal paste on L298N |
| Biannual | Replace EVA insulation |
Warning: Always disconnect power before maintenance!
