Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

UBTech

UBTech robot Bluetooth communication protocal

有高手分析出几条协议,如下:

通讯协议格式(固定长度10字节):

帧头(2字节)ID(1字节)命令(1字节)参数(4字节) SUM(1字节)帧尾(1字节)

帧头:FA AF,帧尾:ED,SUM=ID+命令+参数,取最低位1字节

命令可以按01..FF,顺序实验。

目前已实验的命令(CD命令是修改舵机id):

读数据:FA AF id 02 00 00 00 00 SUM ED

舵机应答:FA AF id AA 实际角度 sum ED

写舵机:FA AF id 01 角度 SUM ED

FA AF 01 04 01 00 00 00 06 ED 关闭led灯

FA AF 01 04 00 00 00 00 05 ED 打开led灯

修改舵机ID:FA AF ID CD 0 newid 0 0 SUM ED

蓝牙通讯:

BT握手机器

fb bf 06 01 00 07 ed

获取动作表

fb bf 06 02 00 08 ed

心跳包

fb bf 06 08 00 0E ed

读取机器状态

fb bf 06 0A 00 10 ed

音量调节//val=00-ff

fb bf 06 0B val chk ed

所有舵机掉电

fb bf 06 0C 00 12 ed

所有舵机灯控制//00关,01开

fb bf 06 0D 00 13 ed

fb bf 06 0D 01 14 ed

读机器电池电量

fb bf 06 18 00 1e ed

返回:FB BF 09 18 22 DD 01 64 85 ED

参数1(2B):电压值(mV)

参数2(1B):是否充电 (0X00-否,0X01-是 ,0X02-没有电池)

参数3(1B): 电量百分比(0~100)

控制单一舵机运动

//01号舵机转向到40度(0x28),时间255*20ms(0xff)

fb bf 0a 22 01 28 ff 00 ff 53 ed

//01舵机转到0度,时间1秒

fb bf 0a 22 01 00 32 00 ff 5e ed

//01舵机转到180度,时间1秒

fb bf 0a 22 01 b4 32 00 ff 12 ed

//01舵机转到180度,时间255*20ms(0xff)

fb bf 0a 22 01 b4 ff 00 ff df ed

回读单个舵机角度(掉电)

fb bf 06 24 01 2b ed

设置单个舵机偏移值

//13号舵机偏移值设置为ff f2

fb bf 08 26 0d ff f2 2c ed

fb bf 08 26 0b 00 10 49 ed

读取单个舵机偏移值

fb bf 06 28 01 2f ed

fb bf 06 28 02 30 ed

fb bf 06 28 0d 3b ed

fb bf 06 28 0b 39 ed

About

UBTech robot Bluetooth communication protocal

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages