-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOCS-1637: Make ultrasonic
sensor page in micro-RDK
#2614
Changes from 3 commits
f3a5d01
d981e20
6e14c29
caf63a6
5754ba3
d68112d
fa52873
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
--- | ||
title: "Micro-RDK Sensor Models" | ||
linkTitle: "Sensor" | ||
weight: 30 | ||
type: "docs" | ||
description: "Support in the micro-RDK for sensors, devices that measur information about the outside world." | ||
sguequierre marked this conversation as resolved.
Show resolved
Hide resolved
|
||
images: ["/icons/components/sensor.svg"] | ||
tags: ["sensor", "components", "micro-rdk"] | ||
no_list: true | ||
# SMEs: Andrew Morrow | ||
--- | ||
|
||
A sensor is a device that can measure information about the outside world. | ||
For more information and models supported by the {{< glossary_tooltip term_id="rdk" text="RDK" >}}, see [Sensor Component](/components/sensor/). | ||
|
||
## Supported models | ||
|
||
For configuration information, click a supported sensor model name: | ||
|
||
<!-- prettier-ignore --> | ||
| Model |Description | | ||
| ----- | ---------- | | ||
| [`ultrasonic`](ultrasonic/) | [HC-SR04](https://www.sparkfun.com/products/15569) ultrasonic sensors | | ||
|
||
{{% readfile "/static/include/micro-create-your-own.md" %}} | ||
|
||
## API | ||
|
||
The micro-RDK [sensor API](/components/sensor/#api) supports only the following client SDK API methods, which operate the same as in the full-featured RDK: | ||
|
||
- [`GetReadings()`](/components/sensor/#getreadings) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
--- | ||
title: "Configure an Ultrasonic Sensor (Micro-RDK)" | ||
linkTitle: "ultrasonic" | ||
weight: 60 | ||
type: "docs" | ||
description: "Configure an ultrasonic sensor." | ||
tags: ["sensor", "components", "ultrasonic"] | ||
icon: true | ||
images: ["/icons/components/sensor.svg"] | ||
# SME: Andrew Morrow | ||
--- | ||
|
||
Configure an `ultrasonic` sensor to integrate the [HC-S204](https://www.sparkfun.com/products/15569) ultrasonic distance sensor into your machine: | ||
|
||
{{< tabs >}} | ||
{{% tab name="Config Builder" %}} | ||
|
||
Navigate to the **Config** tab of your machine's page in [the Viam app](https://app.viam.com). | ||
Click on the **Components** subtab and click **Create component**. | ||
Select the `sensor` type, then select the `ultrasonic` model. | ||
Enter a name for your sensor and click **Create**. | ||
|
||
 | ||
|
||
Copy and paste the following attribute template into your sensor's **Attributes** box. | ||
Then remove and fill in the attributes as applicable to your sensor, according to the table below. | ||
|
||
{{< tabs >}} | ||
{{% tab name="Attributes template" %}} | ||
|
||
```json {class="line-numbers linkable-line-numbers"} | ||
{ | ||
"trigger_pin": "<pin-number>", | ||
"echo_interrupt_pin": "<pin-number>", | ||
"timeout_ms": <int> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we have a convention for indicating optional parameters in an attributes template like this? If so, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We don't, but re. later comment removed this |
||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% tab name="Attributes example" %}} | ||
|
||
```json {class="line-numbers linkable-line-numbers"} | ||
{ | ||
"trigger_pin": "15", | ||
"echo_interrupt_pin": "18", | ||
"timeout_ms": "200" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For most purposes with this sensor it should be fine to select the default timeout and not specify one. Maybe this should be omitted? Similar for other examples with an explicit value here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removed it from the examples |
||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{< /tabs >}} | ||
|
||
{{% /tab %}} | ||
{{% tab name="JSON Template" %}} | ||
|
||
```json {class="line-numbers linkable-line-numbers"} | ||
{ | ||
"components": [ | ||
{ | ||
"name": "<your-ultrasonic-sensor-name>", | ||
"model": "ultrasonic", | ||
"type": "sensor", | ||
"namespace": "rdk", | ||
"attributes": { | ||
"trigger_pin": "<pin-number>", | ||
"echo_interrupt_pin": "<pin-number>", | ||
"timeout_ms": <int> | ||
}, | ||
"depends_on": [] | ||
} | ||
] | ||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% tab name="JSON Example" %}} | ||
|
||
```json {class="line-numbers linkable-line-numbers"} | ||
{ | ||
"components": [ | ||
{ | ||
"name": "my-ultrasonic-sensor", | ||
"model": "ultrasonic", | ||
"type": "sensor", | ||
"namespace": "rdk", | ||
"attributes": { | ||
"trigger_pin": "15", | ||
"echo_interrupt_pin": "18", | ||
"timeout_ms": "200" | ||
}, | ||
"depends_on": [] | ||
} | ||
] | ||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% /tabs %}} | ||
|
||
The following attributes are available for `ultrasonic` sensors: | ||
|
||
<!-- prettier-ignore --> | ||
| Attribute | Type | Inclusion | Description | | ||
| --------- | ---- | --------- | ----------- | | ||
| `trigger_pin` | string | **Required** | The GPIO number of the [board's](/build/micro-rdk/board/) GPIO pin that you have wired to the trigger pin of your ultrasonic sensor. | | ||
| `echo_interrupt_pin` | string | **Required** | The GPIO number of the board's GPIO pin that you have wired to the echo pin of your ultrasonic sensor. | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unlike the RDK usonic sensor, the micro-rdk one cannot use a digital interrupt, and I think it is worth noting that important distinction here. The language in the comments in the implementation say this:
sguequierre marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| `timeout_ms` | int | Optional | Time to wait in milliseconds before initiating a timeout when requesting readings from your ultrasonic sensor. <br> Default: `1000`. | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The default timeout for the micro-rdk usonic sensor is actually 50ms, and it is clamped to 100ms. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you mean by clamped, it can't go any higher than? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's right. Even if you put in 1000 it will internally limit the timeout to 100ms. The implementation in the micro-rdk is currently blocking. The sensor device itself never needs more than, say, 60ms. But if you set the timeout to 10000ms or something you would basically hang the micro-rdk, so we ignore any timeout above 100ms.
sguequierre marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
{{< readfile "/static/include/components/test-control/sensor-control.md" >}} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,13 +8,14 @@ The micro-RDK is a lightweight version of the {{% glossary_tooltip term_id="rdk" | |
|
||
The only microcontroller the micro-RDK currently supports is the [ESP32](https://www.espressif.com/en/products/socs/esp32). | ||
|
||
[Client API](/build/program/apis/) usage with the micro-RDK currently supports only the following {{< glossary_tooltip term_id="resource" text="resources" >}}: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great change! |
||
[Client API](/build/program/apis/) usage with the micro-RDK currently supports the following {{< glossary_tooltip term_id="resource" text="resources" >}}: | ||
|
||
- [Base](/build/micro-rdk/base/) | ||
- [Board](/build/micro-rdk/board/) | ||
- [Encoder](/build/micro-rdk/encoder/) | ||
- [Movement Sensor](/build/micro-rdk/movement-sensor/) | ||
- [Motor](/build/micro-rdk/motor/) | ||
- [Sensor](/build/micro-rdk/sensor/) | ||
- [Servo](/build/micro-rdk/servo/) | ||
- [Generic](/build/micro-rdk/generic/) | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sp.
measure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops! thanks