This page (revision-13) was last changed on 2021-03-01 17:59 by Murray Altheim

This page was created on 2021-02-26 00:09 by Murray Altheim

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
13 2021-03-01 17:59 5 KB Murray Altheim to previous
12 2021-03-01 17:58 5 KB Murray Altheim to previous | to last
11 2021-02-28 09:18 5 KB Murray Altheim to previous | to last
10 2021-02-28 08:55 3 KB Murray Altheim to previous | to last
9 2021-02-28 08:53 3 KB Murray Altheim to previous | to last
8 2021-02-26 03:06 3 KB Murray Altheim to previous | to last
7 2021-02-26 01:25 3 KB Murray Altheim to previous | to last
6 2021-02-26 01:22 3 KB Murray Altheim to previous | to last
5 2021-02-26 00:59 2 KB Murray Altheim to previous | to last
4 2021-02-26 00:56 2 KB Murray Altheim to previous | to last
3 2021-02-26 00:35 651 bytes Murray Altheim to previous | to last
2 2021-02-26 00:09 537 bytes Murray Altheim to previous | to last
1 2021-02-26 00:09 538 bytes Murray Altheim to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
[{Image src='attach/KD01/KD01-side.jpg' link='attach/KD01/KD01-side.jpg' width='400' caption='KD01 side view (click to enlarge)' align='right' class='imgFloatRight'}]
This is the preliminary documentation for the __[KD01]__ robot, a 2 wheel (plus caster) differential drive robot.
At line 3 removed one line
This page describes the __[KD01]__ robot, a 2 wheel (plus caster) __differential drive__ robot. It shares the same software, chassis components, basic drive train, motor encoders and controllers as the [KR01].
At line 5 removed 17 lines
! Description
The [KR01] robot is still under development, and as an experimental platform it is performing admirably.
[{Image src='https://robots.org.nz/wp-content/uploads/2021/02/kd01-plan-1881.jpg' link='https://robots.org.nz/wp-content/uploads/2021/02/kd01-plan-1881.jpg' width='400' caption='KD01 planning (click to enlarge)' align='right' class='imgFloatRight'}]
As it has no rotational steering like a car (i.e., its wheels are always facing perpendicular to the central axis of the robot), turning involves creating a difference in speed of either its port or starboard motors. Turning therefore requires wheel slippage. At an extreme, if the robot's wheels where so sticky that it couldn't slip over the surface of the ground, the robot couldn't turn at all. When the robot is on, say, a wooden floor, there is a noticeable shudder as its wheels alternately and unpredictably stick and un-stick from the surface, whereas on a dry wooden deck, on grass or dirt this wouldn't much of a problem.
So one limitation with its four wheel design — where the two motors on each side of the robot are wired in parallel to the motor controller — is that it has difficulty rotating in place when on any surface that provides significant friction for its silicon tires. When attempting to perform precise navigation on smooth indoor floors the KR01 is not really very well suited.
Hence the desire to build a differential drive robot.
...more later.
!! Available Media
At line 30 removed 67 lines
!! I2C Bus
Things change all the time, but here's a sample of what's on the robot:
{{% i2cdetect -y 1}}
{{{
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- 15 -- -- 18 -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- 4a -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- 74 -- -- 77
}}}
* 0x15 : ThunderBorg motor controller
* 0x18 : RGB Encoder breakout
* 0x38 : HT0740 Switch (wired to cooling fan)
* 0x48 : ADS1015 AD converter
* 0x4A : BNO085 IMU
* 0x74 : starboard RGBMatrix5x5
* 0x77 : port RGBMatrix5x5
!! GPIO Pin Usage
[{Image src='https://service.robots.org.nz/wiki/attach/GPIO/raspberry-pi-pinout.png' width='900' caption='GPIO pins on a Raspberry Pi A+' align='center'}]
%%small
|| PIN || PIN
| %%org 3V3 %% | %%red +5V %%
| __02__: SDA (I2C) | %%red +5V %%
| __03__: SCL (I2C) | %%grn GND %%
| __04__ | __14__: TXD0
| %%grn GND %% | __15__: RXD0
| __17__: %%prp ENCODER A2 STBD %% (white) | __18__: %%prp ENCODER B2 STBD %% %%gry (PCM_CLK) %% (violet)
| __27__: GPIO 27 (unused) | %%grn GND %%
| __22__: %%prp ENCODER A1 PORT %% (grey) | __23__: %%prp ENCODER B1 PORT %% (blue) %%sup † %%
| %%org 3V3 %% %%sup † %% | __24__: GPIO 24%%sup † %% __Button B on 1.14" Mini Pi TFT Display__
| __10__: MOSI%%sup † %% | %%grn GND %% %%sup † %%
| __9__: MISO%%sup † %% | __25__: GPIO 25%%sup † %%
| __11__: SCLK%%sup † %% | __8__: CE0%%sup † %%
| %%grn GND %% | __7__: CE1
| %%gry ID_SD %% | %%gry ID_SC %%
| __5__: ext clock (grey, from Itsy Bitsy) | %%grn GND %%
| __6__: rosd toggle switch (orange) | __12__: PWM IRQ (TEMP)
| __13__: | %%grn GND %%
| __19__: | __16__: __Button A on 1.14" Mini Pi TFT Display__ (white/blue)
| __26__: (unused: conflict with SPI) | __20__: __Mast IR__
| %%grn GND %% | __21__:
%%
%%small
†   part of cable assembly connecting to [Adafruit 2.0" 320x240 Color IPS TFT Display|https://www.adafruit.com/product/4311] \\
‡   part of cable assembly connecting to [Adafruit 1.14" Mini Pi TFT Display|https://www.adafruit.com/product/4393]
%%
For sensor wires, wire markings are orange or red for port, green for starboard (just like on a boat).
! Links
* [Differential Wheeled Robot|https://en.wikipedia.org/wiki/Differential_wheeled_robot] on Wikipedia