Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f6df91f

Browse files
fix pins
1 parent a0cacf6 commit f6df91f

File tree

124 files changed

+8977
-339
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+8977
-339
lines changed

‎.idea/workspace.xml‎

Lines changed: 104 additions & 84 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎docs/.vuepress/config.js‎

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
module.exports = {
2-
"title": "EloquentArduino",
3-
"description": "A collection of eloquent APIs for Arduino",
4-
"base": "/EloquentArduino/"
2+
title: "EloquentArduino",
3+
description: "A collection of eloquent APIs for Arduino",
4+
base: "/EloquentArduino/",
5+
// theme: 'custom',
6+
head: [
7+
// ['link', {
8+
// rel:"stylesheet",
9+
// href: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css",
10+
// integrity: "sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq",
11+
// crossorigin: "anonymous"
12+
// }],
13+
// ['script', {
14+
// defer: true,
15+
// src: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js",
16+
// integrity: "sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz",
17+
// crossorigin:"anonymous"
18+
// }],
19+
// ['script', {
20+
// defer: true,
21+
// src: "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js",
22+
// integrity: "sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI",
23+
// crossorigin: "anonymous",
24+
// onload: "renderMathInElement(document.body);"
25+
// }],
26+
// ['script', {}, `
27+
// window.addEventListener('DOMContentLoaded', function() {
28+
// [].slice.call(document.querySelectorAll('.content p'))
29+
// .filter(function(p) {
30+
// return p.textContent.indexOf('$$') == 0;
31+
// })
32+
// .forEach(function(p) {
33+
// console.log(p.textContent);
34+
// p.innerHTML = katex.renderToString(p.textContent.replace(/\$/g, ''))
35+
// })
36+
// });
37+
// `]
38+
],
39+
themeConfig: {
40+
nav: [
41+
{text: 'Blog', link: '/Blog'},
42+
{text: 'Docs', link: '/docs'},
43+
]
44+
},
45+
// markdown: {
46+
// // options for markdown-it-anchor
47+
// anchor: { permalink: false },
48+
// config: function(md) {
49+
// md.use(require("markdown-it-katex"));
50+
// }
51+
// }
552
}

‎docs/.vuepress/dist/404.html‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
<meta name="viewport" content="width=device-width,initial-scale=1">
66
<title>EloquentArduino</title>
77
<meta name="description" content="A collection of eloquent APIs for Arduino">
8+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
9+
<script defer="true" src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
810

9-
10-
<link rel="preload" href="/EloquentArduino/assets/css/0.styles.4405d043.css" as="style"><link rel="preload" href="/EloquentArduino/assets/js/app.0e9dcd18.js" as="script"><link rel="prefetch" href="/EloquentArduino/assets/js/10.d7732e4c.js"><link rel="prefetch" href="/EloquentArduino/assets/js/11.c6552ad2.js"><link rel="prefetch" href="/EloquentArduino/assets/js/12.a15c98a1.js"><link rel="prefetch" href="/EloquentArduino/assets/js/2.d8f505d4.js"><link rel="prefetch" href="/EloquentArduino/assets/js/3.9269351e.js"><link rel="prefetch" href="/EloquentArduino/assets/js/4.facae2f5.js"><link rel="prefetch" href="/EloquentArduino/assets/js/5.04cdad08.js"><link rel="prefetch" href="/EloquentArduino/assets/js/6.109e905b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/7.a0893bfc.js"><link rel="prefetch" href="/EloquentArduino/assets/js/8.623902fb.js"><link rel="prefetch" href="/EloquentArduino/assets/js/9.6a2d1977.js">
11-
<link rel="stylesheet" href="/EloquentArduino/assets/css/0.styles.4405d043.css">
11+
<link rel="preload" href="/EloquentArduino/assets/css/0.styles.a949dd8e.css" as="style"><link rel="preload" href="/EloquentArduino/assets/js/app.2d29deaa.js" as="script"><link rel="prefetch" href="/EloquentArduino/assets/js/10.d18d8445.js"><link rel="prefetch" href="/EloquentArduino/assets/js/11.1fcda93d.js"><link rel="prefetch" href="/EloquentArduino/assets/js/12.71c3100b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/13.28c14d81.js"><link rel="prefetch" href="/EloquentArduino/assets/js/14.e2b02aab.js"><link rel="prefetch" href="/EloquentArduino/assets/js/15.b6727a3b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/16.c22cc59a.js"><link rel="prefetch" href="/EloquentArduino/assets/js/17.301f8078.js"><link rel="prefetch" href="/EloquentArduino/assets/js/18.9bfef7ce.js"><link rel="prefetch" href="/EloquentArduino/assets/js/19.7e08e6a1.js"><link rel="prefetch" href="/EloquentArduino/assets/js/2.c3c2ef99.js"><link rel="prefetch" href="/EloquentArduino/assets/js/20.86b3dfc4.js"><link rel="prefetch" href="/EloquentArduino/assets/js/21.5d82e070.js"><link rel="prefetch" href="/EloquentArduino/assets/js/3.aef08e8b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/4.682a9bca.js"><link rel="prefetch" href="/EloquentArduino/assets/js/5.0d52884a.js"><link rel="prefetch" href="/EloquentArduino/assets/js/6.20135cc5.js"><link rel="prefetch" href="/EloquentArduino/assets/js/7.71090359.js"><link rel="prefetch" href="/EloquentArduino/assets/js/8.89bf04f1.js"><link rel="prefetch" href="/EloquentArduino/assets/js/9.2147c3b5.js">
12+
<link rel="stylesheet" href="/EloquentArduino/assets/css/0.styles.a949dd8e.css">
1213
</head>
1314
<body>
14-
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>Looks like we've got some broken links.</blockquote> <a href="/EloquentArduino/" class="router-link-active">Take me home.</a></div></div></div>
15-
<script src="/EloquentArduino/assets/js/app.0e9dcd18.js" defer></script>
15+
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/EloquentArduino/" class="router-link-active">Take me home.</a></div></div></div>
16+
<script src="/EloquentArduino/assets/js/app.2d29deaa.js" defer></script>
1617
</body>
1718
</html>
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<!DOCTYPE html>
2+
<html lang="en-US">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width,initial-scale=1">
6+
<title>InputStream . Part1 | EloquentArduino</title>
7+
<meta name="description" content="A collection of eloquent APIs for Arduino">
8+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
9+
<script defer="true" src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
10+
11+
<link rel="preload" href="/EloquentArduino/assets/css/0.styles.a949dd8e.css" as="style"><link rel="preload" href="/EloquentArduino/assets/js/app.2d29deaa.js" as="script"><link rel="preload" href="/EloquentArduino/assets/js/6.20135cc5.js" as="script"><link rel="prefetch" href="/EloquentArduino/assets/js/10.d18d8445.js"><link rel="prefetch" href="/EloquentArduino/assets/js/11.1fcda93d.js"><link rel="prefetch" href="/EloquentArduino/assets/js/12.71c3100b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/13.28c14d81.js"><link rel="prefetch" href="/EloquentArduino/assets/js/14.e2b02aab.js"><link rel="prefetch" href="/EloquentArduino/assets/js/15.b6727a3b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/16.c22cc59a.js"><link rel="prefetch" href="/EloquentArduino/assets/js/17.301f8078.js"><link rel="prefetch" href="/EloquentArduino/assets/js/18.9bfef7ce.js"><link rel="prefetch" href="/EloquentArduino/assets/js/19.7e08e6a1.js"><link rel="prefetch" href="/EloquentArduino/assets/js/2.c3c2ef99.js"><link rel="prefetch" href="/EloquentArduino/assets/js/20.86b3dfc4.js"><link rel="prefetch" href="/EloquentArduino/assets/js/21.5d82e070.js"><link rel="prefetch" href="/EloquentArduino/assets/js/3.aef08e8b.js"><link rel="prefetch" href="/EloquentArduino/assets/js/4.682a9bca.js"><link rel="prefetch" href="/EloquentArduino/assets/js/5.0d52884a.js"><link rel="prefetch" href="/EloquentArduino/assets/js/7.71090359.js"><link rel="prefetch" href="/EloquentArduino/assets/js/8.89bf04f1.js"><link rel="prefetch" href="/EloquentArduino/assets/js/9.2147c3b5.js">
12+
<link rel="stylesheet" href="/EloquentArduino/assets/css/0.styles.a949dd8e.css">
13+
</head>
14+
<body>
15+
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/EloquentArduino/" class="home-link router-link-active"><!----> <span class="site-name">EloquentArduino</span></a> <div class="links" style="max-width:nullpx;"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/EloquentArduino/Blog.html" class="nav-link">Blog</a></div><div class="nav-item"><a href="/EloquentArduino/docs.html" class="nav-link">Docs</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/EloquentArduino/Blog.html" class="nav-link">Blog</a></div><div class="nav-item"><a href="/EloquentArduino/docs.html" class="nav-link">Docs</a></div> <!----></nav> <!----> </div> <div class="page"> <div class="content"><h1 id="io-inputstream-part1"><a href="#io-inputstream-part1" aria-hidden="true" class="header-anchor">#</a> IO::InputStream . Part1</h1> <p><code>InputStream</code> is an abstract class to interact with, well, input streams!
16+
What are input streams, by the way? Simply put, an input stream is any thing
17+
that generates values over time. Examples of input streams are an input pin
18+
(digital or analog) and any kind of sensor that returns a numeric value.</p> <p>Why do we need input streams? Because we can manipulate them using
19+
a uniform interface. We can carry all sort of operations on the values
20+
generated by the stream, careless of where those values come from.
21+
This means we can implement &quot;abstract&quot; algorithms that can be reused
22+
multiple times on different data.</p> <p>Want an example? Let's say you want to apply <a href="https://en.wikipedia.org/wiki/Exponential_smoothing" target="_blank" rel="noopener noreferrer">Exponential Smoothing<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>
23+
to an analog potentiometer. To get this working you will need 3 variables: the current value, the past value
24+
and the smoothing factor (in the range ]0, 1]). <br>
25+
With the InputStream construct you may use a <code>Transformer</code> instead.
26+
A Transformer is a class that gets values from an input stream and transforms
27+
them in some way. So an exponential smoothing transformer in action over an
28+
analog input stream will look like the following:</p> <div class="language-c extra-class"><pre class="language-c"><code>AnalogInputStream <span class="token function">potentiometer</span><span class="token punctuation">(</span>A0<span class="token punctuation">)</span><span class="token punctuation">;</span>
29+
30+
<span class="token keyword">void</span> <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
31+
potentiometer<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span>new <span class="token function">ExponentialSmoothing</span><span class="token punctuation">(</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
32+
<span class="token punctuation">}</span>
33+
34+
<span class="token keyword">void</span> <span class="token function">loop</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
35+
Serial<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>potentiomenter<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
36+
<span class="token punctuation">}</span>
37+
</code></pre></div><p>Now, the input stream transparently takes care of managing its transformer,
38+
so you can just get the processed value with the <code>read()</code> method. If you have
39+
set a transformer, it will transform your value, otherwise you'll get the raw
40+
value.</p> <p>Do you know what's the best part? Transformers are <strong>chainable</strong> 🔥🔥🔥<br>
41+
If you want to map your smoothed potentiometer from [0, 1024] to [0, 100], for example,
42+
you can chain a <code>Map</code> transformer:</p> <div class="language-c extra-class"><pre class="language-c"><code>AnalogPinInputStream <span class="token function">potentiometer</span><span class="token punctuation">(</span>A0<span class="token punctuation">)</span><span class="token punctuation">;</span>
43+
44+
<span class="token keyword">void</span> <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
45+
potentiometer
46+
<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span>new <span class="token function">ExponentialSmoothing</span><span class="token punctuation">(</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
47+
<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span>new <span class="token function">Map</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1024</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
48+
<span class="token punctuation">}</span>
49+
50+
<span class="token keyword">void</span> <span class="token function">loop</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
51+
Serial<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>potentiomenter<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
52+
<span class="token punctuation">}</span>
53+
</code></pre></div><p>As you can see, the loop didn't changed at all: the transformers are totally
54+
transparent to you!</p> <p>In <a href="/EloquentArduino/Blog/series/Eloquent/IO/InputStream_2.html">Part 2</a> we'll dig deeper into the available input streams.</p></div> <div class="page-edit"><!----> <!----></div> <!----> </div> <!----></div></div>
55+
<script src="/EloquentArduino/assets/js/app.2d29deaa.js" defer></script><script src="/EloquentArduino/assets/js/6.20135cc5.js" defer></script>
56+
</body>
57+
</html>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /