You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/hardware/08.edu/solution-and-kits/alvik/tutorials/user-manual/user-manual.md
+39-23
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,9 @@ Inside the Arduino Alvik package you'll find the following items:
44
44
45
45
## The Brain
46
46
The brain of the Alvik robot is the Nano ESP32, which is the central component we program to run the logic and make decisions. It is extremely important because it processes all the high-level commands and controls the overall operation of the robot. However, instead of directly moving the motors or reading sensors, it communicates with the STM32 (the body) to execute these actions. The Nano ESP32 gives orders to the STM32 to move, read sensors, or report status, allowing the robot to make informed (or better yet, as informed as we program it) decisions and run tasks and routines using this information.
47
+

48
+
49
+
47
50
### Nano ESP32
48
51
49
52
The [Nano ESP32](https://store.arduino.cc/products/nano-esp32) is the board used to control Alvik. It has a fast processor, large flash memory, and a Wi-Fi® enabled chip packed into a tiny circuit board.
@@ -57,15 +60,22 @@ Please note that when using MicroPython the pin number reflects the GPIO on the
57
60
## The Body
58
61
Using the same analogy, the body of the Alvik robot includes everything else from the sensors and motors to the connectors supporting external modules and, of course, the STM32, which acts like the nervous system of the robot. Just as the human nervous system transmits signals between the brain and various parts of the body, the STM32 transmits commands and collects data from the robot's components. When the Nano ESP32, acting as the brain, sends commands, the STM32 executes these low-level operations, such as moving the motors, flashing the LEDs, or interacting with external devices. The STM32 is essential for carrying out the detailed actions based on the high-level instructions from the Nano ESP32, ensuring that the robot's movements and functions are performed accurately.
59
62
60
-
### STM32
63
+

64
+
65
+
66
+
### Controller - STM32
67
+
61
68
62
69
The main core of the robot is the STM32 ARM Cortex-M4 32 Bit controller. It handles the low-level commands such as reading sensors and moving motors. You can access it through a set of dedicated APIs from the Nano ESP32.
63
70
64
71
You can learn more about the available functions for Alvik in the following [Alvik's API Documentation](https://docs.arduino.cc/tutorials/alvik/api-overview).
65
72
73
+
***Although Alvik's "out of the box" experience is designed in micropython, there are C++ APIs that allow you to program Avlik in the Arduino IDE, these APIs are 1 to 1 compatible with the micropython APIs, which means that the API overview will be interesting for both micropython and C++ programs.***
74
+
66
75
The latest firmware of the STM32 can be found at [this link](https://github.com/arduino-libraries/Arduino_AlvikCarrier/releases), and [here](#how-to-upload-firmware) is the guide to flash it.
76
+

77
+
67
78
68
-
## Controller
69
79
70
80
### ON/OFF Switch
71
81
@@ -79,10 +89,22 @@ At the back-right side of Alvik there is the main switch of the robot. When ON t
79
89
80
90
### Battery
81
91
82
-
The battery is a rechargeable Li-ion 18650. It is located in the bottom part of Alvik, to access it you need to remove one Phillip's screw and take out the plastic holder.
92
+
The battery is a rechargeable Li-ion 18650, it allows to run Alvik for 8+ hours non stop.
93
+
The battery is located in the bottom part of Alvik, if you need to access it you'll need to remove one Phillip's screw and take out the plastic holder.
1.**Detach the Existing Battery**: Carefully remove the old battery from its compartment.
102
+
2.**Attach a New Battery**: Place the new battery into the holder, ensuring it is securely connected.
103
+
3.**Plug in the Nano ESP32**: If you are using a different controller or have used the robot in another manner, reconnect the Nano ESP32.
104
+
4.**Connect the Nano ESP32 to the Computer**: Use a USB cable to connect the Nano ESP32 to your computer.
105
+
106
+
These steps are crucial for resetting the Battery Management System (BMS) after a battery replacement. If these steps are not followed, the BMS will remain "off," and the robot will not turn on.
107
+
86
108
The Nano ESP32 can report the status of the battery through the terminal of the Arduino Lab for MicroPython and with its RGB status LED. To do that you need to call the `Alvik.begin()` function in any program or directly at the command line area.
87
109
88
110
When the battery is charging the status LED will blink RED for one second.
@@ -99,9 +121,9 @@ When fully charged it will stay GREEN.
99
121
100
122
## Sensors
101
123
102
-
### Main Components
103
124
104
-
Alvik has five different sensors, all connected to the STM32 and accessible through the [APIs](https://docs.arduino.cc/tutorials/alvik/api-overview). For each sensor there is a test example program that you can find in the _examples_ folder in [this repository](https://github.com/arduino/arduino-alvik-mpy/tree/main/examples).
125
+
Alvik includes a set of different sensors listed below, all connected to the STM32 and accessible through the [APIs](https://docs.arduino.cc/tutorials/alvik/api-overview). For each sensor there is test example program that you can find in the _examples_ folder in [this repository](https://github.com/arduino/arduino-alvik-mpy/tree/main/examples) for micropython and in [this repository](https://github.com/arduino-libraries/Arduino_AlvikCarrier/tree/main/examples) for C++.
126
+
105
127
106
128
|**Sensor name**|**Part name**|**Test program name**|
@@ -187,23 +209,20 @@ The Arduino Alvik robot is equipped with an onboard IMU (Inertial Measurement Un
187
209
188
210
## Actuators
189
211
190
-
### Motors and Encoders
191
-
192
-
Alvik has two high-precision geared motors and two RGB LEDs. The motors are driven by the MAX22211 motor driver and include magnetic relative encoders for precise control.
193
-
194
212
|**Actuator name**|**Part name**|**Test program name**|
The RGB LEDs can be used for visual feedback and can be programmed to display various colors and patterns.
217
+
The RGB LEDs can be used for visual feedback and can be programmed to display various colors and patterns. The LEDs take in **boolean** values for each color meaning that combinations are possible by setting each color **on** or **off** insteadof controlling intensity.
200
218
201
219
### Connectors
202
220
203
221
The connectors are placed in the back of the robot, the pinout is shown in the following image:
The Arduino Alvik robot package includes the following items:
@@ -212,22 +231,20 @@ The Arduino Alvik robot package includes the following items:
212
231
- Phillips screwdriver
213
232
- 18650 Li-Ion battery
214
233
215
-
## Move Alvik!
234
+
235
+
Alvik is equipped with three ready-to-go examples. To choose one of the examples, just turn your Alvik ON, move the switch located at the bottom right corner of the robot to the right, wait until the LEDs turn blue and use the Up and Down buttons to pick one color, then hit the "tick" confirmation button.
216
236
217
237
### Basic Touch Programming
218
238
219
-
Alvik’s touch buttons can be programmed to control various actions such as movement, changing modes, and interacting with the environment. This allows for creating intuitive control schemes for different applications.
239
+
Alvik’s touch buttons can be programmed to control various actions such as movement, changing modes, and interacting with the environment. This allows for creating intuitive control schemes for different applications. By default, the touch buttons are pre-programmed to control the Alvik's basic movements, such as moving forward, backward, turning left, and turning right. This setup provides an immediate interactive experience, enabling you to get started with minimal setup.
220
240
221
241
### Following Objects
222
242
223
-
Using the distance sensors, Alvik can follow objects by maintaining a certain distance from them. This is useful for applications like automated guided vehicles and interactive robotics.
243
+
Out of the box, Alvik is equipped with distance sensors that allow it to follow objects by maintaining a certain distance from them. This feature is pre-configured to help the Alvik follow a target object, making it useful for applications like automated guided vehicles and interactive robotics. The default settings ensure that Alvik can smoothly track and follow objects placed in front of it without any additional programming required.
224
244
225
245
### Line Follower
226
246
227
-
With its line follower sensors, Alvik can navigate along predefined paths marked by lines on the ground. This is especially useful in educational settings and for demonstrating basic robotic navigation.
228
-
229
-
The goal is to present the sensors and actuators of the Alvik robot, highlighting their key features and uses without delving into programming specifics.
230
-
247
+
Alvik comes pre-programmed with a line following algorithm that utilizes its built-in line follower sensors. These sensors enable the Alvik to navigate along predefined paths marked by lines on the ground. This feature is particularly beneficial in educational settings and for demonstrating basic robotic navigation. The default configuration allows Alvik to follow a black line on a white surface right out of the box, providing an engaging and interactive learning experience for you.
231
248
232
249
## Alvik's Firmware
233
250
@@ -237,14 +254,15 @@ To get started to play with Alvik you will need the following hardware and softw
***Make sure the USB-C® cable you are using works with data lines, not only power lines***
244
261
245
262
### Software Requirements
246
263
247
-
- Operating Systems: All the major Operating Systems are supported
264
+
- Operating Systems: Linux, macOS or Windows
265
+
248
266
-[Arduino Lab for Micropython](https://labs.arduino.cc/en/labs/micropython)
249
267
250
268
### Updating Alvik's Brain (Nano ESP32)
@@ -1028,6 +1046,8 @@ The Arduino Alvik robot comes equipped with two RGB LEDs that can be controlled
1028
1046
`green`: Intensity of the green component (0 or 1)
1029
1047
`blue`: Intensity of the blue component (0 or 1)
1030
1048
1049
+
In this case the LEDs take in **boolean** values for each color meaning that combinations are possible by setting each color **on** or **off** insteadof controlling intensity.
1050
+
1031
1051
**Example**
1032
1052
1033
1053
Here's an example sketch that cycles through different colors on both LEDs:
@@ -1638,10 +1658,6 @@ Now you can open the Arduino Lab for MicroPython, connect Alvik and open the exa
1638
1658
1639
1659

1640
1660
1641
-
7. Test `bender.py`
1642
-
1643
-
Open the example called `bender.py`, launch it and see on your display the image of Bender's robot.
1644
-
1645
1661
## Want More?
1646
1662
1647
1663
If you're looking to get the most out of your Alvik robot, we have a comprehensive course available for you. Visit [Explore Robotics with MicroPython](https://courses.arduino.cc/explore-robotics-micropython/) for guided projects and lessons designed to help you master your Alvik. This course provides step-by-step instructions and detailed explanations to enhance your robotics and programming skills. Whether you're a beginner or an experienced maker, our course will take your Alvik experience to the next level.
0 commit comments