8/23/21
Hello all!
I believe this week's assignment was to create specific blocks with ezDisplay functionality. There were three blocks to my recollection we were supposed to create being, delay, clear and printString. If I'm missing something please post a comment so I can get to work before or ON Tuesday.
One thing that I am not too clear on is if we are going to be able to import the libraries that ezDisplay requires. If that is possible, (and I have no idea how it's done! lol), then I guess the C code generation is as simple as the function signature. At the very least we need to find a way to import the library that the C functions that we will need call upon(for example, clear(), or printChar(), printString()). I wasn't sure the direction we were planning to go so I created C code to mirror the C code for the actual functions themselves as you can see in my screenshots. Delay was already given, so no problem there.
Looking forward to discussing more on how we should proceed on Tuesday! One silver lining to this exercise for me is that I believe we can now create ANY block to serve ANY function so long as the proper libraries are referenced. Please teach me how to do this on Tuesday! OR If it is assigned to us I will google my brains out this week.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
There is a way to define things. Two examples:
In Arduino, a pin needs to have its "mode" set in the setup() function before it can be used. Therefore, every block that takes input from a block tells Blockly to add a "setup". For example, this code is from the block that reads the status of a pin:
Blockly.Arduino.setups_["setup_output_" + pin] = "pinMode(" + pin + ", INPUT_PULLUP);")
Notice how this is isn't returned, but is instead added to the setups_ list.
There are also "definitions" in Blockly which are at the top of the file, i.e. NOT in setup(). Functionality like controlling servo motors requires the library (which is built-in, but not imported/included by default) Servo.h. Therefore, we find this in the servo block generator to do the include properly:
Blockly.Arduino.definitions_['define_servo'] = '#include <Servo.h>'
You can use code like this to create include calls and anything else that is not part of your block but is required to run its code. Just change the name (define_servo in the second example) and the code at the end.
Hope this helps.
Are you sure? yes | no
Thanks, Dante!
Are you sure? yes | no
Can you walk me through this tomorrow before our meeting? I'm at about 75% in understanding ;)
Are you sure? yes | no
Gladly!
Are you sure? yes | no
Additionally, just scouring through all the code.. Blocklyduino developers are geniuses. It's so meticulously fine-tuned, detailed, well thought out. I'm amazed that people were able to do this and someday hope to get on that level.
Are you sure? yes | no
👍 glad that you're inspired!
Are you sure? yes | no
Nice Richard! To answer your question regarding the tasks, we also discussed setfontsize
Are you sure? yes | no
I'll get on it!
Are you sure? yes | no