From 2a505a3bb58faa4c80be61207803c8babfcfff89 Mon Sep 17 00:00:00 2001 From: roboticafacil Date: Tue, 12 Dec 2017 22:28:27 +0100 Subject: [PATCH] modified: examples/BasicMoves/BasicMoves.ino new file: hippie_blocks.js new file: img/blocks/hippie.svg new file: img/blocks/hippie_RL.svg new file: img/blocks/hippie_RR.svg new file: img/blocks/hippie_YL.svg new file: img/blocks/hippie_YR.svg new file: lang/HIPPIE.json modified: src/Hippie.cpp modified: src/Hippie.h --- examples/BasicMoves/BasicMoves.ino | 4 +- hippie_blocks.js | 245 +++++++++++++++++++++++++++++ img/blocks/hippie.svg | 79 ++++++++++ img/blocks/hippie_RL.svg | 85 ++++++++++ img/blocks/hippie_RR.svg | 85 ++++++++++ img/blocks/hippie_YL.svg | 85 ++++++++++ img/blocks/hippie_YR.svg | 85 ++++++++++ lang/HIPPIE.json | 43 +++++ src/Hippie.cpp | 4 +- src/Hippie.h | 4 +- 10 files changed, 713 insertions(+), 6 deletions(-) create mode 100644 hippie_blocks.js create mode 100644 img/blocks/hippie.svg create mode 100644 img/blocks/hippie_RL.svg create mode 100644 img/blocks/hippie_RR.svg create mode 100644 img/blocks/hippie_YL.svg create mode 100644 img/blocks/hippie_YR.svg create mode 100644 lang/HIPPIE.json diff --git a/examples/BasicMoves/BasicMoves.ino b/examples/BasicMoves/BasicMoves.ino index 88181d2..87c15f3 100644 --- a/examples/BasicMoves/BasicMoves.ino +++ b/examples/BasicMoves/BasicMoves.ino @@ -28,7 +28,7 @@ void loop() delay(500); // backward, shit piece - hippie.new_walk(2, 4, 750); + hippie.new_walk(4, 750, 2); hippie.home(); delay(500); @@ -38,7 +38,7 @@ void loop() delay(500); // right - hippie.new_turn(2); + hippie.new_turn(2,1000,2); hippie.home(); delay(500); diff --git a/hippie_blocks.js b/hippie_blocks.js new file mode 100644 index 0000000..12b6568 --- /dev/null +++ b/hippie_blocks.js @@ -0,0 +1,245 @@ +Facilino.LANG_COLOUR_MOVEMENT = '#CECE42'; +Facilino.LANG_COLOUR_MOVEMENT_WALK = '#8D8D25'; + +Blockly.Blocks['HIPPIE_init'] = { + category: Facilino.locales.getKey('LANG_CATEGORY_MOVEMENT'), + subcategory: Facilino.locales.getKey('LANG_SUBCATEGORY_WALK'), + category_colour: Facilino.LANG_COLOUR_MOVEMENT, + colour: Facilino.LANG_COLOUR_MOVEMENT_WALK, + helpUrl: Facilino.getHelpUrl('HIPPIE_init'), + tags: [], + examples: [], + init: function () { + this.appendDummyInput('').appendField(new Blockly.FieldImage('img/blocks/hippie.svg', 32*options.zoom, 32*options.zoom)).appendField(Facilino.locales.getKey('LANG_MOVEMENT_HIPPIE_ROBOT')); + this.appendValueInput('YR').appendField(new Blockly.FieldImage('img/blocks/hippie_YR.svg', 24*options.zoom, 24*options.zoom)).appendField(Facilino.locales.getKey('LANG_MOVEMENT_HIPPIE_YR')).appendField(new Blockly.FieldImage('img/blocks/pwm_signal.svg', 24*options.zoom, 24*options.zoom)).setAlign(Blockly.ALIGN_RIGHT); + this.appendValueInput('YL').appendField(new Blockly.FieldImage('img/blocks/hippie_YL.svg', 24*options.zoom, 24*options.zoom)).appendField(Facilino.locales.getKey('LANG_MOVEMENT_HIPPIE_YL')).appendField(new Blockly.FieldImage('img/blocks/pwm_signal.svg', 24*options.zoom, 24*options.zoom)).setAlign(Blockly.ALIGN_RIGHT); + this.appendValueInput('RR').appendField(new Blockly.FieldImage('img/blocks/hippie_RR.svg', 24*options.zoom, 24*options.zoom)).appendField(Facilino.locales.getKey('LANG_MOVEMENT_HIPPIE_RR')).appendField(new Blockly.FieldImage('img/blocks/pwm_signal.svg', 24*options.zoom, 24*options.zoom)).setAlign(Blockly.ALIGN_RIGHT); + this.appendValueInput('RL').appendField(new Blockly.FieldImage('img/blocks/hippie_RL.svg', 24*options.zoom, 24*options.zoom)).appendField(Facilino.locales.getKey('LANG_MOVEMENT_HIPPIE_RL')).appendField(new Blockly.FieldImage('img/blocks/pwm_signal.svg', 24*options.zoom, 24*options.zoom)).setAlign(Blockly.ALIGN_RIGHT); + this.setPreviousStatement(true,'code'); + this.setNextStatement(true,'code'); + this.setColour(Facilino.LANG_COLOUR_MOVEMENT_WALK); + this.setTooltip(Facilino.locales.getKey('LANG_HIPPIE_INIT_TOOLTIP')); + } + }; + + Blockly.Arduino['HIPPIE_init'] = function(block) { + var code=''; + var input_YR = Blockly.Arduino.valueToCode(this,'YR',Blockly.Arduino.ORDER_ATOMIC) || '26'; + var input_YL = Blockly.Arduino.valueToCode(this,'YL',Blockly.Arduino.ORDER_ATOMIC) || '25'; + var input_RR = Blockly.Arduino.valueToCode(this,'RR',Blockly.Arduino.ORDER_ATOMIC) || '17'; + var input_RL = Blockly.Arduino.valueToCode(this,'RL',Blockly.Arduino.ORDER_ATOMIC) || '16'; + Blockly.Arduino.definitions_['define_hippie_h'] = '#include '; + Blockly.Arduino.definitions_['declare_var_define_hippie']='Hippie hippie;\n'; + Blockly.Arduino.setups_['setup_hippie_init'] = 'hippie.init('+input_YR+','+input_YL+','+input_RR+','+input_RL+');\n'; + return code; + }; + + Blockly.Arduino['HIPPIE_movement'] = function() { + var code=''; + var movement = this.getFieldValue('MOVEMENT'); + if (movement==='0') + code+='hippie.home();\n'; + else if (movement==='1') + code+='hippie.jump('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '600')+');\n'; + else if (movement==='2') + code+='hippie.walk('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '4')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1000')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='3') + code+='hippie.turn('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '4')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1000')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='4') + code+='hippie.bend('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1400')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='5') + code+='hippie.shakeLeg('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '2000')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='6') + code+='hippie.updown('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1000')+','+(Blockly.Arduino.valueToCode(this, 'INP3', Blockly.Arduino.ORDER_ATOMIC) || '40')+');\n'; + else if (movement==='7') + code+='hippie.swing('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1000')+','+(Blockly.Arduino.valueToCode(this, 'INP3', Blockly.Arduino.ORDER_ATOMIC) || '40')+');\n'; + else if (movement==='8') + code+='hippie.tiptoeSwing('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '900')+','+(Blockly.Arduino.valueToCode(this, 'INP3', Blockly.Arduino.ORDER_ATOMIC) || '40')+');\n'; + else if (movement==='9') + code+='hippie.jitter('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '500')+','+(Blockly.Arduino.valueToCode(this, 'INP3', Blockly.Arduino.ORDER_ATOMIC) || '50')+');\n'; + else if (movement==='10') + code+='hippie.ascendingTurn('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '900')+','+(Blockly.Arduino.valueToCode(this, 'INP3', Blockly.Arduino.ORDER_ATOMIC) || '50')+');\n'; + else if (movement==='11') + code+='hippie.moonwalker('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '900')+','+(Blockly.Arduino.valueToCode(this, 'INP4', Blockly.Arduino.ORDER_ATOMIC) || '50')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='12') + code+='hippie.crusaito('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '900')+','+(Blockly.Arduino.valueToCode(this, 'INP4', Blockly.Arduino.ORDER_ATOMIC) || '20')+','+this.getFieldValue('FIELD3')+');\n'; + else if (movement==='13') + code+='hippie.flapping('+(Blockly.Arduino.valueToCode(this, 'INP1', Blockly.Arduino.ORDER_ATOMIC) || '1')+','+(Blockly.Arduino.valueToCode(this, 'INP2', Blockly.Arduino.ORDER_ATOMIC) || '1000')+','+(Blockly.Arduino.valueToCode(this, 'INP4', Blockly.Arduino.ORDER_ATOMIC) || '50')+','+this.getFieldValue('FIELD3')+');\n'; + return code; + } + + Blockly.Blocks['HIPPIE_movement'] = { + category: Facilino.locales.getKey('LANG_CATEGORY_MOVEMENT'), + subcategory: Facilino.locales.getKey('LANG_SUBCATEGORY_WALK'), + tags: [], + helpUrl: Facilino.getHelpUrl('LARS_movement'), + examples: [], + category_colour: Facilino.LANG_COLOUR_MOVEMENT, + colour: Facilino.LANG_COLOUR_MOVEMENT_WALK, + init: function() { + this.setColour(Facilino.LANG_COLOUR_MOVEMENT_WALK); + var movement = new Blockly.FieldDropdown([ + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_HOME'),'0'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_JUMP'),'1'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_WALK'),'2'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_TURN'),'3'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_BEND'),'4'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_SHAKE_LEG'),'5'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_UPDOWN'),'6'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_SWING'),'7'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_TIPTOE_SWING'),'8'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_JITTER'),'9'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_ASCENDING_TURN'),'10'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_MOONWALKER'),'11'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_CRUSAITO'),'12'], + [Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_FLAPPING'),'13'] + ]); + this.appendDummyInput().appendField(new Blockly.FieldImage('img/blocks/hippie.svg', 32*options.zoom, 32*options.zoom)).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT')); + this.appendDummyInput('').appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_MOVEMENT')).appendField(movement,'MOVEMENT').setAlign(Blockly.ALIGN_RIGHT); + this.last_movement = -1; + this._inp1_removed = true; + this._inp2_removed = true; + this._inp3_removed = true; + this._inp4_removed = true; + this.checkMovement(); + this.last_movement = this.getFieldValue('MOVEMENT'); + this.setInputsInline(false); + this.setPreviousStatement(true,'code'); + this.setNextStatement(true,'code'); + this.setOutput(false); + this.setTooltip(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_TOOLTIP')); + }, + checkMovement: function() { + var _movement = this.getFieldValue('MOVEMENT'); + try { + if (_movement<11) + { + this._inp4_removed=true; + this.removeInput('INP4'); + } + } catch (e) {} + try { + if (((_movement>=6)&&(_movement<=10)&&(this.last_movement>=2)&&(this.last_movement<=5))||((_movement>=2)&&(_movement<=5)&&(this.last_movement>=6)&&(this.last_movement<=10))) + { + this._inp3_removed=true; + this.removeInput('INP3'); + } + } catch (e) {} + try { + if (_movement<2) + { + this._inp3_removed=true; + this.removeInput('INP3'); + } + } catch (e) {} + try { + if (_movement<1) + { + this._inp1_removed=true; + this.removeInput('INP1'); + this._inp2_removed=true; + this.removeInput('INP2'); + } + } catch (e) {} + if ( _movement == 1) { + if (this._inp1_removed) + { + this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT); + this._inp1_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1');}catch (e) {} + if (this._inp2_removed) + { + this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD','TEXT2')).setAlign(Blockly.ALIGN_RIGHT); + this._inp2_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {} + } else if (( _movement >= 2)&&( _movement <= 10)) { + if (this._inp1_removed) + { + this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT); + this._inp1_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1');}catch (e) {} + if (this._inp2_removed) + { + this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD','TEXT2')).setAlign(Blockly.ALIGN_RIGHT); + this._inp2_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {} + if (this._inp3_removed) + { + if (_movement==2) + this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_FORWARD'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_BACKWARD'),'1']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT); + else if (_movement<=5) + this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_LEFT'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_RIGHT'),'1']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT); + else + this.appendValueInput('INP3').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_HEIGHT'),'TEXT3').setAlign(Blockly.ALIGN_RIGHT); + this._inp3_removed=false; + } + else { + + try{ + this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3'); this.getInput('INP3').removeField('FIELD3'); + if (_movement==2) + this.getInput('INP3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_FORWARD'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_BACKWARD'),'1']]),'FIELD3'); + else if (_movement<=5) + this.getInput('INP3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_LEFT'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_RIGHT'),'1']]),'FIELD3'); + else + this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_HEIGHT'),'TEXT3'); + }catch (e) {} + } + } + else{ + if (this._inp1_removed) + { + this.appendValueInput('INP1').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1').setAlign(Blockly.ALIGN_RIGHT); + this._inp1_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_STEPS'),'TEXT1');}catch (e) {} + if (this._inp2_removed) + { + this.appendValueInput('INP2').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD','TEXT2')).setAlign(Blockly.ALIGN_RIGHT); + this._inp2_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_PERIOD'),'TEXT2');}catch (e) {} + if (this._inp3_removed) + { + if (_movement==11) + this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_LEFT'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_RIGHT'),'1']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT); + else + this.appendDummyInput('INP3').appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_FORWARD'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_BACKWARD'),'1']]),'FIELD3').setAlign(Blockly.ALIGN_RIGHT); + this._inp3_removed=false; + } + else { + + try{ + this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_DIR'),'TEXT3'); this.getInput('INP3').removeField('FIELD3'); + if (_movement==11) + this.getInput('INP3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_LEFT'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_RIGHT'),'1']]),'FIELD3'); + else + this.getInput('INP3').appendField(new Blockly.FieldDropdown([[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_FORWARD'),'0'],[Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_BACKWARD'),'1']]),'FIELD3'); + }catch (e) {} + } + if (this._inp4_removed) + { + this.appendValueInput('INP4').setCheck(Number).appendField(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_HEIGHT','TEXT4')).setAlign(Blockly.ALIGN_RIGHT); + this._inp4_removed=false; + } + else + try{this.setFieldValue(Facilino.locales.getKey('LANG_HIPPIE_MOVEMENT_HEIGHT'),'TEXT4');}catch (e) {} + } + }, + onchange: function() { + if (this.getFieldValue('MOVEMENT') !== this.last_movement) { + this.checkMovement(); + this.last_movement = this.getFieldValue('MOVEMENT'); + } + } + }; \ No newline at end of file diff --git a/img/blocks/hippie.svg b/img/blocks/hippie.svg new file mode 100644 index 0000000..03f7a70 --- /dev/null +++ b/img/blocks/hippie.svg @@ -0,0 +1,79 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/img/blocks/hippie_RL.svg b/img/blocks/hippie_RL.svg new file mode 100644 index 0000000..907ad04 --- /dev/null +++ b/img/blocks/hippie_RL.svg @@ -0,0 +1,85 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/img/blocks/hippie_RR.svg b/img/blocks/hippie_RR.svg new file mode 100644 index 0000000..d5bf8ca --- /dev/null +++ b/img/blocks/hippie_RR.svg @@ -0,0 +1,85 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/img/blocks/hippie_YL.svg b/img/blocks/hippie_YL.svg new file mode 100644 index 0000000..a326706 --- /dev/null +++ b/img/blocks/hippie_YL.svg @@ -0,0 +1,85 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/img/blocks/hippie_YR.svg b/img/blocks/hippie_YR.svg new file mode 100644 index 0000000..4edf473 --- /dev/null +++ b/img/blocks/hippie_YR.svg @@ -0,0 +1,85 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/lang/HIPPIE.json b/lang/HIPPIE.json new file mode 100644 index 0000000..53b38b6 --- /dev/null +++ b/lang/HIPPIE.json @@ -0,0 +1,43 @@ +{ + "langs": + { + "en-GB": + { + "keys": + { + "LANG_SUBCATEGORY_WALK": "Robot walk", + "LANG_MOVEMENT_HIPPIE_ROBOT": "Define robot", + "LANG_MOVEMENT_HIPPIE_YR": " Leg 1", + "LANG_MOVEMENT_HIPPIE_YL": " Leg 2", + "LANG_MOVEMENT_HIPPIE_RR": "Ankle 1", + "LANG_MOVEMENT_HIPPIE_RL": "Ankle 2", + "LANG_HIPPIE_INIT_TOOLTIP": "Defines the servo pins for a quadruped robot.", + "LANG_HIPPIE_MOVEMENT_HOME": "Home", + "LANG_HIPPIE_MOVEMENT_JUMP": "Jump", + "LANG_HIPPIE_MOVEMENT_WALK": "Walk", + "LANG_HIPPIE_MOVEMENT_TURN": "Turn", + "LANG_HIPPIE_MOVEMENT_BEND": "Bend", + "LANG_HIPPIE_MOVEMENT_SHAKE_LEG": "Shake leg", + "LANG_HIPPIE_MOVEMENT_UPDOWN": "Up-down", + "LANG_HIPPIE_MOVEMENT_SWING": "Swing", + "LANG_HIPPIE_MOVEMENT_TIPTOE_SWING": "Tip-toe swing", + "LANG_HIPPIE_MOVEMENT_JITTER": "Jitter", + "LANG_HIPPIE_MOVEMENT_ASCENDING_TURN": "Ascending Turn", + "LANG_HIPPIE_MOVEMENT_MOONWALKER": "Moonwalker", + "LANG_HIPPIE_MOVEMENT_CRUSAITO": "Crusaito", + "LANG_HIPPIE_MOVEMENT_FLAPPING": "Flapping", + "LANG_HIPPIE_MOVEMENT_MOVEMENT": "Movement", + "LANG_HIPPIE_MOVEMENT": "Move robot", + "LANG_HIPPIE_MOVEMENT_TOOLTIP": "Generates movement primitives for a hip-less robot", + "LANG_HIPPIE_MOVEMENT_STEPS": "Steps", + "LANG_HIPPIE_MOVEMENT_PERIOD": "Period", + "LANG_HIPPIE_MOVEMENT_DIR": "Direction", + "LANG_HIPPIE_MOVEMENT_HEIGHT": "Height", + "LANG_HIPPIE_MOVEMENT_FORWARD": "Forward", + "LANG_HIPPIE_MOVEMENT_BACKWARD": "Backward", + "LANG_HIPPIE_MOVEMENT_LEFT": "Left", + "LANG_HIPPIE_MOVEMENT_RIGHT": "Right" + } + } + } +} \ No newline at end of file diff --git a/src/Hippie.cpp b/src/Hippie.cpp index 24c02aa..3cdbddf 100644 --- a/src/Hippie.cpp +++ b/src/Hippie.cpp @@ -263,7 +263,7 @@ void Hippie::bend (int steps, int T, int dir){ //-- T: Period of one steps //-- dir: direction of movement //-------------------------------------------------------- -void Hippie::new_walk(int dir, float steps, int T){ +void Hippie::new_walk(float steps, int T, int dir){ if(dir==1){ // Positions of walking int Pos_A[4] = {90,90,180, 90}; @@ -329,7 +329,7 @@ void Hippie::new_walk(int dir, float steps, int T){ //-- T: Period of one steps //-- dir: direction of movement //-------------------------------------------------------- -void Hippie::new_turn(int dir, float steps, int T){ +void Hippie::new_turn(float steps, int T, int dir){ //LEFT if (dir==1) { // Positions of turning diff --git a/src/Hippie.h b/src/Hippie.h index 21d24c1..65485a6 100644 --- a/src/Hippie.h +++ b/src/Hippie.h @@ -53,8 +53,8 @@ class Hippie void test_pos(); - void new_walk(int dir = FORWARD, float steps =4, int T=750); - void new_turn(int dir = LEFT, float steps =2, int T=1000); + void new_walk(float steps =4, int T=750, int dir = FORWARD); + void new_turn(float steps =2, int T=1000, int dir = LEFT); private: