WEBVTT

1
00:00:00.100 --> 00:00:04.650
This is a complete Spark build beginning with an empty BotSims workbench

2
00:00:04.650 --> 00:00:09.105
We add every component individually connect every wire write the controller and

3
00:00:09.105 --> 00:00:13.570
run it The recording keeps all build operations with pauses trimmed and

4
00:00:13.570 --> 00:00:18.185
playback paced for this explanation No robot preset or assembled module is

5
00:00:18.185 --> 00:00:19.465
imported

6
00:00:20.765 --> 00:00:24.960
Open Components to browse the library Search narrows the list and the

7
00:00:24.960 --> 00:00:30.510
model badges distinguish behavioral components from geometry Spark needs an enclosure a

8
00:00:30.510 --> 00:00:34.825
two cell battery a five volt regulator an ESP32 ESP32 ESP32 a

9
00:00:34.825 --> 00:00:40.175
servo and an OLED face We will use the supported virtual interfaces

10
00:00:41.475 --> 00:00:45.530
Search for Emoji enclosure and press Add This is the first component

11
00:00:45.530 --> 00:00:49.840
in an otherwise empty scene New loose parts start on the ground

12
00:00:49.840 --> 00:00:55.685
Inspector shows dimensions mass position and physical attachment The yellow enclosure will

13
00:00:55.685 --> 00:00:58.545
support this small tabletop companion

14
00:00:59.845 --> 00:01:04.435
Anchor the enclosure to the world for a stationary desktop demonstration Choose

15
00:01:04.435 --> 00:01:08.670
On Emoji enclosure in the new component placement selector Add the battery

16
00:01:08.670 --> 00:01:14.675
and regulator separately Use Inspector position fields in metres to arrange them

17
00:01:14.675 --> 00:01:18.530
A physical mount makes parts move together it never creates an electrical

18
00:01:18.530 --> 00:01:19.795
connection

19
00:01:21.095 --> 00:01:25.360
Add the ESP32 ESP32 ESP32 DevKit position servo and OLED display one

20
00:01:25.360 --> 00:01:30.115
at a time Set their positions using the same Inspector fields Attach

21
00:01:30.115 --> 00:01:33.500
the display to the servo so its motion can be previewed The

22
00:01:33.500 --> 00:01:37.470
rest of the electronics remain mounted on the enclosure Fit brings the

23
00:01:37.470 --> 00:01:39.440
whole assembly into view

24
00:01:40.740 --> 00:01:45.070
Open Wiring All electrical components already appear because they belong to the

25
00:01:45.070 --> 00:01:49.700
project but none has a complete circuit yet Canvas supports dragging or

26
00:01:49.700 --> 00:01:54.335
clicking pins For this first build choose List and expand Connect using

27
00:01:54.335 --> 00:01:58.815
pin selectors which makes exact terminal selection straightforward

28
00:02:00.115 --> 00:02:05.415
Connect battery positive to regulator input and battery ground to regulator ground

29
00:02:05.415 --> 00:02:09.360
Connect the regulator five volt output to the ESP32 ESP32 ESP32 supply

30
00:02:09.360 --> 00:02:14.070
servo supply and display supply Connect each device ground back to battery

31
00:02:14.070 --> 00:02:19.300
ground These eight connections establish the supply rails and a common reference

32
00:02:19.300 --> 00:02:22.445
Do not feed the display directly from the battery

33
00:02:23.745 --> 00:02:28.920
Connect ESP32 ESP32 ESP32 SDA to display SDA and SCL to SCL

34
00:02:28.920 --> 00:02:33.705
Connect virtual servo channel one to the servo PWM input The completed

35
00:02:33.705 --> 00:02:38.235
robot now has eleven wires Canvas shows the finished network and the

36
00:02:38.235 --> 00:02:44.005
wiring status reports no modeled electrical conflicts or unwired parts Virtual aliases

37
00:02:44.005 --> 00:02:48.045
are not verified ESP32 ESP32 ESP32 hardware pin assignments

38
00:02:49.345 --> 00:02:53.335
Open Code and replace the starter program The step function stops the

39
00:02:53.335 --> 00:02:58.015
wheels checks for brownout cycles three face expressions and commands the installed

40
00:02:58.015 --> 00:03:02.500
servo by its exact part identifier A sine wave changes the normalized

41
00:03:02.500 --> 00:03:07.950
servo target smoothly Log messages appear only when the expression changes The

42
00:03:07.950 --> 00:03:10.980
source is included in the downloadable project

43
00:03:12.280 --> 00:03:15.720
In the servo Inspector enable Move attached parts and choose the Y

44
00:03:15.720 --> 00:03:20.155
motion axis This explicit switch previews the mounted face turning with the

45
00:03:20.155 --> 00:03:24.705
servo It is forward kinematics collision shapes and inertia remain at the

46
00:03:24.705 --> 00:03:29.515
reference pose It does not prove actuator torque dynamic joint loading or

47
00:03:29.515 --> 00:03:31.850
a physically balanced mechanism

48
00:03:33.150 --> 00:03:36.500
Hide the side panels to give the robot more room select Front

49
00:03:36.500 --> 00:03:39.895
view and press Run This is the actual robot that we just

50
00:03:39.895 --> 00:03:44.155
assembled and wired The display changes expressions and its servo turns the

51
00:03:44.155 --> 00:03:49.045
face Physics runs at one hundred twenty steps per simulated second the

52
00:03:49.045 --> 00:03:53.895
isolated JavaScript controller runs twenty times per simulated second

53
00:03:55.195 --> 00:04:00.185
Pause and choose Export project The portable robot JSON contains all six

54
00:04:00.185 --> 00:04:06.835
parts eleven wires physical attachments servo preview settings and controller source Auto

55
00:04:06.835 --> 00:04:10.720
save protects the current project in this browser an exported file lets

56
00:04:10.720 --> 00:04:14.445
you restore it later or on another device Open or download this

57
00:04:14.445 --> 00:04:17.020
exact finished build below the video
