bluer-sbc 9.101.1__py3-none-any.whl → 9.168.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bluer_sbc/.abcli/seed/rpi_64_bit.sh +36 -0
- bluer_sbc/README/design.py +18 -14
- bluer_sbc/README/designs/__init__.py +23 -53
- bluer_sbc/README/designs/adapter_bus.py +59 -0
- bluer_sbc/README/designs/battery_bus.py +25 -7
- bluer_sbc/README/designs/bryce.py +8 -0
- bluer_sbc/README/designs/cheshmak.py +9 -0
- bluer_sbc/README/designs/nafha.py +39 -2
- bluer_sbc/README/designs/shelter.py +39 -9
- bluer_sbc/README/designs/swallow.py +25 -0
- bluer_sbc/README/designs/swallow_head.py +68 -0
- bluer_sbc/README/designs/{x.py → template.py} +12 -0
- bluer_sbc/README/designs/ultrasonic_sensor_tester.py +8 -0
- bluer_sbc/README/parts.py +13 -1
- bluer_sbc/README/root.py +2 -0
- bluer_sbc/__init__.py +1 -1
- bluer_sbc/config.env +1 -1
- bluer_sbc/env.py +4 -0
- bluer_sbc/parts/db.py +110 -1
- {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.168.1.dist-info}/METADATA +6 -5
- {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.168.1.dist-info}/RECORD +24 -29
- bluer_sbc/designs/__init__.py +0 -0
- bluer_sbc/designs/battery_bus/__init__.py +0 -0
- bluer_sbc/designs/battery_bus/parts.py +0 -6
- bluer_sbc/designs/swallow/__init__.py +0 -0
- bluer_sbc/designs/swallow/parts.py +0 -15
- bluer_sbc/designs/swallow_head/__init__.py +0 -0
- bluer_sbc/designs/swallow_head/parts.py +0 -56
- {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.168.1.dist-info}/WHEEL +0 -0
- {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.168.1.dist-info}/licenses/LICENSE +0 -0
- {bluer_sbc-9.101.1.dist-info → bluer_sbc-9.168.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# internal function to bluer_ai_seed.
|
|
4
|
+
# seed is NOT local
|
|
5
|
+
function bluer_ai_seed_rpi_64_bit() {
|
|
6
|
+
bluer_ai_seed add_kaggle
|
|
7
|
+
|
|
8
|
+
bluer_ai_seed add_ssh_key sudo
|
|
9
|
+
|
|
10
|
+
seed="${seed}sudo apt-get --yes --force-yes install git$delim_section"
|
|
11
|
+
|
|
12
|
+
bluer_ai_seed add_repo
|
|
13
|
+
|
|
14
|
+
bluer_ai_seed add_bluer_ai_env_ssp
|
|
15
|
+
|
|
16
|
+
local ssp="--break-system-packages"
|
|
17
|
+
|
|
18
|
+
seed="${seed}sudo apt update$delim"
|
|
19
|
+
seed="${seed}sudo apt install -y python3-pip$delim"
|
|
20
|
+
seed="${seed}pip3 install $ssp -e .$delim_section"
|
|
21
|
+
|
|
22
|
+
bluer_ai_seed add_repo repo=bluer-objects
|
|
23
|
+
seed="${seed}pip3 install $ssp -e .$delim_section"
|
|
24
|
+
seed="${seed}$(bluer_ai_seed add_file $abcli_path_git/bluer-objects/.env \$HOME/git/bluer-objects/.env)$delim_section"
|
|
25
|
+
|
|
26
|
+
bluer_ai_seed add_repo repo=bluer-sbc
|
|
27
|
+
seed="${seed}pip3 install $ssp -e .$delim_section"
|
|
28
|
+
|
|
29
|
+
seed="${seed}pip3 install $ssp opencv-python$delim"
|
|
30
|
+
seed="${seed}sudo apt install -y python3-picamera2$delim"
|
|
31
|
+
seed="${seed}pip3 install --force-reinstall --no-cache-dir simplejpeg$delim"
|
|
32
|
+
seed="${seed}pip3 install $ssp evdev$delim_section"
|
|
33
|
+
|
|
34
|
+
seed="${seed}cd; cd git; cd bluer-ai$delim"
|
|
35
|
+
seed="${seed}source ./bluer_ai/.abcli/bluer_ai.sh$delim_section"
|
|
36
|
+
}
|
bluer_sbc/README/design.py
CHANGED
|
@@ -1,36 +1,40 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Dict, List
|
|
2
2
|
|
|
3
3
|
from bluer_objects import markdown
|
|
4
4
|
|
|
5
5
|
from bluer_sbc.parts.db import db_of_parts
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
def
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
def design_doc(
|
|
9
|
+
design_name: str,
|
|
10
|
+
items: List[str] = [],
|
|
11
|
+
dict_of_parts: dict = {},
|
|
12
|
+
macros: dict = {},
|
|
13
|
+
own_folder: bool = False,
|
|
14
|
+
parts_reference: str = "./parts",
|
|
12
15
|
) -> Dict:
|
|
13
|
-
|
|
14
|
-
"items": items,
|
|
15
|
-
}
|
|
16
|
-
|
|
16
|
+
macros_ = {}
|
|
17
17
|
if dict_of_parts:
|
|
18
|
-
|
|
18
|
+
macros_ = {
|
|
19
19
|
"parts_images:::": markdown.generate_table(
|
|
20
20
|
db_of_parts.as_images(
|
|
21
21
|
dict_of_parts,
|
|
22
|
-
reference=
|
|
22
|
+
reference=parts_reference,
|
|
23
23
|
),
|
|
24
24
|
cols=10,
|
|
25
25
|
log=False,
|
|
26
26
|
),
|
|
27
27
|
"parts_list:::": db_of_parts.as_list(
|
|
28
28
|
dict_of_parts,
|
|
29
|
-
reference=
|
|
29
|
+
reference=parts_reference,
|
|
30
30
|
log=False,
|
|
31
31
|
),
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
macros_.update(macros)
|
|
35
35
|
|
|
36
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
"path": "../docs/{}{}".format(design_name, "" if own_folder else ".md"),
|
|
38
|
+
"items": items,
|
|
39
|
+
"macros": macros_,
|
|
40
|
+
}
|
|
@@ -1,56 +1,26 @@
|
|
|
1
|
-
from bluer_sbc.README.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
from bluer_sbc.README.designs import (
|
|
2
|
+
cheshmak,
|
|
3
|
+
battery_bus,
|
|
4
|
+
adapter_bus,
|
|
5
|
+
swallow,
|
|
6
|
+
swallow_head,
|
|
7
|
+
bryce,
|
|
8
|
+
nafha,
|
|
9
|
+
shelter,
|
|
10
|
+
template,
|
|
11
|
+
ultrasonic_sensor_tester,
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
-
from bluer_sbc.designs.battery_bus.parts import dict_of_parts as battery_bus_parts
|
|
15
|
-
from bluer_sbc.designs.swallow.parts import dict_of_parts as swallow_parts
|
|
16
|
-
from bluer_sbc.designs.swallow_head.parts import dict_of_parts as swallow_head_parts
|
|
17
14
|
|
|
18
|
-
docs =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
bryce_items,
|
|
31
|
-
),
|
|
32
|
-
"cheshmak": design(
|
|
33
|
-
cheshmak_items,
|
|
34
|
-
),
|
|
35
|
-
"nafha": design(
|
|
36
|
-
nafha_items,
|
|
37
|
-
),
|
|
38
|
-
"shelter": design(
|
|
39
|
-
shelter_items,
|
|
40
|
-
),
|
|
41
|
-
"swallow-head": design(
|
|
42
|
-
swallow_head_items,
|
|
43
|
-
swallow_head_parts,
|
|
44
|
-
),
|
|
45
|
-
"swallow": design(
|
|
46
|
-
swallow_items,
|
|
47
|
-
swallow_parts,
|
|
48
|
-
),
|
|
49
|
-
"ultrasonic-sensor-tester": design(
|
|
50
|
-
ultrasonic_sensor_tester_items,
|
|
51
|
-
),
|
|
52
|
-
"x": design(
|
|
53
|
-
x_items,
|
|
54
|
-
),
|
|
55
|
-
}.items()
|
|
56
|
-
]
|
|
15
|
+
docs = (
|
|
16
|
+
battery_bus.docs
|
|
17
|
+
+ adapter_bus.docs
|
|
18
|
+
+ bryce.docs
|
|
19
|
+
+ cheshmak.docs
|
|
20
|
+
+ nafha.docs
|
|
21
|
+
+ shelter.docs
|
|
22
|
+
+ swallow_head.docs
|
|
23
|
+
+ swallow.docs
|
|
24
|
+
+ ultrasonic_sensor_tester.docs
|
|
25
|
+
+ template.docs
|
|
26
|
+
)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from bluer_objects import README
|
|
2
|
+
from bluer_objects.README.items import ImageItems
|
|
3
|
+
from bluer_objects.README.consts import assets_url, designs_url
|
|
4
|
+
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
assets2 = assets_url(
|
|
9
|
+
suffix="adapter-bus",
|
|
10
|
+
volume=2,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
marquee = README.Items(
|
|
14
|
+
[
|
|
15
|
+
{
|
|
16
|
+
"name": "adapter bus",
|
|
17
|
+
"marquee": f"{assets2}/20251017_222911.jpg",
|
|
18
|
+
"url": "./bluer_sbc/docs/adapter-bus.md",
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
items = ImageItems(
|
|
24
|
+
{
|
|
25
|
+
designs_url(
|
|
26
|
+
"adapter-bus/wiring.png?raw=true",
|
|
27
|
+
): designs_url(
|
|
28
|
+
"adapter-bus/wiring.svg",
|
|
29
|
+
),
|
|
30
|
+
**{
|
|
31
|
+
f"{assets2}/{timestamp}.jpg": ""
|
|
32
|
+
for timestamp in [
|
|
33
|
+
"20251017_222911",
|
|
34
|
+
"20251017_222929",
|
|
35
|
+
"20251017_222938",
|
|
36
|
+
"20251017_222943",
|
|
37
|
+
"20251017_222949",
|
|
38
|
+
"20251017_223017",
|
|
39
|
+
"20251017_223034",
|
|
40
|
+
"20251018_213244",
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
parts = {
|
|
47
|
+
"charging-port": "",
|
|
48
|
+
"dsn-vc288": "",
|
|
49
|
+
"charger-socket": "",
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
docs = [
|
|
54
|
+
design_doc(
|
|
55
|
+
"adapter-bus",
|
|
56
|
+
items,
|
|
57
|
+
parts,
|
|
58
|
+
)
|
|
59
|
+
]
|
|
@@ -3,7 +3,9 @@ from bluer_objects.README.items import ImageItems
|
|
|
3
3
|
from bluer_objects.README.consts import assets_url
|
|
4
4
|
from bluer_objects.README.consts import designs_url
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
from bluer_sbc.README.design import design_doc
|
|
7
|
+
|
|
8
|
+
assets2 = assets_url(
|
|
7
9
|
suffix="battery-bus",
|
|
8
10
|
volume=2,
|
|
9
11
|
)
|
|
@@ -12,7 +14,7 @@ marquee = README.Items(
|
|
|
12
14
|
[
|
|
13
15
|
{
|
|
14
16
|
"name": "battery bus",
|
|
15
|
-
"marquee": f"{
|
|
17
|
+
"marquee": f"{assets2}/20251007_221902.jpg",
|
|
16
18
|
"url": "./bluer_sbc/docs/battery-bus.md",
|
|
17
19
|
}
|
|
18
20
|
]
|
|
@@ -20,15 +22,31 @@ marquee = README.Items(
|
|
|
20
22
|
|
|
21
23
|
items = ImageItems(
|
|
22
24
|
{
|
|
23
|
-
f"{
|
|
25
|
+
f"{assets2}/concept.png": "",
|
|
24
26
|
designs_url(
|
|
25
27
|
"battery-bus/electrical/wiring.png?raw=true",
|
|
26
28
|
): designs_url(
|
|
27
29
|
"battery-bus/electrical/wiring.svg",
|
|
28
30
|
),
|
|
29
|
-
f"{
|
|
30
|
-
f"{
|
|
31
|
-
f"{
|
|
32
|
-
f"{
|
|
31
|
+
f"{assets2}/20251007_221902.jpg": "",
|
|
32
|
+
f"{assets2}/20251007_220642.jpg": "",
|
|
33
|
+
f"{assets2}/20251007_220520.jpg": "",
|
|
34
|
+
f"{assets2}/20251007_220601.jpg": "",
|
|
33
35
|
}
|
|
34
36
|
)
|
|
37
|
+
|
|
38
|
+
parts = {
|
|
39
|
+
"SLA-Battery": "",
|
|
40
|
+
"on-off-switch": "",
|
|
41
|
+
"charging-port": "",
|
|
42
|
+
"dsn-vc288": "",
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
docs = [
|
|
47
|
+
design_doc(
|
|
48
|
+
"battery-bus",
|
|
49
|
+
items,
|
|
50
|
+
parts,
|
|
51
|
+
)
|
|
52
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
image_template = assets2 + "bryce/{}?raw=true"
|
|
7
8
|
|
|
@@ -18,3 +19,10 @@ marquee = README.Items(
|
|
|
18
19
|
items = ImageItems(
|
|
19
20
|
{image_template.format(f"{index+1:02}.jpg"): "" for index in range(9)}
|
|
20
21
|
)
|
|
22
|
+
|
|
23
|
+
docs = [
|
|
24
|
+
design_doc(
|
|
25
|
+
"bryce",
|
|
26
|
+
items,
|
|
27
|
+
)
|
|
28
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
image_template = assets2 + "cheshmak/{}?raw=true"
|
|
7
8
|
|
|
@@ -18,3 +19,11 @@ marquee = README.Items(
|
|
|
18
19
|
items = ImageItems(
|
|
19
20
|
{image_template.format(f"{index+1:02}.png"): "" for index in range(1)}
|
|
20
21
|
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
docs = [
|
|
25
|
+
design_doc(
|
|
26
|
+
"cheshmak",
|
|
27
|
+
items,
|
|
28
|
+
)
|
|
29
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
image_template = assets2 + "nafha/{}?raw=true"
|
|
7
8
|
|
|
@@ -10,11 +11,47 @@ marquee = README.Items(
|
|
|
10
11
|
{
|
|
11
12
|
"name": "nafha",
|
|
12
13
|
"marquee": image_template.format("01.png"),
|
|
13
|
-
"url": "./bluer_sbc/docs/nafha
|
|
14
|
+
"url": "./bluer_sbc/docs/nafha",
|
|
14
15
|
}
|
|
15
16
|
]
|
|
16
17
|
)
|
|
17
18
|
|
|
18
19
|
items = ImageItems(
|
|
19
|
-
{
|
|
20
|
+
{
|
|
21
|
+
image_template.format(f"{filename}"): ""
|
|
22
|
+
for filename in [f"{index+1:02}.png" for index in range(4)]
|
|
23
|
+
+ [
|
|
24
|
+
"20251028_123428.jpg",
|
|
25
|
+
"20251028_123438.jpg",
|
|
26
|
+
"20251103_215221.jpg",
|
|
27
|
+
"20251103_215248.jpg",
|
|
28
|
+
"20251103_215253.jpg",
|
|
29
|
+
"20251103_215257.jpg",
|
|
30
|
+
"20251103_215301.jpg",
|
|
31
|
+
"20251103_215319.jpg",
|
|
32
|
+
]
|
|
33
|
+
},
|
|
20
34
|
)
|
|
35
|
+
|
|
36
|
+
parts = {
|
|
37
|
+
"dsn-vc288": "",
|
|
38
|
+
"charging-port": "",
|
|
39
|
+
"pwm-manual-dc-motor-controller": "",
|
|
40
|
+
"heater-element": "12 V, 4.5 Ω, 32 w",
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
docs = [
|
|
44
|
+
design_doc(
|
|
45
|
+
"nafha",
|
|
46
|
+
items,
|
|
47
|
+
parts,
|
|
48
|
+
own_folder=True,
|
|
49
|
+
parts_reference="../parts",
|
|
50
|
+
),
|
|
51
|
+
{
|
|
52
|
+
"path": "../docs/nafha/parts-v1.md",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"path": "../docs/nafha/parts-v2.md",
|
|
56
|
+
},
|
|
57
|
+
]
|
|
@@ -2,21 +2,23 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
from bluer_objects.README.consts import assets_url
|
|
4
4
|
|
|
5
|
-
from bluer_sbc.README.
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
6
6
|
|
|
7
|
-
image_template = assets2 + "shelter/{}?raw=true"
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
assets2 = assets_url(
|
|
10
9
|
suffix="shelter",
|
|
11
10
|
volume=2,
|
|
12
11
|
)
|
|
13
12
|
|
|
13
|
+
image_template = assets2 + "/{}?raw=true"
|
|
14
|
+
|
|
15
|
+
|
|
14
16
|
marquee = README.Items(
|
|
15
17
|
[
|
|
16
18
|
{
|
|
17
19
|
"name": "shelter",
|
|
18
|
-
"marquee": f"{
|
|
19
|
-
"url": "./bluer_sbc/docs/shelter
|
|
20
|
+
"marquee": f"{assets2}/20251104_000755.jpg",
|
|
21
|
+
"url": "./bluer_sbc/docs/shelter",
|
|
20
22
|
}
|
|
21
23
|
]
|
|
22
24
|
)
|
|
@@ -25,9 +27,37 @@ items = ImageItems(
|
|
|
25
27
|
{image_template.format(f"{index+1:02}.png"): "" for index in range(4)}
|
|
26
28
|
) + ImageItems(
|
|
27
29
|
{
|
|
28
|
-
f"{
|
|
29
|
-
f"{
|
|
30
|
-
f"{
|
|
31
|
-
f"{
|
|
30
|
+
f"{assets2}/20251005_180841.jpg": "",
|
|
31
|
+
f"{assets2}/20251006_181432.jpg": "",
|
|
32
|
+
f"{assets2}/20251006_181509.jpg": "",
|
|
33
|
+
f"{assets2}/20251006_181554.jpg": "",
|
|
34
|
+
f"{assets2}/20251028_113245.jpg": "",
|
|
35
|
+
f"{assets2}/20251103_182323.jpg": "",
|
|
36
|
+
f"{assets2}/20251104_000755.jpg": "",
|
|
37
|
+
f"{assets2}/20251109_000501.jpg": "",
|
|
38
|
+
f"{assets2}/20251109_000641.jpg": "",
|
|
39
|
+
f"{assets2}/20251109_002124.jpg": "",
|
|
40
|
+
f"{assets2}/20251109_002639.jpg": "",
|
|
32
41
|
}
|
|
33
42
|
)
|
|
43
|
+
|
|
44
|
+
parts = {
|
|
45
|
+
"220VAC-dimmer": "",
|
|
46
|
+
"resistance-heating-wire": "1.59 kΩ",
|
|
47
|
+
"ceramic-terminal": "",
|
|
48
|
+
"mountable-digital-thermometer": "",
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
docs = [
|
|
53
|
+
design_doc(
|
|
54
|
+
"shelter",
|
|
55
|
+
items,
|
|
56
|
+
parts,
|
|
57
|
+
own_folder=True,
|
|
58
|
+
parts_reference="../parts",
|
|
59
|
+
),
|
|
60
|
+
{
|
|
61
|
+
"path": "../docs/shelter/parts-v1.md",
|
|
62
|
+
},
|
|
63
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
image_template = assets2 + "swallow/design/v5/{}?raw=true"
|
|
@@ -19,3 +20,27 @@ marquee = README.Items(
|
|
|
19
20
|
items = ImageItems(
|
|
20
21
|
{image_template.format(f"{index+1:02}.jpg"): "" for index in range(6)}
|
|
21
22
|
)
|
|
23
|
+
|
|
24
|
+
parts = {
|
|
25
|
+
"BTS7960": "2 x",
|
|
26
|
+
"connector": "2 females",
|
|
27
|
+
"white-terminal": "8 x",
|
|
28
|
+
"nuts-bolts-spacers": "M3: ({})".format(
|
|
29
|
+
" + ".join(
|
|
30
|
+
[
|
|
31
|
+
"8 x 25 mm spacer",
|
|
32
|
+
"4 x 30 mm spacer",
|
|
33
|
+
"4 x nut",
|
|
34
|
+
]
|
|
35
|
+
)
|
|
36
|
+
),
|
|
37
|
+
"solid-cable-1-15": "20 cm x (red + black/blue)",
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
docs = [
|
|
41
|
+
design_doc(
|
|
42
|
+
"swallow",
|
|
43
|
+
items,
|
|
44
|
+
parts,
|
|
45
|
+
)
|
|
46
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
image_template = assets2 + "swallow/design/head-v1/{}?raw=true"
|
|
@@ -19,3 +20,70 @@ marquee = README.Items(
|
|
|
19
20
|
items = ImageItems(
|
|
20
21
|
{image_template.format(f"{index+1:02}.jpg"): "" for index in range(6)}
|
|
21
22
|
)
|
|
23
|
+
|
|
24
|
+
parts = {
|
|
25
|
+
"sd-card-32-gb": "",
|
|
26
|
+
"rpi": "",
|
|
27
|
+
"XL4015": "",
|
|
28
|
+
"470-mF": "",
|
|
29
|
+
"Polyfuse": "optional",
|
|
30
|
+
"TVS-diode": "",
|
|
31
|
+
"resistor": "7 x 330-470 Ω + N x 2.2 kΩ + N x 3.3 kΩ",
|
|
32
|
+
"LED": "green + red + yellow + 4 x blue",
|
|
33
|
+
"rpi-camera": "",
|
|
34
|
+
"PCB-single-14x9_5": "2 x",
|
|
35
|
+
"PCB-double-9x7": "2 x",
|
|
36
|
+
"pushbutton": "",
|
|
37
|
+
"ultrasonic-sensor": "4 x",
|
|
38
|
+
"connector": "1 female",
|
|
39
|
+
"nuts-bolts-spacers": " + ".join(
|
|
40
|
+
[
|
|
41
|
+
"M2: ({})".format(
|
|
42
|
+
" + ".join(
|
|
43
|
+
[
|
|
44
|
+
"2 x bolt",
|
|
45
|
+
"2 x 5 mm spacer",
|
|
46
|
+
"4 x nut",
|
|
47
|
+
]
|
|
48
|
+
)
|
|
49
|
+
),
|
|
50
|
+
"M2.5: ({})".format(
|
|
51
|
+
" + ".join(
|
|
52
|
+
[
|
|
53
|
+
"4 x bolt",
|
|
54
|
+
"8 x 10 mm spacer",
|
|
55
|
+
"4 x nut",
|
|
56
|
+
]
|
|
57
|
+
)
|
|
58
|
+
),
|
|
59
|
+
"M3: ({})".format(
|
|
60
|
+
" + ".join(
|
|
61
|
+
[
|
|
62
|
+
"1 x bolt",
|
|
63
|
+
"3 x 35 mm spacer",
|
|
64
|
+
"3 x 25 mm spacer",
|
|
65
|
+
"7 x 15 mm spacer",
|
|
66
|
+
"4 x 5 mm spacer",
|
|
67
|
+
"5 x nut",
|
|
68
|
+
]
|
|
69
|
+
)
|
|
70
|
+
),
|
|
71
|
+
]
|
|
72
|
+
),
|
|
73
|
+
"plexiglass": "14 cm x 9.5 cm",
|
|
74
|
+
"white-terminal": "2 x",
|
|
75
|
+
"dupont-cables": "1 x 30 cm + 1 x 10 cm",
|
|
76
|
+
"16-awg-wire": "40 cm x (red + black/blue)",
|
|
77
|
+
"solid-cable-1-15": "10 cm x (red + black/blue)",
|
|
78
|
+
"strong-thread": "1 m",
|
|
79
|
+
"pin-headers": "1 x (female, 2 x 40) -> 2 x 20 + 2 x (male, 1 x 40) -> 4 x 6 + 4 x 2 + 2 x 20",
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
docs = [
|
|
84
|
+
design_doc(
|
|
85
|
+
"swallow-head",
|
|
86
|
+
items,
|
|
87
|
+
parts,
|
|
88
|
+
)
|
|
89
|
+
]
|
|
@@ -2,6 +2,8 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
from bluer_objects.README.consts import assets_url
|
|
4
4
|
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
assets2_x = assets_url(
|
|
7
9
|
suffix="x",
|
|
@@ -24,3 +26,13 @@ items = ImageItems(
|
|
|
24
26
|
f"{assets2_x}/TBA.jpg": "",
|
|
25
27
|
}
|
|
26
28
|
)
|
|
29
|
+
|
|
30
|
+
parts = {}
|
|
31
|
+
|
|
32
|
+
docs = [
|
|
33
|
+
design_doc(
|
|
34
|
+
"template",
|
|
35
|
+
items,
|
|
36
|
+
parts,
|
|
37
|
+
)
|
|
38
|
+
]
|
|
@@ -2,6 +2,7 @@ from bluer_objects import README
|
|
|
2
2
|
from bluer_objects.README.items import ImageItems
|
|
3
3
|
|
|
4
4
|
from bluer_sbc.README.designs.consts import assets2
|
|
5
|
+
from bluer_sbc.README.design import design_doc
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
image_template = assets2 + "ultrasonic-sensor-tester/{}?raw=true"
|
|
@@ -17,3 +18,10 @@ marquee = README.Items(
|
|
|
17
18
|
)
|
|
18
19
|
|
|
19
20
|
items = ImageItems({image_template.format(f"{index:02}.jpg"): "" for index in range(6)})
|
|
21
|
+
|
|
22
|
+
docs = [
|
|
23
|
+
design_doc(
|
|
24
|
+
"ultrasonic-sensor-tester",
|
|
25
|
+
items,
|
|
26
|
+
)
|
|
27
|
+
]
|
bluer_sbc/README/parts.py
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
from bluer_objects import markdown
|
|
2
|
+
|
|
1
3
|
from bluer_sbc.parts.db import db_of_parts
|
|
2
4
|
|
|
3
5
|
docs = [
|
|
4
6
|
{
|
|
5
7
|
"path": "../docs/parts",
|
|
6
|
-
"macros": {
|
|
8
|
+
"macros": {
|
|
9
|
+
"parts_list:::": db_of_parts.README,
|
|
10
|
+
"parts_images:::": markdown.generate_table(
|
|
11
|
+
db_of_parts.as_images(
|
|
12
|
+
{part.name: "" for part in db_of_parts},
|
|
13
|
+
reference="../parts",
|
|
14
|
+
),
|
|
15
|
+
cols=10,
|
|
16
|
+
log=False,
|
|
17
|
+
),
|
|
18
|
+
},
|
|
7
19
|
}
|
|
8
20
|
] + [
|
|
9
21
|
{
|
bluer_sbc/README/root.py
CHANGED
|
@@ -5,6 +5,7 @@ from bluer_sbc.README.designs.swallow_head import marquee as swallow_head_marque
|
|
|
5
5
|
from bluer_sbc.README.designs.bryce import marquee as bryce_marquee
|
|
6
6
|
from bluer_sbc.README.designs.nafha import marquee as nafha_marquee
|
|
7
7
|
from bluer_sbc.README.designs.shelter import marquee as shelter_marquee
|
|
8
|
+
from bluer_sbc.README.designs.adapter_bus import marquee as adapter_bus_marquee
|
|
8
9
|
from bluer_sbc.README.designs.battery_bus import marquee as battery_bus_marquee
|
|
9
10
|
from bluer_sbc.README.designs.ultrasonic_sensor_tester import (
|
|
10
11
|
marquee as ultrasonic_sensor_tester_marquee,
|
|
@@ -17,6 +18,7 @@ docs = [
|
|
|
17
18
|
+ swallow_head_marquee
|
|
18
19
|
+ swallow_marquee
|
|
19
20
|
+ battery_bus_marquee
|
|
21
|
+
+ adapter_bus_marquee
|
|
20
22
|
+ ultrasonic_sensor_tester_marquee
|
|
21
23
|
+ bryce_marquee
|
|
22
24
|
+ cheshmak_marquee
|
bluer_sbc/__init__.py
CHANGED
bluer_sbc/config.env
CHANGED
bluer_sbc/env.py
CHANGED
|
@@ -38,3 +38,7 @@ BLUER_SBC_SESSION_TEMPERATURE_PERIOD = get_env(
|
|
|
38
38
|
BLUER_SBC_ENV = get_env("BLUER_SBC_ENV")
|
|
39
39
|
|
|
40
40
|
BLUER_SBC_SWALLOW_HAS_STEERING = get_env("BLUER_SBC_SWALLOW_HAS_STEERING", 0)
|
|
41
|
+
BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD = get_env("BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD", 0)
|
|
42
|
+
BLUER_SBC_SWALLOW_HAS_BPS = get_env("BLUER_SBC_SWALLOW_HAS_BPS", 0)
|
|
43
|
+
|
|
44
|
+
BLUER_SBC_BPS_ANCHORED_AT = get_env("BLUER_SBC_BPS_ANCHORED_AT", "")
|
bluer_sbc/parts/db.py
CHANGED
|
@@ -75,6 +75,7 @@ db_of_parts["rpi"] = Part(
|
|
|
75
75
|
images=[
|
|
76
76
|
"rpi3bplus.png",
|
|
77
77
|
"gpio-pinout.png",
|
|
78
|
+
"rpi-measurements.png",
|
|
78
79
|
],
|
|
79
80
|
)
|
|
80
81
|
|
|
@@ -365,7 +366,7 @@ db_of_parts["on-off-switch"] = Part(
|
|
|
365
366
|
|
|
366
367
|
db_of_parts["charging-port"] = Part(
|
|
367
368
|
info=[
|
|
368
|
-
"charging port",
|
|
369
|
+
"charging port 5.5 mm",
|
|
369
370
|
],
|
|
370
371
|
images=[
|
|
371
372
|
"charging-port.jpg",
|
|
@@ -500,6 +501,114 @@ db_of_parts["tb6612"] = Part(
|
|
|
500
501
|
],
|
|
501
502
|
)
|
|
502
503
|
|
|
504
|
+
db_of_parts["small-on-off-switch"] = Part(
|
|
505
|
+
info=[
|
|
506
|
+
"small on/off switch",
|
|
507
|
+
],
|
|
508
|
+
images=[
|
|
509
|
+
"small-on-off-switch.jpg",
|
|
510
|
+
],
|
|
511
|
+
)
|
|
512
|
+
|
|
513
|
+
db_of_parts["double-sided-tape"] = Part(
|
|
514
|
+
info=[
|
|
515
|
+
"double-sided tape.",
|
|
516
|
+
],
|
|
517
|
+
images=[
|
|
518
|
+
"double-sided-tape.jpg",
|
|
519
|
+
],
|
|
520
|
+
)
|
|
521
|
+
|
|
522
|
+
db_of_parts["electrical-tape"] = Part(
|
|
523
|
+
info=[
|
|
524
|
+
"electrical tape",
|
|
525
|
+
],
|
|
526
|
+
images=[
|
|
527
|
+
"electrical-tape.jpg",
|
|
528
|
+
],
|
|
529
|
+
)
|
|
530
|
+
|
|
531
|
+
db_of_parts["micro-usb-cable"] = Part(
|
|
532
|
+
info=[
|
|
533
|
+
"Micro USB cable",
|
|
534
|
+
],
|
|
535
|
+
images=[
|
|
536
|
+
"micro-usb-cable.jpg",
|
|
537
|
+
],
|
|
538
|
+
)
|
|
539
|
+
|
|
540
|
+
db_of_parts["charger-socket"] = Part(
|
|
541
|
+
info=[
|
|
542
|
+
"charger socket 5.5 mm",
|
|
543
|
+
],
|
|
544
|
+
images=[
|
|
545
|
+
"charger-socket.jpg",
|
|
546
|
+
],
|
|
547
|
+
)
|
|
548
|
+
|
|
549
|
+
db_of_parts["220VAC-dimmer"] = Part(
|
|
550
|
+
info=[
|
|
551
|
+
"220VAC dimmer",
|
|
552
|
+
],
|
|
553
|
+
images=[
|
|
554
|
+
"220VAC-dimmer.jpeg",
|
|
555
|
+
],
|
|
556
|
+
)
|
|
557
|
+
|
|
558
|
+
db_of_parts["resistance-heating-wire"] = Part(
|
|
559
|
+
info=[
|
|
560
|
+
"resistance heating wire",
|
|
561
|
+
],
|
|
562
|
+
images=[
|
|
563
|
+
"resistance-heating-wire.jpg",
|
|
564
|
+
],
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
db_of_parts["ceramic-terminal"] = Part(
|
|
568
|
+
info=[
|
|
569
|
+
"ceramic terminal",
|
|
570
|
+
],
|
|
571
|
+
images=[
|
|
572
|
+
"ceramic-terminal.jpg",
|
|
573
|
+
],
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
db_of_parts["mountable-digital-thermometer"] = Part(
|
|
577
|
+
info=[
|
|
578
|
+
"mountable digital thermometer",
|
|
579
|
+
],
|
|
580
|
+
images=[
|
|
581
|
+
"mountable-digital-thermometer.jpeg",
|
|
582
|
+
],
|
|
583
|
+
)
|
|
584
|
+
|
|
585
|
+
db_of_parts["pwm-manual-dc-motor-controller"] = Part(
|
|
586
|
+
info=[
|
|
587
|
+
"pwm manual DC motor controller, 12 V, ≥ 5 A",
|
|
588
|
+
],
|
|
589
|
+
images=[
|
|
590
|
+
"pwm-manual-dc-motor-controller.jpg",
|
|
591
|
+
],
|
|
592
|
+
)
|
|
593
|
+
|
|
594
|
+
db_of_parts["heater-element"] = Part(
|
|
595
|
+
info=[
|
|
596
|
+
"heater element",
|
|
597
|
+
],
|
|
598
|
+
images=[
|
|
599
|
+
"heater-element.jpg",
|
|
600
|
+
],
|
|
601
|
+
)
|
|
602
|
+
|
|
603
|
+
db_of_parts["sd-card-32-gb"] = Part(
|
|
604
|
+
info=[
|
|
605
|
+
"SD card, 32 GB",
|
|
606
|
+
],
|
|
607
|
+
images=[
|
|
608
|
+
"sd-card-32-gb.jpg",
|
|
609
|
+
],
|
|
610
|
+
)
|
|
611
|
+
|
|
503
612
|
db_of_parts["template"] = Part(
|
|
504
613
|
info=[
|
|
505
614
|
"template",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_sbc
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.168.1
|
|
4
4
|
Summary: 🌀 AI for single board computers and related designs.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-sbc
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -47,9 +47,10 @@ pip install bluer_sbc
|
|
|
47
47
|
| | | |
|
|
48
48
|
| --- | --- | --- |
|
|
49
49
|
| [`swallow head`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow-head.md) | [`swallow`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/swallow.md) | [`battery bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery-bus.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/battery-bus.md) |
|
|
50
|
-
| [`
|
|
51
|
-
| [`
|
|
52
|
-
| [`
|
|
50
|
+
| [`adapter bus`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/adapter-bus.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/adapter-bus.md) | [`ultrasonic-sensor-tester`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/ultrasonic-sensor-tester.md) | [`bryce`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bryce.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/bryce.md) |
|
|
51
|
+
| [`cheshmak`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak.md) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/cheshmak.md) | [`nafha`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/nafha) | [`shelter`](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter) [](https://github.com/kamangir/bluer-sbc/blob/main/bluer_sbc/docs/shelter) |
|
|
52
|
+
| [`blue3`](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) [](https://github.com/kamangir/blue-bracket/blob/main/designs/blue3.md) | [`chenar-grove`](https://github.com/kamangir/blue-bracket/blob/main/designs/chenar-grove.md) [](https://github.com/kamangir/blue-bracket/blob/main/designs/chenar-grove.md) | [`cube`](https://github.com/kamangir/blue-bracket/blob/main/designs/cube.md) [](https://github.com/kamangir/blue-bracket/blob/main/designs/cube.md) |
|
|
53
|
+
| [`eye_nano`](https://github.com/kamangir/blue-bracket/blob/main/designs/eye_nano.md) [](https://github.com/kamangir/blue-bracket/blob/main/designs/eye_nano.md) | | |
|
|
53
54
|
|
|
54
55
|
## shortcuts
|
|
55
56
|
|
|
@@ -66,7 +67,7 @@ pip install bluer_sbc
|
|
|
66
67
|
|
|
67
68
|
[](https://github.com/kamangir/bluer-sbc/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-sbc/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-sbc/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-sbc/) [](https://pypistats.org/packages/bluer-sbc)
|
|
68
69
|
|
|
69
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-9.
|
|
70
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_sbc-9.168.1`](https://github.com/kamangir/bluer-sbc).
|
|
70
71
|
|
|
71
72
|
|
|
72
73
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
bluer_sbc/__init__.py,sha256=
|
|
1
|
+
bluer_sbc/__init__.py,sha256=lVd6__xpp_wNUzQu08Bmgf1HelmNZi4p1QRyEHDXJtA,312
|
|
2
2
|
bluer_sbc/__main__.py,sha256=mdHwITYb7ypMkevZnEBqFO-S4MYkdrTfbS8ZYTd5MBM,374
|
|
3
|
-
bluer_sbc/config.env,sha256=
|
|
4
|
-
bluer_sbc/env.py,sha256=
|
|
3
|
+
bluer_sbc/config.env,sha256=kPRvRowaTxEusZE66ME0asy4_cngYh2xcQlFvixvS5I,705
|
|
4
|
+
bluer_sbc/env.py,sha256=Bc8Wjz9e2E2Zv6-POjqil4dgjXAKkeMZh3DoKRw2HlE,1971
|
|
5
5
|
bluer_sbc/host.py,sha256=RacmqxPRBQrL--JHx_Q-KyuEjEZ1kSFu4fa5pCA0CHQ,209
|
|
6
6
|
bluer_sbc/logger.py,sha256=4euXgNprDpQSuR45RXy0kWQ1LvCL_dwOi2v37hVBWvk,99
|
|
7
7
|
bluer_sbc/sample.env,sha256=mX86TGaZvbbGKbiXQdInSBu7sVvLs2IzqYaHNVl0g5M,50
|
|
@@ -37,6 +37,7 @@ bluer_sbc/.abcli/seed/headless_rpi_64_bit.sh,sha256=1DzrVSSNIvKLW8J1fI7Iqepk1cB2
|
|
|
37
37
|
bluer_sbc/.abcli/seed/headless_ubuntu_rpi.sh,sha256=QQRkOLstdWequW4eutQPimhKwT1yHtHNRUJNhKN3FZ0,2512
|
|
38
38
|
bluer_sbc/.abcli/seed/jetson.sh,sha256=QAvc-6aQwZ5oEhV5oruGfyFUwftsrPnO_d_7ryRQRkk,971
|
|
39
39
|
bluer_sbc/.abcli/seed/rpi.sh,sha256=HzCcPnuC2DneMtiHawD6tjcgLuyCstljl-A90kmpDeg,968
|
|
40
|
+
bluer_sbc/.abcli/seed/rpi_64_bit.sh,sha256=eGdViHHnf9rDuBT8YOf-xVApKgkaA6K98wOppyjQymE,1219
|
|
40
41
|
bluer_sbc/.abcli/seed/swallow_raspbian.sh,sha256=QK9YSkLA0_j5D_r8cp5DENLKhnczUj4a40O4w68ER98,363
|
|
41
42
|
bluer_sbc/.abcli/tests/README.sh,sha256=0hp3y_URdsFtnYw5Ujty6xy5SNhNHGEVPqpQoYxu0WA,142
|
|
42
43
|
bluer_sbc/.abcli/tests/camera.sh,sha256=NRr-RbyNORMSHYxNu6VUpVzHIJ2Qy-5NQr2qh54kqUg,1013
|
|
@@ -47,32 +48,26 @@ bluer_sbc/.abcli/tests/version.sh,sha256=odDOmAFlzH7KtsAYWOmyLsQ6GAws6XadNlZ6H-N
|
|
|
47
48
|
bluer_sbc/README/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
49
|
bluer_sbc/README/aliases.py,sha256=jv6YlFBk7Bn72MEutmZ6UpELpLQs_i3_3Rm8BlPMc5g,161
|
|
49
50
|
bluer_sbc/README/build.py,sha256=42pCUarnbdwxuWci1GnCSWMtkt5P-zbiyHRd6ItVMqc,862
|
|
50
|
-
bluer_sbc/README/design.py,sha256=
|
|
51
|
-
bluer_sbc/README/parts.py,sha256=
|
|
52
|
-
bluer_sbc/README/root.py,sha256=
|
|
51
|
+
bluer_sbc/README/design.py,sha256=UpY8GiE5mNzZndasRCVYROl1OA_If2wqs2SR3HdC29E,987
|
|
52
|
+
bluer_sbc/README/parts.py,sha256=RexP6RRCt2w8Lg8e-_QwP70RzyPyc-AKAycpeK9m5r4,731
|
|
53
|
+
bluer_sbc/README/root.py,sha256=WYUpmpDrkGtwSDV9wiodn_bL1hbl56WlykjWXV7UQiI,1290
|
|
53
54
|
bluer_sbc/README/shortcuts.py,sha256=Pu7e83Vpz9mZv717jzOluJnGXwo22bUJPZ122NPjUpM,390
|
|
54
|
-
bluer_sbc/README/designs/__init__.py,sha256
|
|
55
|
-
bluer_sbc/README/designs/
|
|
55
|
+
bluer_sbc/README/designs/__init__.py,sha256=-afJImcOdHrprhJseJfHsHEGiKMg20EeNlrlp_jE0CY,428
|
|
56
|
+
bluer_sbc/README/designs/adapter_bus.py,sha256=sO0oRklT60vXRlwdEXALxI0jOlI2p4XEMHqOIKF1LCo,1208
|
|
57
|
+
bluer_sbc/README/designs/battery_bus.py,sha256=9Q314G5OMIA2NYxgPTIM8ga7X-yAcxvk78T8r1KDGd4,1119
|
|
56
58
|
bluer_sbc/README/designs/blue_bracket.py,sha256=4p80wXEAbn4y7jXrTqK1KFrtcQYJ3zdeBiDWR8E4aCI,866
|
|
57
|
-
bluer_sbc/README/designs/bryce.py,sha256=
|
|
58
|
-
bluer_sbc/README/designs/cheshmak.py,sha256=
|
|
59
|
+
bluer_sbc/README/designs/bryce.py,sha256=u6C09hXunGUPpVZVPHKcSdUoDyg1slUzq0AHzCStjV8,587
|
|
60
|
+
bluer_sbc/README/designs/cheshmak.py,sha256=ymLxh4XPurzIoVuFh-ZxWJ54KUIcKScY3uPH6gnD29s,600
|
|
59
61
|
bluer_sbc/README/designs/consts.py,sha256=de1X1_0CESgSGYUI8dGh8RBoYtu_G3NrBsFvuSdHJWk,59
|
|
60
|
-
bluer_sbc/README/designs/nafha.py,sha256=
|
|
61
|
-
bluer_sbc/README/designs/shelter.py,sha256=
|
|
62
|
-
bluer_sbc/README/designs/swallow.py,sha256=
|
|
63
|
-
bluer_sbc/README/designs/swallow_head.py,sha256=
|
|
64
|
-
bluer_sbc/README/designs/
|
|
65
|
-
bluer_sbc/README/designs/
|
|
62
|
+
bluer_sbc/README/designs/nafha.py,sha256=xIVQB30mxtORNAsVTjgMvcAs4qzL92mlwO3IM8n6t5M,1279
|
|
63
|
+
bluer_sbc/README/designs/shelter.py,sha256=3V0VVZ_MqTv7OvwOFJLHJq93VsxCVHl0EwrTMTIMwLM,1470
|
|
64
|
+
bluer_sbc/README/designs/swallow.py,sha256=FosdJYthZOIrNRgiUJpwW_5ngJiORMYUyHi0LajJOFQ,978
|
|
65
|
+
bluer_sbc/README/designs/swallow_head.py,sha256=sKz0Tim3HcXQ27IELsoTUPeTNhxxKxh1KZ3IWezEfgQ,2346
|
|
66
|
+
bluer_sbc/README/designs/template.py,sha256=SY7PjPf219TDGyhwzHGtF67cylhNl4zJKqWqAfVu57U,618
|
|
67
|
+
bluer_sbc/README/designs/ultrasonic_sensor_tester.py,sha256=8LOGpQ61zbiO5a4kutY5uMfZHLRz9SBKUacyx2MdpjA,656
|
|
66
68
|
bluer_sbc/ROS/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
67
69
|
bluer_sbc/algo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
70
|
bluer_sbc/algo/diff.py,sha256=ZCUkRgip-Uss86r--RuEwyYtFjpukM3fbY_yovXwgNw,2190
|
|
69
|
-
bluer_sbc/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
-
bluer_sbc/designs/battery_bus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
bluer_sbc/designs/battery_bus/parts.py,sha256=nmstgbDftDUE5N4HS4x7RE_QSKUdHVm1ieNlwtL1tb4,114
|
|
72
|
-
bluer_sbc/designs/swallow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
-
bluer_sbc/designs/swallow/parts.py,sha256=MDp3AKD6D5Bn2S35BcF2iRov9gqvuRk_luX1r6s64cg,364
|
|
74
|
-
bluer_sbc/designs/swallow_head/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
-
bluer_sbc/designs/swallow_head/parts.py,sha256=b1gi1B-923emUCobDmAkWQgqNFiili3F5YsE40Hj_o4,1686
|
|
76
71
|
bluer_sbc/hardware/__init__.py,sha256=EW_u4fRXPVpAO47EaLZn0Vxo_rfE9a1O4cPdl_w6vOI,1421
|
|
77
72
|
bluer_sbc/hardware/adafruit_rgb_matrix.py,sha256=4xFRghBXJWkDDOhPvO-Yt6xY61D451KKxjrUL8ZxXQ8,803
|
|
78
73
|
bluer_sbc/hardware/display.py,sha256=bRjemItjmF3tJcWxP3e2lVB5Ul8br3_3PcJhfrBT7mY,3057
|
|
@@ -116,15 +111,15 @@ bluer_sbc/imager/lepton/python2.py,sha256=1jAHHzmda_bmqKj0b0X-2KONW5s9umxKaTY4Zi
|
|
|
116
111
|
bluer_sbc/parts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
112
|
bluer_sbc/parts/__main__.py,sha256=8gIFylyfCv35e3VOlt0LY_K4oCMdmW9OFkj54bFab9k,903
|
|
118
113
|
bluer_sbc/parts/consts.py,sha256=UIld-5czxqoAtMTeTZM4LQZXC-CXU53LVmVzFekZLJQ,98
|
|
119
|
-
bluer_sbc/parts/db.py,sha256=
|
|
114
|
+
bluer_sbc/parts/db.py,sha256=IM5d1MgkS5iUIyx6a0_CfLxC-2t7skH12I4AjmBPL80,13626
|
|
120
115
|
bluer_sbc/parts/classes/db.py,sha256=Yij--zP566wBpXFoKWsGQddrM28otTVvoez-4Qj2Rtg,6551
|
|
121
116
|
bluer_sbc/parts/classes/part.py,sha256=tKXjipFRwu0-Gc53VXivwaeqhyYr9uunG6EUzcdr_x8,2181
|
|
122
117
|
bluer_sbc/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
118
|
bluer_sbc/session/__main__.py,sha256=O2Tv6HgE8Bos7ASIViYludpWVi6EEc9XRoP8jYC2-2Q,534
|
|
124
119
|
bluer_sbc/session/classes.py,sha256=6pEh-TBjekUZBbWj_zKh3LAntAoGfcMHtS2SJ77nyC8,9355
|
|
125
120
|
bluer_sbc/session/functions.py,sha256=eRJKSczRjKn3Fo2jv8_4EMAZwfJBj5cIPg2WqHkC2Q8,481
|
|
126
|
-
bluer_sbc-9.
|
|
127
|
-
bluer_sbc-9.
|
|
128
|
-
bluer_sbc-9.
|
|
129
|
-
bluer_sbc-9.
|
|
130
|
-
bluer_sbc-9.
|
|
121
|
+
bluer_sbc-9.168.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
|
|
122
|
+
bluer_sbc-9.168.1.dist-info/METADATA,sha256=I26l_Q9fNJli4otxBb1iIslvhtSlteD1qfxDIxXFbHs,6010
|
|
123
|
+
bluer_sbc-9.168.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
124
|
+
bluer_sbc-9.168.1.dist-info/top_level.txt,sha256=DsLDHFiTeAj2mctGVmCSgWUhzCznWSQoUmQ1VyEmnT0,10
|
|
125
|
+
bluer_sbc-9.168.1.dist-info/RECORD,,
|
bluer_sbc/designs/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
dict_of_parts = {
|
|
2
|
-
"BTS7960": "2 x",
|
|
3
|
-
"connector": "2 females",
|
|
4
|
-
"white-terminal": "8 x",
|
|
5
|
-
"nuts-bolts-spacers": "M3: ({})".format(
|
|
6
|
-
" + ".join(
|
|
7
|
-
[
|
|
8
|
-
"8 x 25 mm spacer",
|
|
9
|
-
"4 x 30 mm spacer",
|
|
10
|
-
"4 x nut",
|
|
11
|
-
]
|
|
12
|
-
)
|
|
13
|
-
),
|
|
14
|
-
"solid-cable-1-15": "20 cm x (red + black/blue)",
|
|
15
|
-
}
|
|
File without changes
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
dict_of_parts = {
|
|
2
|
-
"rpi": "",
|
|
3
|
-
"XL4015": "",
|
|
4
|
-
"470-mF": "",
|
|
5
|
-
"Polyfuse": "optional",
|
|
6
|
-
"TVS-diode": "",
|
|
7
|
-
"resistor": "7 x 330-470 Ω + N x 2.2 kΩ + N x 3.3 kΩ",
|
|
8
|
-
"LED": "green + red + yellow + 4 x blue",
|
|
9
|
-
"rpi-camera": "",
|
|
10
|
-
"PCB-single-14x9_5": "2 x",
|
|
11
|
-
"PCB-double-9x7": "2 x",
|
|
12
|
-
"pushbutton": "",
|
|
13
|
-
"ultrasonic-sensor": "4 x",
|
|
14
|
-
"connector": "1 female",
|
|
15
|
-
"nuts-bolts-spacers": " + ".join(
|
|
16
|
-
[
|
|
17
|
-
"M2: ({})".format(
|
|
18
|
-
" + ".join(
|
|
19
|
-
[
|
|
20
|
-
"2 x bolt",
|
|
21
|
-
"2 x 5 mm spacer",
|
|
22
|
-
"4 x nut",
|
|
23
|
-
]
|
|
24
|
-
)
|
|
25
|
-
),
|
|
26
|
-
"M2.5: ({})".format(
|
|
27
|
-
" + ".join(
|
|
28
|
-
[
|
|
29
|
-
"4 x bolt",
|
|
30
|
-
"8 x 10 mm spacer",
|
|
31
|
-
"4 x nut",
|
|
32
|
-
]
|
|
33
|
-
)
|
|
34
|
-
),
|
|
35
|
-
"M3: ({})".format(
|
|
36
|
-
" + ".join(
|
|
37
|
-
[
|
|
38
|
-
"1 x bolt",
|
|
39
|
-
"3 x 35 mm spacer",
|
|
40
|
-
"3 x 25 mm spacer",
|
|
41
|
-
"7 x 15 mm spacer",
|
|
42
|
-
"4 x 5 mm spacer",
|
|
43
|
-
"5 x nut",
|
|
44
|
-
]
|
|
45
|
-
)
|
|
46
|
-
),
|
|
47
|
-
]
|
|
48
|
-
),
|
|
49
|
-
"plexiglass": "14 cm x 9.5 cm",
|
|
50
|
-
"white-terminal": "2 x",
|
|
51
|
-
"dupont-cables": "1 x 30 cm + 1 x 10 cm",
|
|
52
|
-
"16-awg-wire": "40 cm x (red + black/blue)",
|
|
53
|
-
"solid-cable-1-15": "10 cm x (red + black/blue)",
|
|
54
|
-
"strong-thread": "1 m",
|
|
55
|
-
"pin-headers": "1 x (female, 2 x 40) -> 2 x 20 + 2 x (male, 1 x 40) -> 4 x 6 + 4 x 2 + 2 x 20",
|
|
56
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|