this skill blinks the Arduino Led #13 based on commands comming from
the laptop(when you say blink, the Arduino/Elegoo Led blinks).
the merit of the skill is in showing how to condition Arduino code to run based on commands comming
from the laptop, more specifically, a livingrimoire skill outside the Arduino.
there are 2 parts to adding the skill:
1. adding the skill to the Arduino
in the Arduino IDE:
tools: select board and port connecting to the Arduino/elegoo
Sketch->Include Library->Add .ZIP Library...
select the LivinGrimoireLight290724.zip
LivinGrimoireLight_link
add the temperature skill files:
DiBlinker.h
Code:#ifndef DiBlinker_H #define DiBlinker_H // using Arduino hardware codes outside main: #include <Arduino.h> #include "LivinGrimoireLight.h" #include "DiHelloWorld.h" // example hello world by blinking default Led #13 once class DiBlinker : public Skill { private: Led _l1; public: DiBlinker(Led l1); virtual void inOut(byte ear, byte skin, byte eye); }; #endif
add: DiBlinker.cpp
main Arduino code:Code:#include <Arduino.h> #include "DiBlinker.h" #include "LivinGrimoireLight.h" #include "DiHelloWorld.h" DiBlinker::DiBlinker(Led l1) { Serial.begin(9600); _l1 = l1;_l1.init(); } void DiBlinker::inOut(byte ear, byte skin, byte eye) { // Check if data is available to read if (Serial.available() > 0) { // Read the incoming byte char data = Serial.read(); // Blink the LED if the received data is '1' if (data == '1') { // turn the LED on (HIGH is the voltage level) _l1.on(); delay(1000); // Wait for 1000 millisecond(s) // turn the LED off by making the voltage LOW _l1.off(); delay(1000); // Wait for 1000 millisecond(s) } } }
2. adding the skill to the laptop (PyCharm IDE)Code:#include "DiBlinker.h" #include "LivinGrimoireLight.h" Chobit* c1 = new Chobit(); void setup() { Led led1(13); // used to initialize the Hello World skill Skill* s2 = new DiBlinker(led1); // example skill created c1->addSkill(s2); } void loop() { c1->think(0, 0, 0); }
(terminal) pip install pyserial
#######################################################
adding the DLC_Arduino_skills from the python directory:
file name: DLC_Arduino_skills.py
Arduino_skills_DLC_link
location: LivinGrimoire python/Python files/protoco; 2501/Arduino DLCs
in the main PyCharm IDE file add this function(Python code):
this will add skills via .py files with DLC in their file name.Code:import os # noinspection PyUnusedLocal def call_add_DLC_skills(brain: Brain): for file in os.listdir('.'): if file.endswith('.py') and 'DLC' in file: module_name = file[:-3] exec(f"import {module_name}") exec(f"{module_name}.add_DLC_skills(brain)") in the running code area add: call_add_DLC_skills(brain)
note the above walkthrough includes some initial setup for elaboration.
this means adding additional skills is even shorter:
adding the livingrimoirelight library, adding the code in the python main program file
just add the skill files, and 1 code line per skill on the Arduino/Elegoo main code file.





Reply With Quote