Skip to content

Commit 5cd0d43

Browse files
authored
Merge pull request #1955 from arduino/JGD_postlaunchUpdates
adding flashing documentation
2 parents 6bb6382 + 440520b commit 5cd0d43

File tree

1 file changed

+148
-7
lines changed
  • content/hardware/08.edu/solution-and-kits/alvik/tutorials/01.getting-started

1 file changed

+148
-7
lines changed

content/hardware/08.edu/solution-and-kits/alvik/tutorials/01.getting-started/getting-started.md

Lines changed: 148 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,13 @@ Depending on how you configure Python on your machine.
208208
Run the following line to upload all files and download the dependencies needed to run the Arduino Alvik MicroPython library.
209209

210210
Linux
211+
211212
```
212213
$ ./install.sh -p <device port>
213214
```
214215

215216
Windows
217+
216218
```
217219
> install.bat -p <device port>
218220
```
@@ -233,14 +235,17 @@ The `<device port>` is the name of the USB port that your computer assigned to t
233235

234236

235237
Linux
238+
236239
```
237240
$ ./flash_firmware.sh -p <device port> <path-to-your-firmware>
238241
```
239242

240243
Windows
244+
241245
```
242246
> flash_firmware.bat -p <device port> <path-to-your-firmware>
243247
```
248+
244249
Answer `y` to flash firmware.
245250

246251
### Test
@@ -471,7 +476,7 @@ Now you can open the Arduino Lab for MicroPython, connect Alvik and open the exa
471476

472477
Open the example called `bender.py`, launch it and see on your display the image of Bender's robot.
473478

474-
<!--
479+
<!--
475480
## Julian Proposal
476481
477482
## What is Alvik
@@ -526,16 +531,152 @@ Alvik have two controllers
526531
527532
### Line Follower
528533
534+
## Updating Alvik
535+
536+
### Updating Alvik's Brain (Nano ESP32)
537+
538+
It may happen that you used your Nano ESP32 for other projects than Alvik, or you need to replace it. In order to make your Nano ESP32 work with Alvik, there are few steps needed:
539+
540+
1. Install the micropython bootloader on it following [this guide](https://docs.arduino.cc/micropython/basics/board-installation/).
541+
542+
2. Download the Alvik micropyton libraries
543+
544+
1. Alvik micropython libraries from the [Alvik repository](https://github.com/arduino/arduino-alvik-mpy/tree/main)
545+
2. ucPack libraries from the [ucPack repository](https://github.com/arduino/ucPack-mpy/tree/main)
546+
547+
3. Unzip both of the downloaded libraries in a single "Alvik" folder, open the Arduino Lab for MicroPython, go to the "files" tab and set the path to the unzipped folder on the Arduino Lab for Micropython
548+
549+
![Setting the FW path on the Labs for micropython](assets/fw_path.png)
550+
551+
4. Make sure your Alvik is OFF, connect it to your computer and then, turn it ON
552+
553+
![Alvik USB Connection](assets/connecting-final.gif)
554+
555+
5. Connect your Alvik to the Arduino Labs for micropython and open the "lib"
556+
![Setting the FW path on the Labs for micropython](assets/lib_folder.png)
557+
558+
6. Select the "Arduino-alvik" and move it inside the "lib" folder in your Alvik.
559+
![Setting the FW path on the Labs for micropython](assets/moving_alvik_folder.png)
560+
561+
7. Go back to the main folder and select the "ucPack-mpy-main" folder and move it next to the arduino_alvik inside the "lib" folder in your Nano ESP32.
562+
![Setting the FW path on the Labs for micropython](assets/moving_ucPack.png)
563+
564+
8. Now go back to the main root of the files system on the Nano ESP32. Then in your local folder navigate to the examples folder once there, select the following files and move them to the main folder of the ESP32.
565+
566+
1. demo.py
567+
2. hand_follower.py
568+
3. line_follower.py
569+
4. main.py
570+
5. touch_move.py
571+
572+
![Setting the FW path on the Labs for micropython](assets/moving_examples.png)
573+
574+
With this last step, your Nano ESP32 has been set up with the Alvik out of the box experience and is ready to be used.
575+
576+
### Updating Alvik's Body (STM32)
577+
578+
1. Download the [pre-compiled firmware](https://github.com/arduino-libraries/Arduino_AlvikCarrier/releases/latest) from the [Alvik Carrier GitHub reposiitory](https://github.com/arduino-libraries/Arduino_AlvikCarrier)
579+
580+
This step will download a "firmware_x_x_x.bin" file, save it in your Alvik folder
581+
582+
2. Connect your Alvik to the Computer and to the Arduino Labs for Micropython. Then, go to the files tab and navigate to the folder where you stored the "firmware_x_x_x.bin"
583+
![Setting the FW path on the Labs for micropython](assets/firmware.png)
584+
585+
3. Let's move now the "firmware_x_x_x.bin" to the main root.
586+
![Setting the FW path on the Labs for micropython](assets/moving_fw_bin.png)
587+
588+
4. Turn ON your alvik, go to the Editor tab and tun the following commands by typing them and clicking on the "Play" button
589+
590+
```
591+
from arduino_alvik import update_firmware
529592
530-
## Alvik First Use
593+
update_firmware('./firmware_1_0_0.bin')
594+
```
531595
532-
### Update Alvik's body
596+
![Setting the FW path on the Labs for micropython](assets/flashing_fw.png)
597+
598+
After executing these commands, there will be updates of the process on the prompt, once the process finishes, the firmware of your alvik will be updated.
533599
534-
### Update Alvik's brain
535-
- Update ESP32 Micropython Firmware
536-
- Update Alvik's Library
537600
### Hello Alvik! Your first program!
538601
602+
Alvik is intended to be programmed with MicroPyton. We recommend you to install the [Arduino Lab for MicroPython](https://labs.arduino.cc/en/labs/micropython) editor.
603+
604+
Now that all the previous steps have been set, let's see how to create custom programs for Alvik to move forward until detecting an object in front of it, Alvik will detect it, dodge it and continue on its way.
605+
606+
607+
**1. **Create an Alvik folder in your computer and set it as the path of the Arduino Lab for MicroPython IDE
608+
609+
![Adding Alvik folder path to the IDE](/Users/josegardel/Documents/arduino_GH/docs-content-private/content/hardware/08.edu/solution-and-kits/alvik/tutorials/getting-started/assets/alvik_folder_path.png)
610+
611+
**2. **Create a new file "obstacle_avoider.py" in your local folder
612+
613+
![Creating obstacle_avoider.py file](/Users/josegardel/Documents/arduino_GH/docs-content-private/content/hardware/08.edu/solution-and-kits/alvik/tutorials/getting-started/assets/creating_file.png)
614+
615+
**3. **Double click on the file to open it. Once it is opened, erase the text on it and add the following code.
616+
617+
![Adding custom code](/Users/josegardel/Documents/arduino_GH/docs-content-private/content/hardware/08.edu/solution-and-kits/alvik/tutorials/getting-started/assets/adding_custom_code.gif)
618+
619+
``` python
620+
from arduino_alvik import ArduinoAlvik
621+
from time import sleep_ms
622+
import sys
623+
624+
alvik = ArduinoAlvik()
625+
alvik.begin()
626+
sleep_ms(5000) #waiting for the robot to setup
627+
#robot.set_illuminator(0)
628+
distance = 10
629+
speed = 40 #rpm
630+
631+
def turning():
632+
alvik.set_wheels_speed(0,0)
633+
sleep_ms(250)
634+
alvik.set_wheels_speed(-35,-35)
635+
sleep_ms(1500)
636+
alvik.set_wheels_speed(35,-35)
637+
sleep_ms(1000)
638+
639+
while (True):
640+
641+
distance_l, distance_cl, distance_c, distance_r, distance_cr = alvik.get_distance()
642+
sleep_ms(50)
643+
print(distance_c)
644+
645+
if distance_c < distance:
646+
turning()
647+
elif distance_cl < distance:
648+
turning()
649+
elif distance_cr < distance:
650+
turning()
651+
elif distance_l < distance:
652+
turning()
653+
elif distance_r < distance:
654+
turning()
655+
else:
656+
alvik.set_wheels_speed(speed, speed)
657+
658+
```
659+
660+
**4. **Connect Alvik to your PC using the cable included in the box, under the tray.
661+
662+
![Connecting Alvik to the PC](/Users/josegardel/Documents/arduino_GH/docs-content-private/content/hardware/08.edu/solution-and-kits/alvik/tutorials/getting-started/assets/connecting_alvik.gif)
663+
664+
***Make sure that Alvik is OFF before connecting it to your computer.***
665+
666+
**5. **Once Alvik is connected to the PC, connect it to the Arduino Lab for MicroPython and open the _main.py_ file in the Alvik folder. Once the file is opened let's replace the `import demo` statement by `import obstacle_avoider`.
667+
668+
![Connecting Alvik to the IDE](/Users/josegardel/Documents/arduino_GH/docs-content-private/content/hardware/08.edu/solution-and-kits/alvik/tutorials/getting-started/assets/connecting_alvik_ide.gif)
669+
670+
***If you want to go back to the out of the box experience where you could select between reg, green and blue programs, you only need to modify the _main.py_ again replacing the `import obstacle_avoider` statement by `import demo`***
671+
672+
**6. **The last step is to move the _obstacle_avoider.py_ file from the local repository to Alvik's memory.
673+
674+
![Moving file from local to Alvik's memory](assets/local2memory.gif)
675+
676+
You are now all set, disconnect Alvik from the computer, put some obstacles around Alvik, turn it ON and see how Alvik detects them and turns to avoid them.
677+
678+
679+
539680
540681
## Program Alvik!
541682
@@ -567,4 +708,4 @@ Alvik have two controllers
567708
## Want more?
568709
569710
## Need Help?
570-
-->
711+
-->

0 commit comments

Comments
 (0)