FollowTheLine

This commit is contained in:
janis
2022-06-27 15:07:47 +02:00
parent 3b5e6be980
commit e25bac778e
5 changed files with 53 additions and 23 deletions

View File

@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.10 (micro_bit_interface)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

2
.idea/misc.xml generated
View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (micro_bit_interface)" project-jdk-type="Python SDK" />
</project>

View File

@@ -1,29 +1,40 @@
import maqueen_driver
import microbit
import music
md = maqueen_driver.Driver()
class FollowTheLine:
def __init__(self):
self.__activated = 0
self.__repeated = 0
def run(self):
while True:
if md.getDistance() < 20:
md.stop()
md.setLEDs(on=1)
music.pitch(440, 20)
else:
if md.getLineTracker(1) == 0:
self.__activated = 0
md.motor(0, 100, 0, 255)
elif md.getLineTracker(2) == 0:
self.__activated = 0
md.motor(0, 255, 0, 100)
if md.getLineTracker(1) == 0:
self.__activated = 0
if self.__repeated >= 75 and self.__repeated < 150:
self.__repeated += 1
md.motor(0, 10, 0, 100)
elif self.__repeated >= 100:
md.motor(0, 0, 0, 100)
else:
if self.__activated <= 50:
self.__activated += 1
md.motor(0, 140, 0, 140)
else:
md.motor(0, 255, 0, 255)
self.__repeated += 1
md.motor(0, 50, 0, 100)
elif md.getLineTracker(2) == 0:
self.__activated = 0
self.__repeated += 1
if self.__repeated >= 75 and self.__repeated < 150:
self.__repeated += 1
md.motor(0, 100, 0, 10)
elif self.__repeated >= 100:
md.motor(0, 100, 0, 0)
else:
self.__repeated += 1
md.motor(0, 100, 0, 50)
else:
self.__repeated = 0
if self.__activated <= 2000:
self.__activated += 1
md.motor(0, 100, 0, 100)
else:
md.motor(0, 255, 0, 255)

View File

@@ -0,0 +1,17 @@
import maqueen_driver
md = maqueen_driver.Driver()
class FollowTheLineDumnb:
def __init__(self):
pass
def run(self):
while True:
if md.getLineTracker(1) == 1:
md.motor(0, 10, 0, 75)
elif md.getLineTracker(2) == 2:
md.motor(0, 75, 0, 10)
else:
md.motor(0, 75, 0, 75)

View File

@@ -1,3 +1,3 @@
import ftl
import ftl_dumb_version
ftl.FollowTheLine().run()
ftl_dumb_version.FollowTheLineDumnb().run()