Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Field Mapper Robot

Overview

Design of a modular, cost‑effective robot for mapping magnetic fields within a defined volume.

Ruler attached to linear stage

Software requirements

  • PyCharm – Python IDE (Python 3.13) – Link
  • Arduino IDE – Native Arduino software – Link

Hardware requirements

  • CPU: 64‑bit dual‑core (modern)
  • RAM: ≥ 8 GB (PyCharm needs 2 GB free)
  • Storage: ≥ 5 GB free SSD (PyCharm ≈ 3.5 GB + projects)
  • OS: Windows 10 64‑bit +, macOS 10.15 +, Ubuntu 20.04 +
  • Basic jumper wires for Arduino
  • M3 screws with nuts
  • USB‑C ↔ USB‑C / USB‑A ↔ USB‑C cable (Arduino Uno R4)
  • Wire cutter/stripper
  • Precision screwdriver set

Bill of Materials

Component Qty Unit Price (USD) Link
Linear stages (Z 300 mm, XY 300 mm – 12 mm pitch) 1 338.54 Product
TB6600 stepper driver 3 5.60 Product
Arduino UNO R4 Minima 1 16.00 Product
Gaussmeter GM2 1 902.00 Product
Total 1262.14

High‑Level Workflow

System flowchart 1

Software workflow diagram

System flowchart 2

Wiring diagram

Installation and Setup

  1. Clone the repository:
    git clone https://github.com/SipanHovsep/Field_mapper_robot
  2. Install dependencies:
    pip install -r requirements.txt  
  3. Connect the hardware as described in the wiring diagram.
  4. Print the files in 3D print files
  5. Connect and upload Arduino_script.ino to Arduino
  6. Run Arduino_finder.py
  7. Run Path_maker.py
  8. Run Arduino_runner.py
  9. Check out Supporting images for further images

Scripts Overview

  • Run once the arduino is connected
  • Finds the connection port name and writes it in Arduino_port.txt file
  • Generates the path trajectory with discrete points
  • Allows user to modify the trajectory and spacing between individual points
  • Visualizes the path in 3D with exact sequence the robot would follow, for user to validate
  • Writes the x y z coordinates of the path in the right order in "path.CSV" file
  • Allows user to input delay time for sensor read at each desired point and control the speed of robot movement
  • Retrieves the coordinates from "path.CSV" file
  • Generates text commands to move the robot according to the path
  • Sends text commands to arduino at 9600 baud (defined by user) via Arduino port retrieved from Arduino.txt file
  • Establishes a serial connection with Gaussmeter through usb port
  • Records voltage readings of Gaussmeter per data point and appends to corresponding coordinate
  • Generates Data.CSV, containing x y z reading values for each coordinates
  • Defines Pin map of the arduino
  • Listens for simple text commands (X+, X-, Y+, Y-, Z+, Z-,) sent over USB at 9600 baud (Links Arduino_runner.py with Arduino)
  • Moves the robot 1 mm per command by pulsing the chosen step pin 533.34 times (defined by callibration)

Assembly Tips

1 · Axis Ruler for Quick Calibration

Ruler attached to linear stage
Attaching a printed ruler minimises calibration time and ensures precise step‑to‑millimetre mapping.

2 · Mount on a Rigid Base

Robot mounted on wooden panel
Secure the frame to a **≥ 40 × 60 × 1.5 cm** wooden panel for stability during operation.

3 · Variable DC Power Supply

Variable DC power supply
A low‑cost variable supply (~15 USD) simplifies testing different motor voltages and current limits.

4 · TB6600 DIP‑Switch Settings

TB6600 switch positions
Set switches **S1–S6 = OFF** to match the firmware micro‑stepping and protect the motors.

About

Design of modular, cost-effective field mapper robot

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages