clean
67
README_tw.md
@ -1,67 +0,0 @@
|
|||||||

|
|
||||||
|
|
||||||
# hexapod-v2-7697
|
|
||||||
|
|
||||||
Hexapod v2 using Linkit 7697
|
|
||||||
|
|
||||||
這是個 Hexapod (六足昆蟲) 專案
|
|
||||||
|
|
||||||
可以用任何手機 (iOS 或 Android) 來控制它的動作 (包括前進,後退,扭動等等...)
|
|
||||||
|
|
||||||
可參考以下的 Youtube 影片 https://youtu.be/NJ7DdDEcq3U & https://youtu.be/To2Y6Mhu-CE
|
|
||||||
|
|
||||||
<a href='https://youtu.be/NJ7DdDEcq3U'><img src='http://img.youtube.com/vi/NJ7DdDEcq3U/mqdefault.jpg'/></a>
|
|
||||||
<a href='https://youtu.be/To2Y6Mhu-CE'><img src='http://img.youtube.com/vi/To2Y6Mhu-CE/mqdefault.jpg'/></a>
|
|
||||||
|
|
||||||
> 在 https://smallptsai.github.io/hexapod-v2-7697/ 可以看到更多影片
|
|
||||||
|
|
||||||
## 簡介
|
|
||||||
|
|
||||||
* 利用 `Linkit 7697` 的 `BLE` 藍牙功能來作到 **遙控**
|
|
||||||
* 它有六隻腳,每隻腳各有三個關節,總共使用了 `18` 個 **伺服馬達** (TowerPro `MG92B`)
|
|
||||||
* Linkit 7696 沒有這麼多個 PWM 可用,所以使用了二顆 NXP 的 `PCA9685` 來控制這麼多個伺服馬達
|
|
||||||
* 動力使用 7.4v 的鋰電池 `2S Lipo battery (7.4v)`, 另外也用了 7 個 `mini360 DC-DC` 穩壓電路,其中 1 個供電給 Linkit 7697, 其它 6 個各負責一隻腳 (三個伺服馬達) 的電力
|
|
||||||
* 機身則使用 3D 列印 (PLA材質)
|
|
||||||
* 所有東西 (模型STL檔案, PCB電路圖, 7697代碼) 都以 GPL license 開源, Happy making!
|
|
||||||
|
|
||||||
## 技能需求
|
|
||||||
|
|
||||||
如果你也想要實現這個專案,會需要以下的技能:
|
|
||||||
|
|
||||||
* 機構部分
|
|
||||||
* 會使用 `3D 列印`
|
|
||||||
* 能夠微調 3D 模型以符合自己的需求 (例如, 使用不同的伺服馬達)
|
|
||||||
* 電路部分
|
|
||||||
* 洗 `PCB` 電路板 (建議找專業 PCB 服務)
|
|
||||||
* 焊接 `SMD` 元件 (0805 和 TSSOP28 封裝)
|
|
||||||
* 知道如何使用鋰 (`Lipo`) 電池 (充電和保存)
|
|
||||||
* 軟體部分
|
|
||||||
* 使用 `Linkit 7697` (ie. 編譯和上傳程式)
|
|
||||||
* 使用 `LRemote` 來連接 7697 和手機
|
|
||||||
|
|
||||||
## Table of Content
|
|
||||||
|
|
||||||
1. [機構](mechanism/) - 如何組裝3D件 (English only)
|
|
||||||
1. [電路](electronics/) - 電路說明 (English only)
|
|
||||||
1. [軟體](software/) - 7697上的軟體 (English only)
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
1. 如何校正 / 為什麼腳的位置不正
|
|
||||||
|
|
||||||
Calibration 在軟體內有內建, Reboot 後時按一下 7697 上的 USR key, 再用手機連會進到另一個 UI, 可以針對每個 Servo 去調中心點 (offset) 和 比例 (scale), 3d 件上都有個溝槽可以對 0度, 45度和 -45度, 對好後再按 Save 存檔
|
|
||||||
|
|
||||||
1. Servo 如何連接, 順序是什麼
|
|
||||||
|
|
||||||
順序都是由內到外, body -> thigh -> foot,不過 layout 時會了走線好看, 有一隻腳的方向是反的,可以在 calibration 時切到不同位置按 45~0~-45度動看看來調整
|
|
||||||
請參照 [electronics/#servo-connection](electronics/#servo-connection)
|
|
||||||
|
|
||||||
1. 在調整/校正時,左右 Servo 連動,正常嗎?
|
|
||||||
|
|
||||||
不正常, 左右兩張板子有一個地方 (i2c address) 不同,左邊的PCB板的 SJ1 要焊起來
|
|
||||||
請參照 [electronics/#sub-x2](electronics/#sub-x2)
|
|
||||||
|
|
||||||
1. 請問校正的標準姿勢為何? 例如人形立正或大字型
|
|
||||||
|
|
||||||
所有的關節都在 0 度的位置, 是個 ㄇ 型
|
|
||||||
校正要先回到 offset/scale 0 的情況, 再重鎖 servo 擺臂盡量到置中位置後,再用軟體微調~
|
|
@ -1 +0,0 @@
|
|||||||
google-site-verification: googlea9ec0f16af53afaa.html
|
|
Before Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 126 KiB |
271
docs/index.html
@ -1,271 +0,0 @@
|
|||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
<meta name="description" content="Hexapod is an Robotic project for Personal/Hobby Maker, using Raspberry Pi (RPi) or Linkit 7697 as its controller, also iOS/Android remote controllable">
|
|
||||||
<meta name="google-site-verification" content="30IiEfZdTOk1bjP4Zq3M3UkRtd8lec_UW8ReDJIH0Vg" />
|
|
||||||
<title>Hexapod: Main page</title>
|
|
||||||
|
|
||||||
<link rel="shortcut icon" type="image/png" href="images/icon-b.png" />
|
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
|
||||||
<style>
|
|
||||||
.bd-placeholder-img {
|
|
||||||
text-anchor: middle;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bd-placeholder-img img {
|
|
||||||
display: block;
|
|
||||||
margin-left:auto;
|
|
||||||
margin-right:auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jumbotron {
|
|
||||||
padding-top: 3rem;
|
|
||||||
padding-bottom: 3rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
min-height: 300px;
|
|
||||||
}
|
|
||||||
@media (orientation: portrait) {
|
|
||||||
.jumbotron {
|
|
||||||
padding-top: 1rem;
|
|
||||||
padding-bottom: 1rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
min-height: 200px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-outlined {
|
|
||||||
color: black;
|
|
||||||
text-shadow:
|
|
||||||
-1px -1px 0 white,
|
|
||||||
1px -1px 0 white,
|
|
||||||
-1px 1px 0 white,
|
|
||||||
1px 1px 0 white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jumbotron p:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jumbotron-heading {
|
|
||||||
font-size: 3rem;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.jumbotron-text {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
max-width: 30rem;
|
|
||||||
}
|
|
||||||
@media (orientation: portrait) {
|
|
||||||
.jumbotron-heading {
|
|
||||||
font-size: 2rem;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.jumbotron-text {
|
|
||||||
font-size: 1rem;
|
|
||||||
max-width: 30rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
padding-top: 3rem;
|
|
||||||
padding-bottom: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer p {
|
|
||||||
margin-bottom: .25rem;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<div class="collapse bg-dark" id="navbarHeader">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-9 col-md-9 py-4">
|
|
||||||
<h4 class="text-white">About</h4>
|
|
||||||
<p class="text-muted">This is a personal hobby project. <br/>All source code (including 3D components, circuit diagrams, source code) are opened under GPL license. <br/>Feel free to make one by yourself. <br/>Happy Making!</p>
|
|
||||||
</div>
|
|
||||||
<!-- <div class="col-sm-4 offset-md-1 py-4">
|
|
||||||
<h4 class="text-white">Contact</h4>
|
|
||||||
<ul class="list-unstyled">
|
|
||||||
<li><a href="#" class="text-white">Follow on Twitter</a></li>
|
|
||||||
<li><a href="#" class="text-white">Like on Facebook</a></li>
|
|
||||||
<li><a href="#" class="text-white">Email me</a></li>
|
|
||||||
</ul>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="navbar navbar-dark bg-dark shadow-sm">
|
|
||||||
<div class="container d-flex justify-content-between">
|
|
||||||
<a href="#" class="navbar-brand d-flex align-items-center">
|
|
||||||
<!-- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" aria-hidden="true" class="mr-2" viewBox="0 0 24 24" focusable="false"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg> -->
|
|
||||||
<img width="20" height="20" src="images/icon-w.png"/>
|
|
||||||
<strong>Hexapod</strong>
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarHeader" aria-controls="navbarHeader" aria-expanded="false" aria-label="Toggle navigation">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<main role="main">
|
|
||||||
|
|
||||||
<section class="jumbotron" style="background-image: url(images/jumbotron-bg.jpg); background-size: 100%; background-repeat: no-repeat">
|
|
||||||
<div>
|
|
||||||
<h1 class="jumbotron-heading text-outlined">Hexapod Project</h1>
|
|
||||||
<ul>
|
|
||||||
<li class="jumbotron-text text-outlined">6 legs, each with 3 servos, total 18 degress of freedom</li>
|
|
||||||
<li class="jumbotron-text text-outlined">Android / iOS remotely controlled</li>
|
|
||||||
<li class="jumbotron-text text-outlined">2S LiPO battery powered</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<a target="_blank" href="https://github.com/SmallpTsai/hexapod-v2-7697" class="btn btn-primary">Github</a>
|
|
||||||
<a target="_blank" href="https://www.youtube.com/channel/UC4nvIRRByxOkgKwkdb99Z8w" class="btn btn-primary">Youtube</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="py-5 bg-light">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/To2Y6Mhu-CE" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Hexapod v2.1<br>New movement mode: "Shift", "Climb", "Slow" are supported.</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/To2Y6Mhu-CE" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2018/12/8</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/oaAE5fC09KQ" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Leg Assembly<br>This video demostrates how "Leg" is assembled.</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/oaAE5fC09KQ" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2019/3/10</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<div class="bd-placeholder-img card-img-top bg-dark" width="100%" height="300">
|
|
||||||
<img src="images/3dparts-s.jpg"/>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">3D parts<br>Parts in <font color=blue>Blue</font> rectangle are for "Body"<br/>Parts in <font color=red>Red</font> rectangle are for "one Leg"</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="images/3dparts-b.jpg" class="btn btn-sm btn-outline-secondary">Detail Image</a>
|
|
||||||
<small class="text-muted">2019/3/23</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/EhIvYd5yoXo" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Sunday in the park<br>Shows App UI and How remote-controling Hexapod work.</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/EhIvYd5yoXo" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2019/3/17</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/NJ7DdDEcq3U" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Hexapod v2.0<br>Show various movement.</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/NJ7DdDEcq3U" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2018/10/6</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/mwXX7JwDgVw" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Hexapod v2.0<br>Show "Running" and "Climb" movement</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/mwXX7JwDgVw" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2018/10/10</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/rrRT6g5XCQ4" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text">Hexapod v2.0<br>Show "Waltz-like" movement</p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="https://youtu.be/rrRT6g5XCQ4" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2018/10/13</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <div class="col-md-6">
|
|
||||||
<div class="card mb-4 shadow-sm">
|
|
||||||
<iframe class="bd-placeholder-img card-img-top" width="100%" height="300" src="https://www.youtube.com/embed/" frameborder="0" allow="autoplay; encrypted-media"></iframe>
|
|
||||||
<div class="card-body">
|
|
||||||
<p class="card-text"><br></p>
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<a href="" class="btn btn-sm btn-outline-secondary">Youtube</a>
|
|
||||||
<small class="text-muted">2018/12/8</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="text-muted">
|
|
||||||
<div class="container">
|
|
||||||
<small><p>This is a personal hobby project. <br/>All source code (including 3D components, circuit diagrams, source code) are opened under GPL license. <br/>Feel free to make one by yourself. <br/>Happy Making!</p></small>
|
|
||||||
</div>
|
|
||||||
<div class="container">
|
|
||||||
<p class="float-right">
|
|
||||||
<a href="#">Back to top</a>
|
|
||||||
</p>
|
|
||||||
<small><p>Powered by © Bootstrap</p></small>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
1
software/archive/pathTool/src/output/movement_table.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
../../../hexapod7697/src/hexapod/movement_table.h
|
@ -1 +0,0 @@
|
|||||||
../../../hexapod7697/src/hexapod/movement_table.h
|
|