From e24b957fa04c364c91ff38c79ad7fb9e893b7177 Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Apr 2026 23:11:49 +0800 Subject: [PATCH] added sonar filtering page --- images/sonar_noise.png | Bin 0 -> 21484 bytes images/sonar_noise_averaged.png | Bin 0 -> 15758 bytes images/sonar_noise_median.png | Bin 0 -> 12637 bytes index.html | 278 ++++++++++++++++++++++++++++++-- 4 files changed, 262 insertions(+), 16 deletions(-) create mode 100644 images/sonar_noise.png create mode 100644 images/sonar_noise_averaged.png create mode 100644 images/sonar_noise_median.png diff --git a/images/sonar_noise.png b/images/sonar_noise.png new file mode 100644 index 0000000000000000000000000000000000000000..73d5cc5b1968cc4336e180941c99c1767769d975 GIT binary patch literal 21484 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

}%dtgqN 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 CMNzl_ literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 357040b..637963b 100644 --- a/index.html +++ b/index.html @@ -28,6 +28,7 @@ + @@ -48,13 +49,16 @@

Step 1: Setting up the IDE

-

There are many IDEs that we can use to program MicroPython robot, we'll be using one called "Thonny". So let's begin by downloading it.

+

There are many IDEs that we can use to program MicroPython robot, we'll be using one called + "Thonny". So let's begin by downloading it.

Download

You can also get it from the Thonny website, https://thonny.org/

@@ -69,13 +73,16 @@
  1. In Thonny, click on the Run->Configure Interpreter buttons at the top of the window.
  2. Choose "MicroPython (Raspberry Pi Pico) from the first dropdown menu.
  3. -
  4. Click the "Install or update MicroPython" button down the bottom-right of the window.
  5. -
  6. You need to put your device in FLASH mode, hold down the BOOT button, press and release the RESET button.
  7. +
  8. Click the "Install or update MicroPython" button down the bottom-right of the window. +
  9. +
  10. You need to put your device in FLASH mode, hold down the BOOT button, press and release the + RESET button.
  11. You should now find a drive called "RPI-RP2". in the Target volume dropdown, shoose it.
  12. Choose the variant "Raspberry Pi Pico - Pico / Pico H"
  13. Press Install button to install the firmware.
  14. Reset the device again with the RESET button.
  15. -
  16. Press the cancel button to close the firmware update panel, then press OK to officially begin coding.
  17. +
  18. Press the cancel button to close the firmware update panel, then press OK to officially + begin coding.
@@ -100,8 +107,10 @@

Step 1: Open/Create the main.py file

-

When your device is plugged into your computer, you should be able to press the File->Load button, and choose "Raspberry Pi Pico" to load from.

-

If no such file exists we need to make it, press File->New, and then save it to the Raspberry Pi Pico as "main.py"

+

When your device is plugged into your computer, you should be able to press the File->Load + button, and choose "Raspberry Pi Pico" to load from.

+

If no such file exists we need to make it, press File->New, and then save it to the Raspberry Pi + Pico as "main.py"

@@ -110,7 +119,8 @@

Step 2: Open the Serial Monitor

-

To get messages back from your device, and to read errors, press the view->shellbutton and make sure +

To get messages back from your device, and to read errors, press the view->shellbutton and make + sure you have the shell window open at the bottom.


@@ -119,7 +129,8 @@ print("Hello World") and then save, yuou should see the message appear in the Serial monitor.

-

Note that the code won't persist on the robot after a reset unless you also SAVE it to the device, RUN just runs it once

+

Note that the code won't persist on the robot after a reset unless you also SAVE it to the + device, RUN just runs it once


Step 4: Code all the things!

@@ -132,7 +143,7 @@ Robot turning right
- +
@@ -908,10 +919,13 @@ while True:

Step 2: Coding

-

We'll use a library to handle sending and listening for the pulses. Put this module on your device.

+

We'll use a library to handle sending and listening for the pulses. Put this module on your + device.


-

When the "distance()" function is called, it sends a short pulse on the trigger pin, then waits for a response on the echo pin. The time it takes for the echo to return is used to calculate the distance.

- +

When the "distance()" function is called, it sends a short pulse on the trigger pin, then waits + for a response on the echo pin. The time it takes for the echo to return is used to calculate + the distance.

+

@@ -955,7 +969,8 @@ class Sonar:
                 
                 

Step 3: Call it in the main.py

-

Now all we need to do is create the object and call the distance function in the main.py file.

+

Now all we need to do is create the object and call the distance function in the main.py file. +


@@ -1076,6 +1091,237 @@ while True:
         
 
 
+
+
+
+
+
+
+
+
+
+        
+        
+
+
+        
+        
+
+