From ee1385ce7ccc8edcb8391f014e15c75cd0f3be6f Mon Sep 17 00:00:00 2001 From: ft-Demo <fischertechnik-team@fischer.de> Date: Mon, 25 Oct 2021 15:24:58 +0000 Subject: [PATCH] commit by robo pro coding --- lib/camera.py | 4 +-- lib/camera.xml | 2 +- lib/display.qml | 4 +-- lib/display.xml | 2 +- omniwheels_x4_soccer_goal.blockly | 44 ++++++++++++++++++++++--------- omniwheels_x4_soccer_goal.py | 2 +- 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/lib/camera.py b/lib/camera.py index cfb1329..43e038c 100644 --- a/lib/camera.py +++ b/lib/camera.py @@ -8,7 +8,7 @@ TXT_M_USB_1_camera.set_width(320) TXT_M_USB_1_camera.set_fps(15) TXT_M_USB_1_camera.start() -ball_detector = txt_factory.camera_factory.create_ball_detector(0, 0, 320, 240, 5, 80, -100, 100, [255,134,62], 20) +ball_detector = txt_factory.camera_factory.create_ball_detector(0, 0, 320, 240, 5, 80, -100, 100, [200,113,52], 20) TXT_M_USB_1_camera.add_detector(ball_detector) blocked_area_right = txt_factory.camera_factory.create_blocked_area(240, 190, 80, 50) @@ -20,6 +20,6 @@ TXT_M_USB_1_camera.add_blocked_area(blocked_area_left) ball_detector_goal_right = txt_factory.camera_factory.create_ball_detector(0, 70, 320, 120, 10, 120, -100, 100, [183,137,26], 20) TXT_M_USB_1_camera.add_detector(ball_detector_goal_right) -ball_detector_goal_left = txt_factory.camera_factory.create_ball_detector(0, 70, 320, 120, 10, 120, -100, 100, [65,138,31], 20) +ball_detector_goal_left = txt_factory.camera_factory.create_ball_detector(0, 70, 320, 120, 10, 120, -100, 100, [57,117,47], 20) TXT_M_USB_1_camera.add_detector(ball_detector_goal_left) diff --git a/lib/camera.xml b/lib/camera.xml index df11a08..7d01b69 100644 --- a/lib/camera.xml +++ b/lib/camera.xml @@ -1 +1 @@ -<xml type="camera" verion="1" version="2" rotate="0" height="240" width="320" fps="15"><item id="2" class="BallDetector"><name>ball_detector</name><color>#ff863e</color><tolerance>20</tolerance><min_ball_diameter>5</min_ball_diameter><max_ball_diameter>80</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>0</y><width>320</width><height>240</height></geometry></item><item id="4" class="BlockedArea"><name>blocked_area_right</name><geometry><x>240</x><y>190</y><width>80</width><height>50</height></geometry></item><item id="5" class="BlockedArea"><name>blocked_area_left</name><geometry><x>0</x><y>190</y><width>80</width><height>50</height></geometry></item><item id="12" class="BallDetector"><name>ball_detector_goal_right</name><color>#b7891a</color><tolerance>20</tolerance><min_ball_diameter>10</min_ball_diameter><max_ball_diameter>120</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>70</y><width>320</width><height>120</height></geometry></item><item id="11" class="BallDetector"><name>ball_detector_goal_left</name><color>#418a1f</color><tolerance>20</tolerance><min_ball_diameter>10</min_ball_diameter><max_ball_diameter>120</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>70</y><width>320</width><height>120</height></geometry></item></xml> \ No newline at end of file +<xml type="camera" verion="1" version="2" rotate="0" height="240" width="320" fps="15"><item id="2" class="BallDetector"><name>ball_detector</name><color>#c87134</color><tolerance>20</tolerance><min_ball_diameter>5</min_ball_diameter><max_ball_diameter>80</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>0</y><width>320</width><height>240</height></geometry></item><item id="4" class="BlockedArea"><name>blocked_area_right</name><geometry><x>240</x><y>190</y><width>80</width><height>50</height></geometry></item><item id="5" class="BlockedArea"><name>blocked_area_left</name><geometry><x>0</x><y>190</y><width>80</width><height>50</height></geometry></item><item id="12" class="BallDetector"><name>ball_detector_goal_right</name><color>#b7891a</color><tolerance>20</tolerance><min_ball_diameter>10</min_ball_diameter><max_ball_diameter>120</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>70</y><width>320</width><height>120</height></geometry></item><item id="11" class="BallDetector"><name>ball_detector_goal_left</name><color>#39752f</color><tolerance>20</tolerance><min_ball_diameter>10</min_ball_diameter><max_ball_diameter>120</max_ball_diameter><start_range_value>-100</start_range_value><end_range_value>100</end_range_value><geometry><x>0</x><y>70</y><width>320</width><height>120</height></geometry></item></xml> \ No newline at end of file diff --git a/lib/display.qml b/lib/display.qml index 0cab849..3261861 100644 --- a/lib/display.qml +++ b/lib/display.qml @@ -29,7 +29,7 @@ TXTWindow { elide: Text.ElideRight x: 60 y: 70 - width: 100 + width: 179 height: 40 } TXTLabel { @@ -39,7 +39,7 @@ TXTWindow { elide: Text.ElideRight x: 60 y: 120 - width: 100 + width: 180 height: 40 } TXTLabel { diff --git a/lib/display.xml b/lib/display.xml index 211e50a..10a8593 100644 --- a/lib/display.xml +++ b/lib/display.xml @@ -1 +1 @@ -<xml type="display" version="2"><item id="4" class="TXTSwitch"><name>txt_switch_active</name><enabled>true</enabled><checked>true</checked><text>START</text><geometry><x>60</x><y>171</y><width>100</width><height>40</height></geometry></item><item id="5" class="TXTLabel"><name>txt_label_ball</name><text>-</text><geometry><x>60</x><y>70</y><width>100</width><height>40</height></geometry></item><item id="6" class="TXTLabel"><name>txt_label_goal</name><text>-</text><geometry><x>60</x><y>120</y><width>100</width><height>40</height></geometry></item><item id="7" class="TXTLabel"><name>txt_label_ball_</name><text>ball</text><geometry><x>20</x><y>70</y><width>40</width><height>40</height></geometry></item><item id="8" class="TXTLabel"><name>txt_label_goal_</name><text>goal</text><geometry><x>20</x><y>120</y><width>40</width><height>40</height></geometry></item><item id="9" class="TXTLabel"><name>txt_label_counters_</name><text>C1...4</text><geometry><x>20</x><y>20</y><width>40</width><height>40</height></geometry></item><item id="10" class="TXTLabel"><name>txt_label_counters</name><text>-</text><geometry><x>60</x><y>20</y><width>100</width><height>40</height></geometry></item></xml> \ No newline at end of file +<xml type="display" version="2"><item id="4" class="TXTSwitch"><name>txt_switch_active</name><enabled>true</enabled><checked>true</checked><text>START</text><geometry><x>60</x><y>171</y><width>100</width><height>40</height></geometry></item><item id="5" class="TXTLabel"><name>txt_label_ball</name><text>-</text><geometry><x>60</x><y>70</y><width>179</width><height>40</height></geometry></item><item id="6" class="TXTLabel"><name>txt_label_goal</name><text>-</text><geometry><x>60</x><y>120</y><width>180</width><height>40</height></geometry></item><item id="7" class="TXTLabel"><name>txt_label_ball_</name><text>ball</text><geometry><x>20</x><y>70</y><width>40</width><height>40</height></geometry></item><item id="8" class="TXTLabel"><name>txt_label_goal_</name><text>goal</text><geometry><x>20</x><y>120</y><width>40</width><height>40</height></geometry></item><item id="9" class="TXTLabel"><name>txt_label_counters_</name><text>C1...4</text><geometry><x>20</x><y>20</y><width>40</width><height>40</height></geometry></item><item id="10" class="TXTLabel"><name>txt_label_counters</name><text>-</text><geometry><x>60</x><y>20</y><width>100</width><height>40</height></geometry></item></xml> \ No newline at end of file diff --git a/omniwheels_x4_soccer_goal.blockly b/omniwheels_x4_soccer_goal.blockly index 362b793..e2090dc 100644 --- a/omniwheels_x4_soccer_goal.blockly +++ b/omniwheels_x4_soccer_goal.blockly @@ -346,33 +346,53 @@ <mutation elseif="0" else="1"/> <value name="IF0"> <block type="logic_operation" id="F*6cCZOW)ukbgn9K8?SO" inline="false"> - <field name="OP">OR</field> + <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="gQMo_h|S:{G:nr]1=UW4"> - <field name="OP">LTE</field> + <field name="OP">GT</field> <value name="A"> - <block type="variables_get" id="@8MLRa^g0hU[CeMJ#Wdh"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="math_arithmetic" id="g#5+UTr_8H_R-F]F:wXY"> + <field name="OP">MINUS</field> + <value name="A"> + <block type="variables_get" id=",-pErfLng]qD$?z[[Fs7"> + <field name="VAR" id="a8;eFhj+gj?)7exUyU;p">posy_goal_left</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="@8MLRa^g0hU[CeMJ#Wdh"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> </block> </value> <value name="B"> - <block type="variables_get" id=",-pErfLng]qD$?z[[Fs7"> - <field name="VAR" id="a8;eFhj+gj?)7exUyU;p">posy_goal_left</field> + <block type="math_number" id="Wzx3MWFz@%Jz9y{C/Qp1"> + <field name="NUM">-15</field> </block> </value> </block> </value> <value name="B"> - <block type="logic_compare" id="KqQ*Wu/:9}*:Cv5}e9ql"> - <field name="OP">LTE</field> + <block type="logic_compare" id="8B#3C:X3GH?2=7:Pz69)"> + <field name="OP">GT</field> <value name="A"> - <block type="variables_get" id="sLP@4jf@Rmdfg+aDCR]T"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="math_arithmetic" id="BVT`l59)jj8X[?{ToBh@"> + <field name="OP">MINUS</field> + <value name="A"> + <block type="variables_get" id="r56n`}OQ/*+nk-rCW$m."> + <field name="VAR" id="+j/X+RCIMajR28(u#7DG">posy_goal_right</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="u,9zl8#.bgLY`eV8SG6g"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> </block> </value> <value name="B"> - <block type="variables_get" id="r56n`}OQ/*+nk-rCW$m."> - <field name="VAR" id="+j/X+RCIMajR28(u#7DG">posy_goal_right</field> + <block type="math_number" id="{pD26^qSv`7.;d_.f@0c"> + <field name="NUM">-15</field> </block> </value> </block> diff --git a/omniwheels_x4_soccer_goal.py b/omniwheels_x4_soccer_goal.py index 7058bb4..21f192c 100644 --- a/omniwheels_x4_soccer_goal.py +++ b/omniwheels_x4_soccer_goal.py @@ -322,7 +322,7 @@ while True: if posx_ball != None and posy_ball != None: if posx_goal_left != None and posx_goal_right != None: state = 'BALL_GOAL_BOTH' - if posy_ball <= posy_goal_left or posy_ball <= posy_goal_right: + if posy_goal_left - posy_ball > -15 and posy_goal_right - posy_ball > -15: soundGoal() else: if posx_ball > posx_goal_left and posx_ball < posx_goal_right: -- GitLab