![]() |
Robot Stay Inside Circular Ring - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Robot Stay Inside Circular Ring (/thread-1125.html) |
Robot Stay Inside Circular Ring - webmanoffesto - Dec-06-2016 I have a Lego Mindstorms brick running ev3dev (open source Linux) and I am writing a Python program for it. I want to enter it in a friendly Sumo style robot competition. Two robots are put inside a circular ring and whoever pushes their opponent outside the ring wins. So I need an "avoid the line" or "stay inside the black line circle" program. Here is an example video wwwDOTyoutubeDOTcom/watch?v=3tguWcKTXQI&t=110s I still have to clarify exactly what the ring will be, black area outlined by white, or something different. But I think I can assume I'll be avoiding a bold black line, and I can change that later if I need to. I'm running ev3dev, brickman v.0.8.0, kernel 4.4.24-16-ev3dev-ev3 on a Lego Mindstorms EV3 programmable brick, revision 0006 I'm using PyCharm IDE and I push the code to the brick over WiFi. Program#!/usr/bin/env python3 # so that script can be run from Brickman # I amd combining a "bump into wall, back up, turn 45 degrees, drive forward" program # and a color sensor col-reflect program # This is for a "sumo", robot inside of a circle outlined in black, drive forward, if sense black line then turn # This code (or an earlier version of it) is posted at codepasteDOTnet/zrs5gq from ev3dev.ev3 import * from time import sleep ### col-reflect # Connect EV3 color sensor and check connected. cl = ColorSensor() assert cl.connected, "Connect a color sensor to any sensor port" # Put the color sensor into COL-REFLECT mode # to measure reflected light intensity. # In this mode the sensor will return a value between 0 and 100 cl.mode = 'COL-REFLECT' while True: print(cl.value()) sleep(0.5) # I get max 80 with white paper, 3mm separation # and 5 with black plastic, same separation direction = 1 # Switches between 1 and -1 m = LargeMotor('outB') m.reset() m.run_forever(speed_sp=675 * direction) m2 = LargeMotor('outA') m2.reset() m2.run_forever(speed_sp=675) print(cl.value()) sleep(0.5) new_color = cl.value() print new_color if new_color < 10: direction *= -1 # Reverse the direction. Forward becomes backward, backward becomes forward m.run_timed(time_sp=1000, speed_sp=300 * direction) sleep(1) print "I am sleeping" direction *= -1 # Reverse the direction. Forward becomes backward, backward becomes forward m.run_forever(speed_sp=675 * direction) touch = new_touch ####### RE: Robot Stay Inside Circular Ring - webmanoffesto - Dec-07-2016 When I run the program with >python3 rather than just >python I get the error robot@ev3dev:~/myproject$ python3 col-reflect-driveaway-v.2016.12.05.n01.py File "col-reflect-driveaway-v.2016.12.05.n01.py", line 45 print new_color ^ SyntaxError: Missing parentheses in call to 'print' RE: Robot Stay Inside Circular Ring - micseydel - Dec-07-2016 Have you tried adding parenthesis in the call to 'print'? RE: Robot Stay Inside Circular Ring - webmanoffesto - Dec-07-2016 (Dec-07-2016, 06:08 AM)micseydel Wrote: Have you tried adding parenthesis in the call to 'print'?Thank you, the "print" call is now working while True: print(cl.value()) sleep(0.5)Can you help me with the new problem I now have? I'm now getting this error The program starts running, for some reason it loses the WiFi connection, but the program keeps running, therefore CTRL-C doesn't stop it, and I have to reboot the Mindstorms brick.You can see the most recent version of the code at: https://codepaste.net/zrs5gq Edit admin: Look at BBCode help button. icode tag is only for short inline code.
RE: Robot Stay Inside Circular Ring - micseydel - Dec-07-2016 There might be someone around here that can help you, but you probably want a specialized forum for that device. It's hard to help when we lack domain knowledge and can't reproduce the problem. |