Mbot2 Line Follower Code Apr 2026
def tune_pid(self): """ Interactive PID tuning """ print("\n=== PID Tuning Mode ===") print("Adjust values to improve line following:") print(f"Current: KP=self.KP, KI=self.KI, KD=self.KD") while True: print("\nCommands:") print(" kp [value] - Set proportional gain") print(" ki [value] - Set integral gain") print(" kd [value] - Set derivative gain") print(" test - Test current settings") print(" quit - Exit tuning") cmd = input("> ").strip().lower() if cmd.startswith("kp"): try: self.KP = float(cmd.split()[1]) print(f"KP set to self.KP") except: print("Invalid value") elif cmd.startswith("ki"): try: self.KI = float(cmd.split()[1]) print(f"KI set to self.KI") except: print("Invalid value") elif cmd.startswith("kd"): try: self.KD = float(cmd.split()[1]) print(f"KD set to self.KD") except: print("Invalid value") elif cmd == "test": print("Testing for 5 seconds...") self.follow_line(duration=5) elif cmd == "quit": break else: print("Unknown command") def main(): """Main function to run the line follower with menu""" follower = MBot2LineFollower()
class MBot2LineFollower: """Complete line follower implementation for MBot2 robot""" mbot2 line follower code
def calibrate_sensors(self): """ Calibrate line sensors for current surface """ print("Calibrating line sensors...") print("Place robot on WHITE surface and press Enter") input() # Read white values white_values = [] for i in range(5): white_values.append(self.bot.get_line_sensor(i+1)) print(f"White readings: white_values") print("Place robot on BLACK line and press Enter") input() # Read black values black_values = [] for i in range(5): black_values.append(self.bot.get_line_sensor(i+1)) print(f"Black readings: black_values") print("Calibration complete!") return white_values, black_values mbot2 line follower code