software engineering (software reuse) in Arduino

Hi, how are you? Greetings, everyone. First of all I'm a mechatronics engineer with experience in the hardware (Arduino) part and I want to start my thesis focusing on Arduino and software engineering or more specifically on software reuse. The main idea is to focus on these two aspects of educational robot construction. Looking at what projects or tools exist I have noticed that there are not many tools that can help make software reusable with a focus on Arduino.
My question is if you have seen any tools or projects that can help in this area? I am specifically looking for projects that will improve or streamline the production of software for Arduino.
It is important to clarify that I have searched and found that you can use ROS with Arduino and provide it with some special features, but my personal opinion is that the truth is that the process of installing ROS plus the communication does not help much or rather makes the process of programming and implementation more difficult. I appreciate any help or information.
PS: sorry for my bad English but it is not my native language

andbrs:
Hi, how are you? Greetings, everyone. First of all I'm a mechatronics engineer with experience in the hardware (Arduino) part and I want to start my thesis focusing on Arduino and software engineering or more specifically on software reuse. The main idea is to focus on these two aspects of educational robot construction. Looking at what projects or tools exist I have noticed that there are not many tools that can help make software reusable with a focus on Arduino.
My question is if you have seen any tools or projects that can help in this area? I am specifically looking for projects that will improve or streamline the production of software for Arduino.
It is important to clarify that I have searched and found that you can use ROS with Arduino and provide it with some special features, but my personal opinion is that the truth is that the process of installing ROS plus the communication does not help much or rather makes the process of programming and implementation more difficult. I appreciate any help or information.
PS: sorry for my bad English but it is not my native language

Your English is fine, but your posting is just ramblings on something.

What do you mean and expect software reuse is? If you write your programs using mainly functions, they will be reusable from program to program. I think most of us do that.

You write "special features" but ramble on without ever discussing what you mean or give examples.

What is ROS? What special features will you add?

If you are just beginning programming, then the problem is not in the language or missing special features, it normally is in logical thinking and breaking problems down into manageable pieces and testing your program and logic as you write the program, not writing a mass and then trying to test it.

Paul

Thank you for responding.
1.
When I talk about software reuse, it means being able to use parts of the code of one program in another because they have similar characteristics. Beyond that most of us do reuse but in this case I would like to be able to do this in a systematic way (make a process of abstraction, a model, metamodel, DLS, etc.). In the end I will develop a tool that will help you to do this.

  1. With respect to ROS it is a framework that allows to improve the development of software for robots, it is free software and therefore, many libraries have been created (cinematic, artificial vision, etc) that can be reused for several types of robots, but that is not contemplated for arduino due to the limitations of the computer capacity.

And finally, I am not starting to program, in fact I have done quite a few projects in Arduino, but, now that I have gone into software engineering (good programming practices, reuse, software product lines) I want to focus my thesis on two fields that I like (software reuse and arduino).

So I was asking if there is any tool, process or methodology that allows to make software reuse in a systematic way in Arduino? if they had learned something.

Paul_KD7HB:
If you are just beginning programming, then the problem is not in the language or missing special features, it normally is in logical thinking and breaking problems down into manageable pieces and testing your program and logic as you write the program, not writing a mass and then trying to test it.

Paul

Agree 100% You gotta' go through the entire "Wax on, wax off" routine.

-jin lee

andbrs:
Looking at what projects or tools exist I have noticed that there are not many tools that can help make software reusable with a focus on Arduino.

There are dozens, maybe hundreds of code libraries for Arduinos - doesn't that constitute well established reusable software.

There are very few Arduino projects mentioned in these Forums that don't use at least one of those libraries.

...R

Perhaps you should look at C++ a bit more.

Paul

andbrs, It seems your having a hard time seeing forest for the trees.

-jim lee

It seems your having a hard time seeing forest for the trees.

Yeah. I'd argue that that Arduino actively encourages code reuse, because:

  • There are large number of published libraries. Often, and arduino sketch consists of finding the rigt libraries, and putting a small amount of new code around them.
  • Same thing, using the examples that come with most libraries.
  • Same thing, given the large amounts of user sketch code that people just share on the web.

Now, a weakness is that the Arduino IDE does not make it easy for users (sketch writers) to move "reusable code" from their original sketches to a library for easy re-use...

Eww.. Don't get me started on the IDE thing!

-jim lee

andbrs:
Looking at what projects or tools exist I have noticed that there are not many tools that can help make software reusable with a focus on Arduino.

Good software engineering comes down to programmers following good coding practices. You can't rely on a tool for something like that. That is, unless you want to design and implement a sophisticated Arduino auto-coder to generate full sketches based on project design criteria...