master
Zhengyu Peng 3 years ago
parent ba57d5ba06
commit 89afd29632

@ -1,67 +0,0 @@
![banner](files/hexapod_og.jpg)
# 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

@ -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 &copy; 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

@ -0,0 +1 @@
../../../hexapod7697/src/hexapod/movement_table.h

@ -1 +0,0 @@
../../../hexapod7697/src/hexapod/movement_table.h
Loading…
Cancel
Save