Merge and clean up

This commit is contained in:
Lukas Bachschwell 2017-12-12 12:11:09 +01:00
commit afaba02132
14 changed files with 878 additions and 356 deletions

65
img/blocks/LARS.svg Normal file
View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

71
img/blocks/LARS_BLH.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_BLH.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><ellipse
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:110.7085495;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="path4525-2"
cx="18.429653"
cy="50.682549"
rx="7.3946142"
ry="7.508378" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_BLL.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_BLL.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><rect
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:7.77202845;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="rect4551-2"
width="12.764831"
height="14.320644"
x="0.24553759"
y="61.641895" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_BRH.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_BRH.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><ellipse
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:110.7085495;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="path4525-2"
cx="56.881649"
cy="49.089863"
rx="7.3946142"
ry="7.508378" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_BRL.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_BRL.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><rect
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:7.77249622;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="rect4551"
width="12.766374"
height="14.320638"
x="63.376617"
y="61.641895" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_FLH.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_FLH.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><ellipse
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:110.7085495;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="path4525-2"
cx="19.112232"
cy="32.480423"
rx="7.3946142"
ry="7.508378" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_FLL.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_FLL.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><rect
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:7.5590539;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="rect4551-2"
width="12.074839"
height="14.32064"
x="0.24245729"
y="-0.02453734" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_FRH.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_FRH.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><ellipse
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:110.7085495;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="path4525"
cx="57.751133"
cy="31.295048"
rx="7.3946142"
ry="7.508378" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

71
img/blocks/LARS_FRL.svg Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
width="75.938px"
height="75.938px"
viewBox="0 0 75.938 75.938"
style="enable-background:new 0 0 75.938 75.938;"
xml:space="preserve"
sodipodi:docname="LARS_FRL.svg"
inkscape:version="0.92.1 r15371"><metadata
id="metadata43"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs41" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="705"
id="namedview39"
showgrid="false"
inkscape:zoom="4.3950905"
inkscape:cx="57.872316"
inkscape:cy="52.258221"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" /><path
d="m 62.689709,34.172256 c 5.866461,-5.260644 9.65833,-12.273531 9.65833,-20.165801 h 3.79803 V -0.02453734 H 63.379699 V 14.296103 h 3.79649 c 0,6.137418 -2.761504,11.982578 -7.246445,16.365143 L 49.581422,20.725779 H 26.117114 L 15.767251,30.661246 C 11.282311,26.278681 8.5223473,20.725779 8.5223473,14.296103 H 12.317296 V -0.02453734 H 0.24245728 V 14.296103 H 4.0374069 c 0,7.889662 3.7949495,14.905158 9.6598721,20.165801 -2.27833,7.961066 -2.099482,5.278205 0.003,13.443867 -4.1399459,3.799354 -7.2449047,8.475482 -8.9698817,13.736126 H 0.24553759 v 14.32064 H 13.010368 v -14.32064 h -2.759963 c 1.034986,-3.79805 3.449954,-7.015497 6.209918,-9.936772 l 10.004866,9.936772 h 23.461229 l 10.000246,-9.936772 c 3.10958,2.921275 5.176471,6.138722 6.211458,9.936772 h -2.761504 v 14.32064 h 12.76637 v -14.32064 h -4.831475 c -1.379982,-5.260644 -4.48494,-9.936772 -8.969881,-13.736126 1.652684,-8.801963 1.743027,-5.465526 0.348077,-13.733515 z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"
style="stroke-width:1.41756129" /><g
id="g8" /><g
id="g10" /><g
id="g12" /><g
id="g14" /><g
id="g16" /><g
id="g18" /><g
id="g20" /><g
id="g22" /><g
id="g24" /><g
id="g26" /><g
id="g28" /><g
id="g30" /><g
id="g32" /><g
id="g34" /><g
id="g36" /><rect
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:7.77249622;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke"
id="rect4551"
width="12.766368"
height="14.32064"
x="63.3797"
y="-0.02453734" /></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1 @@
<div>Icons made by <a href="http://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></div>

36
lang/LARS.json Normal file
View File

@ -0,0 +1,36 @@
{
"langs":
{
"en-GB":
{
"keys":
{
"LANG_LARS_INIT_TOOLTIP": "Defines the servo pins for a quadruped robot.",
"LANG_LARS_MOVEMENT": "Move robot",
"LANG_LARS_MOVEMENT_MOVEMENT": "Movement",
"LANG_LARS_MOVEMENT_HOME": "Home",
"LANG_LARS_MOVEMENT_WALK": "Walk",
"LANG_LARS_MOVEMENT_OMNIWALK": "Omni walk",
"LANG_LARS_MOVEMENT_TURN_LEFT": "Turn left",
"LANG_LARS_MOVEMENT_TURN_RIGHT": "Turn right",
"LANG_LARS_MOVEMENT_MOONWALK": "Moonwalk",
"LANG_LARS_MOVEMENT_DANCE": "Dance",
"LANG_LARS_MOVEMENT_UPDOWN": "Up-down",
"LANG_LARS_MOVEMENT_PUSHUP": "Push-up",
"LANG_LARS_MOVEMENT_HELLO": "Hello",
"LANG_LARS_MOVEMENT_WAVE": "Wave",
"LANG_LARS_MOVEMENT_LEG_NUMBER": "Leg number",
"LANG_LARS_MOVEMENT_STEPS": "Steps",
"LANG_LARS_MOVEMENT_PERIOD": "Period",
"LANG_LARS_MOVEMENT_DIR": "Direction",
"LANG_LARS_MOVEMENT_SIDE": "Side",
"LANG_LARS_MOVEMENT_TURN_FACTOR": "Turn factor",
"LANG_LARS_MOVEMENT_FORWARD": "Forward",
"LANG_LARS_MOVEMENT_BACKWARD": "Backward",
"LANG_LARS_MOVEMENT_YES": "Yes",
"LANG_LARS_MOVEMENT_NO": "No",
"LANG_LARS_MOVEMENT_TOOLTIP": "Generates movement primitives for a quadruped robot"
}
}
}
}

View File

@ -1,349 +1,200 @@
/* Facilino.LANG_COLOUR_MOVEMENT = '#CECE42';
Blockly.Blocks['espui_prepare_fs'] = { Facilino.LANG_COLOUR_MOVEMENT_WALK = '#8D8D25';
category: 'ESPUI',
colour: '#3357c7',
helpUrl: Facilino.getHelpUrl('espui'),
tags: ['webinterface'],
examples: ['lol.bly'],
init: function() {
var wifiOptions = [
['No', false],
['Yes', true]
];
this.appendDummyInput()
.appendField('Prepare FileSystem (upload once without other in setup code, then omit)');
}
};
Blockly.Arduino['espui_prepare_fs'] = function(block) { Blockly.Blocks['LARS_init'] = {
var wifi_option = block.getFieldValue('wifi_option'); category: Facilino.locales.getKey('LANG_CATEGORY_MOVEMENT'),
Blockly.Arduino.definitions_['define_espui_h'] = '#include <ESPUI.h>'; subcategory: Facilino.locales.getKey('LANG_SUBCATEGORY_WALK'),
Blockly.Arduino.setups_['setup_espui'] = '\n'; helpUrl: Facilino.getHelpUrl('LARS_init'),
Blockly.Arduino.setups_['setup_espui'] += ' ESPUI.prepareFileSystem();\n'; category_colour: Facilino.LANG_COLOUR_MOVEMENT,
return null; colour: Facilino.LANG_COLOUR_MOVEMENT_WALK,
}; tags: [],
examples: [],
init: function () {
this.setPreviousStatement(true,'code');
this.setNextStatement(true,'code');
this.setColour(Facilino.LANG_COLOUR_MOVEMENT_WALK);
this.setTooltip(Facilino.locales.getKey('LANG_LARS_INIT_TOOLTIP'));
}
}
*/ Blockly.Arduino['LARS_movement'] = function() {
Blockly.Blocks['walk_forward'] = { var code='';
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), var movement = this.getFieldValue('MOVEMENT');
helpUrl: Facilino.getHelpUrl('walk_forward'), if (movement==='0')
tags: [], code+='lars.home();\n';
examples: [], else if (movement==='1')
init: function() { code+='lars.hello();\n';
this.setPreviousStatement(true, null); else if (movement==='2')
this.setNextStatement(true, null); code+='lars.wave('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+');\n';
this.appendDummyInput() else if (movement==='3')
.appendField("Walking"); code+='lars.turnL('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '600')+');\n';
this.setColour("#FF00FF"); else if (movement==='4')
this.setTooltip(""); code+='lars.turnR('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '600')+');\n';
else if (movement==='5')
code+='lars.moonwalk('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '5000')+');\n';
else if (movement==='6')
code+='lars.dance('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '600')+');\n';
else if (movement==='7')
code+='lars.upDown('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '5000')+');\n';
else if (movement==='8')
code+='lars.pushUp('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '600')+');\n';
else if (movement==='9')
code+='lars.walk('+this.getFieldValue('FIELD3')+','+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '800')+');\n';
else if (movement==='10')
code+='lars.omniWalk('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '800')+','+this.getFieldValue('FIELD3')+','+(Blockly.Arduino.valueToCode(this, 'INP4', Blockly.Arduino.ORDER_ATOMIC) || '0')+');\n';
return code;
}
} Blockly.Blocks['LARS_movement'] = {
}; category: Facilino.locales.getKey('LANG_CATEGORY_MOVEMENT'),
subcategory: Facilino.locales.getKey('LANG_SUBCATEGORY_WALK'),
Blockly.Arduino['walk_forward'] = function(block) { tags: [],
Blockly.Arduino.setups_['setup_']='robot.init();\n '; helpUrl: Facilino.getHelpUrl('LARS_movement'),
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); examples: [],
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; category_colour: Facilino.LANG_COLOUR_MOVEMENT,
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; colour: Facilino.LANG_COLOUR_MOVEMENT_WALK,
var code=''; init: function() {
code+='robot.walk();\n'; this.setColour(Facilino.LANG_COLOUR_MOVEMENT_WALK);
code+= '\n'; var movement = new Blockly.FieldDropdown([
return code; [Facilino.locales.getKey('LANG_LARS_MOVEMENT_HOME'),'0'],
}; [Facilino.locales.getKey('LANG_LARS_MOVEMENT_HELLO'),'1'],
[Facilino.locales.getKey('LANG_LARS_MOVEMENT_WAVE'),'2'],
Blockly.Blocks['walk_backward'] = { [Facilino.locales.getKey('LANG_LARS_MOVEMENT_TURN_LEFT'),'3'],
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), [Facilino.locales.getKey('LANG_LARS_MOVEMENT_TURN_RIGHT'),'4'],
helpUrl: Facilino.getHelpUrl('walk_backward'), [Facilino.locales.getKey('LANG_LARS_MOVEMENT_MOONWALK'),'5'],
tags: [], [Facilino.locales.getKey('LANG_LARS_MOVEMENT_DANCE'),'6'],
examples: [], [Facilino.locales.getKey('LANG_LARS_MOVEMENT_UPDOWN'),'7'],
init: function() { [Facilino.locales.getKey('LANG_LARS_MOVEMENT_PUSHUP'),'8'],
this.setPreviousStatement(true, null); [Facilino.locales.getKey('LANG_LARS_MOVEMENT_WALK'),'9'],
this.setNextStatement(true, null); [Facilino.locales.getKey('LANG_LARS_MOVEMENT_OMNIWALK'),'10']
this.appendDummyInput() ]);
.appendField("Walking_Back"); this.appendDummyInput().appendField(new Blockly.FieldImage('img/blocks/LARS.svg', 32*options.zoom, 32*options.zoom)).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT'));
this.setColour("#FF00FF"); this.appendDummyInput('').appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_MOVEMENT')).appendField(movement,'MOVEMENT').setAlign(Blockly.ALIGN_RIGHT);
this.setTooltip(""); this.last_movement = -1;
this._inp1_removed = true;
} this._inp2_removed = true;
}; this._inp3_removed = true;
this._inp4_removed = true;
Blockly.Arduino['walk_backward'] = function(block) { this.checkMovement();
Blockly.Arduino.setups_['setup_']='robot.init();\n '; this.last_movement = this.getFieldValue('MOVEMENT');
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); this.setInputsInline(false);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; this.setPreviousStatement(true,'code');
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; this.setNextStatement(true,'code');
var code=''; this.setOutput(false);
code+='robot.walk(0);\n'; this.setTooltip(Facilino.locales.getKey('LANG_LARS_MOVEMENT_TOOLTIP'));
code+= '\n'; },
return code; checkMovement: function() {
}; var _movement = this.getFieldValue('MOVEMENT');
try {
Blockly.Blocks['Turn_R'] = { if (_movement<10)
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), {
helpUrl: Facilino.getHelpUrl('Turn_R'), this._inp4_removed=true;
tags: [], this.removeInput('INP4');
examples: [], }
init: function() { } catch (e) {}
this.setPreviousStatement(true, null); try {
this.setNextStatement(true, null); if (_movement<9)
this.appendDummyInput() {
.appendField("Turn_Right"); this._inp3_removed=true;
this.setColour("#FF00FF"); this.removeInput('INP3');
this.setTooltip(""); }
} catch (e) {}
} try {
}; if (_movement<3)
{
Blockly.Arduino['Turn_R'] = function(block) { this._inp2_removed=true;
Blockly.Arduino.setups_['setup_']='robot.init();\n '; this.removeInput('INP2');
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); }
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; } catch (e) {}
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; try {
var code=''; if (_movement<2)
code+='robot.turnR(1, 550);\n'; {
code+= '\n'; this._inp1_removed=true;
return code; this.removeInput('INP1');
}; }
} catch (e) {}
Blockly.Blocks['Turn_L'] = { if ( _movement === '2') {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), if (this._inp1_removed)
helpUrl: Facilino.getHelpUrl('Turn_L'), {
tags: [], this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_LEG_NUMBER'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT);
examples: [], this._inp1_removed=false;
init: function() { }
this.setPreviousStatement(true, null); else
this.setNextStatement(true, null); try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_LEG_NUMBER'),'TEXT1');}catch (e) {}
this.appendDummyInput() } else if (( _movement >= '3')&&( _movement <= '8')) {
.appendField("Turn_Left"); if (this._inp1_removed)
this.setColour("#FF00FF"); {
this.setTooltip(""); this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT);
this._inp1_removed=false;
} }
}; else
try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1');}catch (e) {}
Blockly.Arduino['Turn_L'] = function(block) { if (this._inp2_removed)
Blockly.Arduino.setups_['setup_']='robot.init();\n '; {
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD','TEXT2')).setAlign(Blockly.ALIGN_RIGHT);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; this._inp2_removed=false;
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; }
var code=''; else
code+='robot.turnL(1, 550);\n'; try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {}
code+= '\n'; } else if ( _movement === '9') {
return code; if (this._inp1_removed)
}; {
this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT);
Blockly.Blocks['PushUp'] = { this._inp1_removed=false;
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), }
helpUrl: Facilino.getHelpUrl('PushUp'), else
tags: [], try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1');}catch (e) {}
examples: [], if (this._inp2_removed)
init: function() { {
this.setPreviousStatement(true, null); this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD'),'TEXT2').setAlign(Blockly.ALIGN_RIGHT);
this.setNextStatement(true, null); this._inp2_removed=false;
this.appendDummyInput() }
.appendField("Push_Up"); else
this.setColour("#FF00FF"); try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {}
this.setTooltip(""); if (this._inp3_removed)
{
} this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([['Forward','0'],['Backward','1']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT);
}; this._inp3_removed=false;
}
Blockly.Arduino['PushUp'] = function(block) { else
Blockly.Arduino.setups_['setup_']='robot.init();\n '; try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_DIR'),'TEXT3'); this.getInput('INP3').removeField('FIELD3'); this.getInput('INP3').appendField(new Blockly.FieldDropdown([['Forward','0'],['Backward','1']]),'FIELD3');}catch (e) {}
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); }
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; else if ( _movement === '10') {
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; if (this._inp1_removed)
var code=''; {
code+='robot.pushUp(1, 600);\n'; this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT);
code+= '\n'; this._inp1_removed=false;
return code; }
}; else
try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_STEPS'),'TEXT1');}catch (e) {}
Blockly.Blocks['UpDown'] = { if (this._inp2_removed)
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), {
helpUrl: Facilino.getHelpUrl('UpDown'), this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD'),'TEXT2').setAlign(Blockly.ALIGN_RIGHT);
tags: [], this._inp2_removed=false;
examples: [], }
init: function() { else
this.setPreviousStatement(true, null); try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {}
this.setNextStatement(true, null); if (this._inp3_removed)
this.appendDummyInput() {
.appendField("Up_Down"); this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([['Yes','true'],['No','false']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT);
this.setColour("#FF00FF"); this._inp3_removed=false;
this.setTooltip(""); }
else
} try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_SIDE'),'TEXT3'); this.getInput('INP3').removeField('FIELD3'); this.getInput('INP3').appendField(new Blockly.FieldDropdown([['Yes','true'],['No','false']]),'FIELD3');}catch (e) {}
}; if (this._inp4_removed)
{
Blockly.Arduino['UpDown'] = function(block) { this.appendValueInput('INP4').setCheck(Number).appendField(Facilino.locales.getKey('LANG_LARS_MOVEMENT_TURN_FACTOR'),'TEXT4').setAlign(Blockly.ALIGN_RIGHT);
Blockly.Arduino.setups_['setup_']='robot.init();\n '; this._inp4_removed=false;
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC); }
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>'; else
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;'; try{this.setFieldValue(Facilino.locales.getKey('LANG_LARS_MOVEMENT_TURN_FACTOR'),'TEXT4');}catch (e) {}
var code='';
code+='robot.upDown(1, 5000);\n'; }
code+= '\n'; },
return code; onchange: function() {
}; if (this.getFieldValue('MOVEMENT') !== this.last_movement) {
this.checkMovement();
Blockly.Blocks['Dance'] = { this.last_movement = this.getFieldValue('MOVEMENT');
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'), }
helpUrl: Facilino.getHelpUrl('Dance'), }
tags: [], };
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Dance");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['Dance'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.dance(1, 600);\n';
code+= '\n';
return code;
};
Blockly.Blocks['Wave'] = {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'),
helpUrl: Facilino.getHelpUrl('Wave'),
tags: [],
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Wave");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['Wave'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.wave();\n';
code+= '\n';
return code;
};
Blockly.Blocks['Slow_Turn_R'] = {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'),
helpUrl: Facilino.getHelpUrl('Slow_Turn_R'),
tags: [],
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Slow_Turn_Right");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['Slow_Turn_R'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.omniWalk(1, 600, true, 1);\n';
code+= '\n';
return code;
};
Blockly.Blocks['Slow_Turn_L'] = {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'),
helpUrl: Facilino.getHelpUrl('Slow_Turn_L'),
tags: [],
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Slow_Turn_Left");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['Slow_Turn_L'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.omniWalk(1, 600, false, 1);\n';
code+= '\n';
return code;
};
Blockly.Blocks['MoonWalk'] = {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'),
helpUrl: Facilino.getHelpUrl('MoonWalk'),
tags: [],
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Moonwalk");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['MoonWalk'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.moonwalkL(1, 5000);\n';
code+= '\n';
return code;
};
Blockly.Blocks['Hello'] = {
category: Facilino.locales.getKey('LANG_CATEGORY_BLOCKS'),
helpUrl: Facilino.getHelpUrl('Hello'),
tags: [],
examples: [],
init: function() {
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.appendDummyInput()
.appendField("Audience_Hello");
this.setColour("#FF00FF");
this.setTooltip("");
}
};
Blockly.Arduino['Hello'] = function(block) {
Blockly.Arduino.setups_['setup_']='robot.init();\n ';
var input_shall_walk = Blockly.Arduino.valueToCode(block, 'shall_walk', Blockly.Arduino.ORDER_ATOMIC);
Blockly.Arduino.definitions_['define_lars_h']='#include <LARS.h>';
Blockly.Arduino.definitions_['declare_var_define_robot']='LARS robot;';
var code='';
code+='robot.hello();\n';
code+= '\n';
return code;
};

View File

@ -16,15 +16,15 @@
*/ */
LARS::LARS(): reverse{0, 0, 0, 0, 0, 0, 0, 0}, trim{0, 0, 0, 0, 0, 0, 0, 0} { LARS::LARS(int FRH = 26, int FLH = 25, int BRH = 17, int BLH = 16, int FRL = 27, int FLL = 5, int BRL = 23, int BLL = 13): reverse{0, 0, 0, 0, 0, 0, 0, 0}, trim{0, 0, 0, 0, 0, 0, 0, 0} {
board_pins[FRONT_RIGHT_HIP] = 26; // front right inner board_pins[FRONT_RIGHT_HIP] = FRH; // front right inner
board_pins[FRONT_LEFT_HIP] = 25; // front left inner board_pins[FRONT_LEFT_HIP] = FLH; // front left inner
board_pins[BACK_RIGHT_HIP] = 17; // back right inner board_pins[BACK_RIGHT_HIP] = BRH; // back right inner
board_pins[BACK_LEFT_HIP] = 16; // back left inner board_pins[BACK_LEFT_HIP] = BLH; // back left inner
board_pins[FRONT_RIGHT_LEG] = 27; // front right outer board_pins[FRONT_RIGHT_LEG] = FRL; // front right outer
board_pins[FRONT_LEFT_LEG] = 5; // front left outer // POSITIONS LOOKING FROM THE MIDDLE OF THE ROBOT!!!!! board_pins[FRONT_LEFT_LEG] = FLL; // front left outer // POSITIONS LOOKING FROM THE MIDDLE OF THE ROBOT!!!!!
board_pins[BACK_RIGHT_LEG] = 23; // back right outer board_pins[BACK_RIGHT_LEG] = BRL; // back right outer
board_pins[BACK_LEFT_LEG] = 13; // back left outer board_pins[BACK_LEFT_LEG] = BLL; // back left outer
} }
void LARS::init() { void LARS::init() {

View File

@ -26,7 +26,8 @@ class LARS {
public: public:
LARS(); LARS();
void init(); void init();
void walk(int dir = 0, float steps = 1, float T = 800); // T initial 400 void init(int FRH, int FLH, int BRH, int BLH, int FRL, int FLL, int BRL, int BLL);
void walk(int dir = 1, float steps = 1, float T = 800); // T initial 400
void omniWalk(float steps, float T, bool side, float turn_factor); void omniWalk(float steps, float T, bool side, float turn_factor);
void turnL(float steps, float period); void turnL(float steps, float period);
void turnR(float steps, float period); void turnR(float steps, float period);