女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>Arduino機器人面向服務的架構

Arduino機器人面向服務的架構

2023-01-03 | zip | 0.04 MB | 次下載 | 免費

資料介紹

描述

系列介紹

本系列文章的重點是基于可在所有機器人中重復使用的服務創建可擴展的面向對象的模塊化軟件架構,而無需在每次創建新機器人時都從頭開始。

也許開始使用機器人技術的最具成本效益的方法是使用您可以在任何電子商務(全球速賣通、banggood等)上購買的智能機器人汽車。但當然,購買它是最簡單的部分......您不需要專門購買,即使有了智能機器人汽車的描述,您也會發現許多不同的變體。我將為您使用此套件獲得的所有最常見模塊創建“服務”,因此您可以選擇您需要的服務,并將它們一起使用來創建您自己的智能機器人,而無需從頭開始對每個機器人進行操作你做。

指數

這是我將要創建的泰博機器人服務系列或文章的索引

關于硬件

為了能夠閱讀本文,您可能至少需要對面向對象范例有所了解,如果可能的話,使用 C++但我對 C++ 了解不多,但仍然這樣做,所以我認為你也能做到。

我將以您可以從任何電子商務獲得的廉價硬件為基礎提供服務。你會看到我提到了 Arduino 智能機器人汽車。不過,我現在不使用該機器人進行測試(我將來可能會),但 RoboSoul TK-100 更堅固一些,但另一方面,當它撞到某物時,結果更破壞性的。

該軟件被認為是盡可能可擴展的,這就是為什么您應該能夠使用任何可用的硬件。對于其中一些,您會在這里找到可以重用的服務,而對于其他一些,您可能需要為您的特定硬件實現特定服務。這將非常容易,如果您決定在那之后更改硬件,您需要對機器人的主要代碼進行的更改將是最小的。

關于架構

我會盡量用最新的類圖更新這篇文章,因此它可以作為代碼中每個可用服務的參考。您會發現它附在本文中。

創建基礎服務

由于主要思想是基于相同的面向對象架構創建許多服務,因此我們首先需要定義該架構是什么。

“服務”基類

首先,我們要記住,我們希望能夠為您添加到項目中的每個硬件模塊添加一個服務。那么,什么是一個好的服務主類?我們希望能夠:

  • 啟用/禁用任何服務
  • 使其冗長(以了解其中發生了什么以進行調試)
  • 允許服務做一些設置
  • 允許服務在每次循環迭代時運行一些更新代碼

現在,僅此而已。將根據我們正在構建的服務類型添加更多詳細信息所以基礎服務類的頭文件(Service.h)將是這樣的:

#pragma once   
#include "arduino.h" 
namespace Taibot 
{ 
	class Service 
	{ 
	public: 
		// isEnabled: Enables/Disables the Service   
		// isVerbose: Activates the logging output to Serial   
		Service(bool isEnabled, bool isVerbose); 
		// Use this method to know if the driver is enabled or not 
		bool IsEnabled(); 
		// Use this method to know if the logging is is enabled or not before writing logs 
		bool IsVerbose(); 
		// Enables/Disables the driver 
		void SetEnabled(bool isEnabled); 
		// Enables/Disables the logging 
		void SetVerbose(bool isVerbose); 
		// Needs to be implemented by every service, so we keep a convention 
		virtual void Setup() = 0; 
		// Needs to be implemented by every service, so we keep a convention 
		virtual void Update() = 0; 
	private: 
		// Enable/Disable the service   
		bool _isEnabled = false; 
		// Enable/Disable serial output for debugging  
		bool _isVerbose = false; 
	}; 
}; 

它的實現(Service.cpp)是這樣的:

#include "Service.h" 
using namespace Taibot; 
Service::Service(bool isEnabled, bool isVerbose) 
{ 
	_isEnabled = isEnabled; 
	_isVerbose = isVerbose; 
} 
bool Service::IsEnabled() 
{ 
	return _isEnabled; 
} 
bool Service::IsVerbose() 
{ 
	return _isVerbose; 
} 
void Service::SetEnabled(bool isEnabled) 
{ 
	_isEnabled = isEnabled; 
} 
void Service::SetVerbose(bool isVerbose) 
{ 
	_isVerbose = isVerbose; 
} 

Service 基類的構造函數強制我們為服務設置啟用和詳細配置:Service(bool isEnabled, bool isVerbose); 然后你可以看到獲取或設置這兩個屬性的方法。

方法Setup()Update()在這里沒有實現,因為它們需要由繼承自該基類的服務實現。在許多情況下,此方法可能什么都不做,但由于我們的想法是允許服務在沒有任何外部要求的情況下工作和更新自身,我們應該允許每個服務執行它從 mane 草圖文件中要求的任何事情。

這意味著:

  • 在草圖的 setup() 文件中,您將從您正在使用的服務中調用所有 Setup() 方法。
  • 在草圖的 loop() 文件中,您將從您正在使用的服務中調用所有 Update() 方法。

一旦我們有自己的實際服務實施工作,我將展示一個例子。

回到服務類非常簡單。如您所見,我們正在使用 Taibot 命名空間,只是為了避免與您可能擁有的其他代碼發生沖突。

結論

現在,這段代碼看起來非常簡單,并沒有多大用處,但如果您按照其余文章進行操作,您將能夠讓您的機器人工作,并且擁有一個漂亮的、可擴展的、先進的架構,這對我比有無盡的意大利面條代碼。

如果您不理解本文的任何部分、無法使此代碼工作、發現錯誤或有任何建議,請告訴我,我愿意改進它并使其成為任何人的干凈代碼庫想要重用它。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費