Arduino OOP you own this product

'); $(document.body).append('
loading reading lists ...
'); function adjustReadingListIcon(isInReadingList){ $readingListToggle.toggleClass("fa-plus", !isInReadingList); $readingListToggle.toggleClass("fa-check", isInReadingList); var tooltipMessage = isInReadingList ? "edit in reading lists" : "add to reading list"; $readingListToggle.attr("title", tooltipMessage); $readingListToggle.attr("data-original-title", tooltipMessage); } $.ajax({ url: "/readingList/isInReadingList", data: { productId: 2932 } }).done(function (data) { adjustReadingListIcon(data && data.hasProductInReadingList); }).catch(function(e){ console.log(e); adjustReadingListIcon(false); }); $readingListToggle.on("click", function(){ if(codePromise == null){ showToast() } loadCode().then(function(store){ store.requestReadingListSpecificationForProduct({ id: window.readingListsServerVars.externalId, manningId: window.readingListsServerVars.productId, title: window.readingListsServerVars.title }); ReadingLists.ReactDOM.render( ReadingLists.React.createElement(ReadingLists.ManningOnlineReadingListModal, { store: store, }), document.getElementById("reading-lists-modal") ); }).catch(function(e){ console.log("Error loading code reading list code"); }); }); var codePromise var readingListStore function loadCode(){ if(codePromise) { return codePromise } return codePromise = new Promise(function (resolve, reject){ $.getScript(window.readingListsServerVars.libraryLocation).done(function(){ hideToast() readingListStore = new ReadingLists.ReadingListStore( new ReadingLists.ReadingListProvider( new ReadingLists.ReadingListWebProvider( ReadingLists.SourceApp.marketplace, getDeploymentType() ) ) ); readingListStore.onReadingListChange(handleChange); readingListStore.onReadingListModalChange(handleChange); resolve(readingListStore); }).catch(function(){ hideToast(); console.log("Error downloading reading lists source"); $readingListToggle.css("display", "none"); reject(); }); }); } function handleChange(){ if(readingListStore != null) { adjustReadingListIcon(readingListStore.isInAtLeastOneReadingList({ id: window.readingListsServerVars.externalId, manningId: window.readingListsServerVars.productId })); } } var $readingListToast = $("#reading-list-toast"); function showToast(){ $readingListToast.css("display", "flex"); setTimeout(function(){ $readingListToast.addClass("shown"); }, 16); } function hideToast(){ $readingListToast.removeClass("shown"); setTimeout(function(){ $readingListToast.css("display", "none"); }, 150); } function getDeploymentType(){ switch(window.readingListsServerVars.deploymentType){ case "development": case "test": return ReadingLists.DeploymentType.dev; case "qa": return ReadingLists.DeploymentType.qa; case "production": return ReadingLists.DeploymentType.prod; case "docker": return ReadingLists.DeploymentType.docker; default: console.error("Unknown deployment environment, defaulting to production"); return ReadingLists.DeploymentType.prod; } } }); } });
Learn How to Use OOP with Arduino through a Step-By-Step Project

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Look inside

Do you want to write Arduino code that you can easily read, modify, and share with other Arduino developers? Do you already know OOP (object oriented programming), and you want to know how to apply it to Arduino?

From what I’ve seen, OOP is not frequently used with Arduino (in libraries, yes, but by most users, no). I noticed this when I got started using Arduino and created a few projects. My initial background was in software engineering, not electronics engineering, so I had a good foundation with OOP applied to desktop software or web development.

When coming to Arduino, my thought was why not use OOP on Arduino (because it’s possible!). Not many people do it, but it made my programs much more scalable and easy to read—and it worked great. Now, when I write Arduino programs, I almost always use OOP.

Seeing that there is a lack of structured resources on the internet to learn how to write OOP code for Arduino, I decided to create this course. I have packaged several years of my experience into this course so you can learn the most important stuff, starting directly with the best practices, and all that in just a few hours.

At the end of this course, you will be able to write clean Arduino code with OOP, rewrite your own projects using OOP, and create a clean and super easy-to-use OOP Arduino library.


Distributed by Manning Publications

This course was created independently by Edouard Renard and is distributed by Manning through our exclusive liveVideo platform.

prerequisites

  • Knowledge about basic Arduino programs with basic hardware components.
  • Understanding of the basics of Arduino time functionalities (millis, delay, etc).

about the instructor

Edouard Renard is a software engineer, entrepreneur, and robotics teacher. He enjoys teaching new technologies to people and makes complex stuff easy to understand. His method is simple and contains only three words—step by step.

He knows how hard it can be to learn a new topic and to be lost in an ocean of information without knowing what to do. In his courses, he makes sure that his students learn one step at a time through practicing and that students also learn the best practices.

Edouard is passionate about robotics. He cofounded a robotics startup in 2016, building a complete robotic arm from scratch with Arduino, Raspberry Pi, Ubuntu, and ROS. He likes building cool new robotics projects in his free time. 

what's a liveVideo?
Find out more

choose your plan

team

monthly
annual
$49.99
$399.99
only $33.33 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Arduino OOP liveVideo for free
RECENTLY VIEWED