資料介紹
描述
系列介紹
本系列文章的重點(diǎn)是基于可在所有機(jī)器人中重復(fù)使用的服務(wù)創(chuàng)建可擴(kuò)展的面向?qū)ο蟮哪K化軟件架構(gòu),而無需在每次創(chuàng)建新機(jī)器人時(shí)都從頭開始。
也許開始使用機(jī)器人技術(shù)的最具成本效益的方法是使用您可以在任何電子商務(wù)(全球速賣通、banggood等)上購(gòu)買的智能機(jī)器人汽車。但當(dāng)然,購(gòu)買它是最簡(jiǎn)單的部分......您不需要專門購(gòu)買,即使有了智能機(jī)器人汽車的描述,您也會(huì)發(fā)現(xiàn)許多不同的變體。我將為您使用此套件獲得的所有最常見模塊創(chuàng)建“服務(wù)”,因此您可以選擇您需要的服務(wù),并將它們一起使用來創(chuàng)建您自己的智能機(jī)器人,而無需從頭開始對(duì)每個(gè)機(jī)器人進(jìn)行操作你做。
指數(shù)
這是我將要?jiǎng)?chuàng)建的泰博機(jī)器人服務(wù)系列或文章的索引。
關(guān)于硬件
為了能夠閱讀本文,您可能至少需要對(duì)面向?qū)ο蠓独兴私猓绻赡艿脑挘褂?C++。但我對(duì) C++ 了解不多,但仍然這樣做,所以我認(rèn)為你也能做到。
我將以您可以從任何電子商務(wù)獲得的廉價(jià)硬件為基礎(chǔ)提供服務(wù)。你會(huì)看到我提到了 Arduino 智能機(jī)器人汽車。不過,我現(xiàn)在不使用該機(jī)器人進(jìn)行測(cè)試(我將來可能會(huì)),但 RoboSoul TK-100 更堅(jiān)固一些,但另一方面,當(dāng)它撞到某物時(shí),結(jié)果更破壞性的。
該軟件被認(rèn)為是盡可能可擴(kuò)展的,這就是為什么您應(yīng)該能夠使用任何可用的硬件。對(duì)于其中一些,您會(huì)在這里找到可以重用的服務(wù),而對(duì)于其他一些,您可能需要為您的特定硬件實(shí)現(xiàn)特定服務(wù)。這將非常容易,如果您決定在那之后更改硬件,您需要對(duì)機(jī)器人的主要代碼進(jìn)行的更改將是最小的。
關(guān)于架構(gòu)
我會(huì)盡量用最新的類圖更新這篇文章,因此它可以作為代碼中每個(gè)可用服務(wù)的參考。您會(huì)發(fā)現(xiàn)它附在本文中。
創(chuàng)建基礎(chǔ)服務(wù)
由于主要思想是基于相同的面向?qū)ο蠹軜?gòu)創(chuàng)建許多服務(wù),因此我們首先需要定義該架構(gòu)是什么。
“服務(wù)”基類
首先,我們要記住,我們希望能夠?yàn)槟砑拥巾?xiàng)目中的每個(gè)硬件模塊添加一個(gè)服務(wù)。那么,什么是一個(gè)好的服務(wù)主類?我們希望能夠:
- 啟用/禁用任何服務(wù)
- 使其冗長(zhǎng)(以了解其中發(fā)生了什么以進(jìn)行調(diào)試)
- 允許服務(wù)做一些設(shè)置
- 允許服務(wù)在每次循環(huán)迭代時(shí)運(yùn)行一些更新代碼
現(xiàn)在,僅此而已。將根據(jù)我們正在構(gòu)建的服務(wù)類型添加更多詳細(xì)信息。所以基礎(chǔ)服務(wù)類的頭文件(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;
};
};
它的實(shí)現(xiàn)(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 基類的構(gòu)造函數(shù)強(qiáng)制我們?yōu)榉?wù)設(shè)置啟用和詳細(xì)配置:Service(bool isEnabled, bool isVerbose); 然后你可以看到獲取或設(shè)置這兩個(gè)屬性的方法。
方法Setup()和Update()在這里沒有實(shí)現(xiàn),因?yàn)樗鼈冃枰衫^承自該基類的服務(wù)實(shí)現(xiàn)。在許多情況下,此方法可能什么都不做,但由于我們的想法是允許服務(wù)在沒有任何外部要求的情況下工作和更新自身,我們應(yīng)該允許每個(gè)服務(wù)執(zhí)行它從 mane 草圖文件中要求的任何事情。
這意味著:
- 在草圖的 setup() 文件中,您將從您正在使用的服務(wù)中調(diào)用所有 Setup() 方法。
- 在草圖的 loop() 文件中,您將從您正在使用的服務(wù)中調(diào)用所有 Update() 方法。
一旦我們有自己的實(shí)際服務(wù)實(shí)施工作,我將展示一個(gè)例子。
回到服務(wù)類非常簡(jiǎn)單。如您所見,我們正在使用 Taibot 命名空間,只是為了避免與您可能擁有的其他代碼發(fā)生沖突。
結(jié)論
現(xiàn)在,這段代碼看起來非常簡(jiǎn)單,并沒有多大用處,但如果您按照其余文章進(jìn)行操作,您將能夠讓您的機(jī)器人工作,并且擁有一個(gè)漂亮的、可擴(kuò)展的、先進(jìn)的架構(gòu),這對(duì)我比有無盡的意大利面條代碼。
如果您不理解本文的任何部分、無法使此代碼工作、發(fā)現(xiàn)錯(cuò)誤或有任何建議,請(qǐng)告訴我,我愿意改進(jìn)它并使其成為任何人的干凈代碼庫(kù)想要重用它。
- Arduino機(jī)器人
- ARMD機(jī)器人面具檢測(cè)器開源分享
- 中國(guó)商用服務(wù)機(jī)器人行業(yè)簡(jiǎn)析 1次下載
- Arduino機(jī)器人螞蟻
- ARLOK arduino機(jī)器人
- 基于Arduino系統(tǒng)拉線墻畫機(jī)器人設(shè)計(jì)制作 12次下載
- 魔方機(jī)器人(三)Arduino
- 面向機(jī)器人的三維形狀多層次局部匹配算法 18次下載
- 機(jī)場(chǎng)視覺移動(dòng)服務(wù)機(jī)器人的設(shè)計(jì)方案 27次下載
- 主從異構(gòu)手術(shù)機(jī)器人的運(yùn)動(dòng)誤差如何進(jìn)行分析 3次下載
- Arduino教學(xué)機(jī)器人的使用教程免費(fèi)下載 38次下載
- Arduino開發(fā)機(jī)器人經(jīng)典書籍推薦Arduino開發(fā)實(shí)戰(zhàn)指南:機(jī)器人卷
- 機(jī)器人設(shè)計(jì)教程之機(jī)器人控制和決策子系統(tǒng) 25次下載
- 機(jī)器人自適應(yīng)監(jiān)控架構(gòu)與服務(wù)方法 0次下載
- 面向服務(wù)架構(gòu)在SCADA中的應(yīng)用 22次下載
- 面向信號(hào)與面向服務(wù)SOA混合架構(gòu)設(shè)計(jì)方法 709次閱讀
- 面向信號(hào)與面向服務(wù)SOA混合架構(gòu)設(shè)計(jì)方法 790次閱讀
- 玩嗨OpenHarmony:基于OpenHarmony的智能助老服務(wù)機(jī)器人 2035次閱讀
- SOA面向服務(wù)架構(gòu)介紹 1378次閱讀
- 如何使用Arduino制造一個(gè)自動(dòng)平衡機(jī)器人 4833次閱讀
- 面對(duì)疫情 醫(yī)療機(jī)器人能幫上什么忙? 2236次閱讀
- dfrobotDevastator履帶機(jī)器人移動(dòng)平臺(tái)簡(jiǎn)介 1658次閱讀
- 服務(wù)機(jī)器人市場(chǎng)需求及前景分析 8645次閱讀
- 服務(wù)機(jī)器人的應(yīng)用及市場(chǎng)規(guī)模 2180次閱讀
- 一文看懂服務(wù)機(jī)器人發(fā)展前景 2608次閱讀
- 服務(wù)機(jī)器人功能有哪些 6363次閱讀
- 服務(wù)機(jī)器人的種類及未來的發(fā)展趨勢(shì) 3883次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 3257次閱讀
- 焊接機(jī)器人編程好學(xué)嗎_前景怎么樣 1.6w次閱讀
- 基于STM32的家庭服務(wù)機(jī)器人系統(tǒng)工作原理及設(shè)計(jì) 1.4w次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費(fèi)
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)
- 3.32 MB | 1次下載 | 免費(fèi)
- 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費(fèi)
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說明
- 0.50 MB | 94次下載 | 1 積分
- 4長(zhǎng)虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強(qiáng)型場(chǎng)效應(yīng)晶體管的數(shù)據(jù)手冊(cè)
- 0.11 MB | 28次下載 | 2 積分
- 8長(zhǎng)虹液晶彩電LS29機(jī)芯的技術(shù)資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論