From d51ad8db38d689dea2059456059b41217a3440e7 Mon Sep 17 00:00:00 2001 From: hangpersonal Date: Thu, 30 Jul 2026 16:15:36 -0400 Subject: [PATCH] First commit --- LICENSE | 73 +++++++++++++ README.md | 128 +++++++++++++++++++++++ button.py | 14 +++ buzzer.py | 16 +++ diagram.json | 132 ++++++++++++++++++++++++ hcsr04.py | 48 +++++++++ images/connections.png | Bin 0 -> 150433 bytes led.py | 18 ++++ main.py | 225 +++++++++++++++++++++++++++++++++++++++++ mpu6050.py | 41 ++++++++ oled.py | 178 ++++++++++++++++++++++++++++++++ stepper.py | 15 +++ 12 files changed, 888 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 button.py create mode 100644 buzzer.py create mode 100644 diagram.json create mode 100644 hcsr04.py create mode 100644 images/connections.png create mode 100644 led.py create mode 100644 main.py create mode 100644 mpu6050.py create mode 100644 oled.py create mode 100644 stepper.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b81d72a --- /dev/null +++ b/LICENSE @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright 2026 hangpersonal + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c61d4f --- /dev/null +++ b/README.md @@ -0,0 +1,128 @@ +# Distance-Driven Robot with Tilt Detection + +This project controls a small two-wheel robot that travels toward a target based on an ultrasonic distance measurement. The robot waits for the user to press a button, calculates the required number of motor steps, drives both stepper motors, and continuously checks its accelerometer for unsafe tilt. + +The OLED screen, LED, and buzzer provide clear status feedback throughout the process. + +## Features + +- Button-controlled start +- Ultrasonic distance measurement +- Automatic distance-to-step conversion +- Synchronized left and right stepper-motor movement +- Continuous Y-axis tilt monitoring +- OLED status and result messages +- Audible success and warning signals +- LED warning when the robot tilts +- Repeating operation for multiple runs + +## Hardware + +The program expects the hardware objects configured in `main.py`: + +- LED +- Push button +- Buzzer +- Two stepper motors (left and right) +- Ultrasonic distance sensor +- OLED display +- Accelerometer + +Refer to the object initialization section at the top of `main.py` for the GPIO pins, I²C addresses, and other board-specific configuration used by your build. + +> **Safety:** Place the robot on a clear, level surface before pressing the button. Be ready to lift or power off the robot if it approaches an obstacle or edge. + +## How it works + +The main control loop runs continuously: + +1. The warning LED is turned off. +2. The OLED is cleared and displays **Press button to start**. +3. `wait_button_press()` blocks execution until the user presses the button. +4. The buzzer beeps once to confirm the start. +5. The ultrasonic sensor measures the distance to the target. +6. `get_steps_from_distance(distance)` converts that measurement into a motor-step count. +7. The OLED displays the measured distance and calculated steps. +8. A `reached` flag is initialized to `True`. +9. The program repeats once for every calculated step: + - Move the right motor one step. + - Move the left motor one step. + - Read the accelerometer's Y-axis value (`AcY`). + - If the tilt threshold is exceeded, set `reached` to `False` and stop driving. +10. The robot reports the result: + - **REACHED:** Display the message and beep once. + - **TILTED:** Turn on the LED, display the warning, and beep three times with short pauses. +11. The final message remains visible for 2–3 seconds before the loop resets. + +## Program flow + +```text +Idle / LED off + | +Display "Press button to start" + | +Wait for button press + | +Beep and measure distance + | +Convert distance to motor steps + | +Move both motors one step at a time + | +Check AcY after every step + | + +---+------------------+ + | | +Tilt detected All steps completed + | | +Stop movement Display "REACHED" +LED on Beep once +Display "TILTED" +Beep three times + | | + +----------+-----------+ + | + Pause, then reset +``` + +## Core functions + +### `wait_button_press()` + +Waits until the physical button is pressed. The function deliberately blocks so the robot cannot begin moving before user confirmation. + +### `get_steps_from_distance(distance)` + +Converts the ultrasonic sensor's distance measurement into the number of steps required by the motors. Keeping this calculation in a separate function makes it easy to recalibrate the robot for different wheels, motors, or measurement units. + +## Tilt detection + +After every pair of motor movements, the program reads `AcY`. A reading outside the permitted range indicates that the robot has tilted and may no longer be driving safely. + +The intended check is equivalent to: + +```python +if AcY > 12000 or AcY < -12000: + reached = False + break +``` + +This detects a magnitude greater than `12000` in either direction. A condition such as `AcY > 12000 or AcY > -12000` is not equivalent and would be true for most normal readings. + +The threshold is a test value and may require calibration for the specific accelerometer orientation and chassis. + +## Status indicators + +| State | OLED | LED | Buzzer | +|---|---|---|---| +| Waiting | `Press button to start` | Off | Silent | +| Starting | Distance and step count | Off | One beep | +| Target reached | `REACHED` | Off | One beep | +| Excessive tilt | `TILTED` | On | Three beeps | + +## Notes + +- The program intentionally uses an infinite loop so the robot returns to its waiting state after each run. +- The `reached` flag separates successful completion from an interrupted movement. +- Modular helper functions make the control logic easier to test, reuse, and adapt in future projects. +- Keep comments concise and consistent, especially around hardware initialization, calibration values, and safety checks. diff --git a/button.py b/button.py new file mode 100644 index 0000000..d15e5b6 --- /dev/null +++ b/button.py @@ -0,0 +1,14 @@ +from utime import sleep +from machine import Pin + +class Button: + def __init__(self, pin): + self.pin = Pin(pin, mode=Pin.IN, pull=Pin.PULL_UP) + + def is_pressed(self): + return self.pin.value() == 0 + + def wait_button_press(self): + while self.is_pressed() == False: + sleep(0.01) + return diff --git a/buzzer.py b/buzzer.py new file mode 100644 index 0000000..bc6c694 --- /dev/null +++ b/buzzer.py @@ -0,0 +1,16 @@ +from machine import PWM, Pin +from utime import sleep + +# From https://github.com/udacity/cd13765-deci-emb-sys-l4-term2-project.git + +class Buzzer: + def __init__(self, pin): + self.pin = pin + self.buzzer = PWM(Pin(pin, Pin.OUT)) + self.buzzer.duty(0) + + def beep_once(self): + self.buzzer.freq(1047) + self.buzzer.duty(50) + sleep(0.2) + self.buzzer.duty(0) diff --git a/diagram.json b/diagram.json new file mode 100644 index 0000000..4b33c1a --- /dev/null +++ b/diagram.json @@ -0,0 +1,132 @@ +{ + "version": 1, + "author": "Gary Vladimir Núñez López", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-devkit-c-v4", + "id": "esp", + "top": 0, + "left": 0, + "attrs": { "env": "micropython-20231227-v1.22.0" } + }, + { + "type": "wokwi-led", + "id": "led1", + "top": -13.2, + "left": 205.4, + "attrs": { "color": "red" } + }, + { + "type": "wokwi-resistor", + "id": "r1", + "top": 100.8, + "left": 201.05, + "rotate": 90, + "attrs": { "value": "220" } + }, + { + "type": "wokwi-pushbutton", + "id": "btn1", + "top": 47.4, + "left": -150.6, + "rotate": 90, + "attrs": { "color": "green", "key": "1" } + }, + { + "type": "wokwi-buzzer", + "id": "bz1", + "top": -122.4, + "left": 184.2, + "attrs": { "volume": "0.1" } + }, + { "type": "wokwi-a4988", "id": "drv1", "top": 235.2, "left": -177.6, "attrs": {} }, + { + "type": "wokwi-stepper-motor", + "id": "stepper1", + "top": 19.19, + "left": -274.98, + "attrs": { "size": "8", "arrow": "orange" } + }, + { + "type": "wokwi-stepper-motor", + "id": "stepper2", + "top": 19.19, + "left": 274.98, + "attrs": { "size": "8", "arrow": "orange" } + }, + { "type": "wokwi-a4988", "id": "drv2", "top": 235.2, "left": 177.6, "attrs": {} }, + { + "type": "wokwi-hc-sr04", + "id": "ultrasonic1", + "top": -132.9, + "left": -42.5, + "attrs": { "distance": "194" } + }, + { + "type": "board-ssd1306", + "id": "oled1", + "top": 233.54, + "left": 0.23, + "attrs": { "i2cAddress": "0x3c" } + }, + { "type": "wokwi-mpu6050", "id": "imu1", "top": -92.18, "left": -218.48, "attrs": {} } + ], + "connections": [ + [ "esp:TX", "$serialMonitor:RX", "", [] ], + [ "esp:RX", "$serialMonitor:TX", "", [] ], + [ "esp:GND.2", "led1:C", "black", [ "v0" ] ], + [ "led1:A", "r1:1", "cyan", [ "v0" ] ], + [ "esp:12", "r1:2", "cyan", [ "h-14.21", "v76.8", "h240" ] ], + [ "esp:15", "bz1:2", "orange", [ "h81.64", "v-192", "h38.8" ] ], + [ "bz1:1", "esp:GND.2", "black", [ "v9.6", "h-48", "v57.6" ] ], + [ "drv1:SLEEP", "drv1:RESET", "white", [ "h-9.6", "v-9.6" ] ], + [ "drv1:GND.1", "esp:GND.1", "black", [ "v0.08", "h86.55", "v-153.6" ] ], + [ "esp:5V", "drv1:VDD", "red", [ "h-33.41", "v96" ] ], + [ "drv2:GND.1", "esp:GND.1", "black", [ "v0.08", "h19.35", "v19.2", "h-288", "v-172.8" ] ], + [ "drv2:VDD", "esp:5V", "red", [ "h28.95", "v38.48", "h-288", "v-134.4" ] ], + [ "drv2:RESET", "drv2:SLEEP", "white", [ "h-9.6", "v9.6" ] ], + [ "stepper2:A-", "drv2:2B", "magenta", [ "v0" ] ], + [ "stepper2:A+", "drv2:2A", "orange", [ "v0" ] ], + [ "stepper2:B+", "drv2:1A", "gold", [ "v0" ] ], + [ "stepper2:B-", "drv2:1B", "blue", [ "v0" ] ], + [ "stepper1:A-", "drv1:2B", "magenta", [ "v105.6", "h144", "v28.8" ] ], + [ "stepper1:A+", "drv1:2A", "orange", [ "v96", "h144", "v57.6" ] ], + [ "stepper1:B+", "drv1:1A", "gold", [ "v76.8", "h144", "v86.4" ] ], + [ "stepper1:B-", "drv1:1B", "blue", [ "v67.2", "h144", "v96" ] ], + [ "esp:19", "drv2:STEP", "yellow", [ "h62.44", "v201.6" ] ], + [ "esp:13", "drv1:STEP", "yellow", [ "h-196.61", "v134.4" ] ], + [ "ultrasonic1:VCC", "esp:5V", "red", [ "v19.2", "h-57.6", "v192" ] ], + [ "ultrasonic1:GND", "esp:GND.2", "black", [ "v19.2", "h75.6", "v38.4" ] ], + [ "ultrasonic1:TRIG", "esp:5", "cyan", [ "v9.6", "h105.2", "v115.2", "v28.8" ] ], + [ "esp:3V3", "oled1:VCC", "red", [ "h-23.81", "v201.6", "h67.05" ] ], + [ "esp:GND.3", "oled1:GND", "black", [ "h14.44", "v144", "h-76.8" ] ], + [ "oled1:SDA", "esp:21", "white", [ "v-28.8", "h134.47", "v-134.4" ] ], + [ "oled1:SCL", "esp:22", "violet", [ "v9.6", "h77.1", "v-201.6" ] ], + [ "imu1:VCC", "esp:3V3", "red", [ "v-9.6", "h67.28", "v57.6", "h57.6", "v67.2" ] ], + [ "imu1:GND", "esp:GND.1", "black", [ "v-19.2", "h48.08", "v105.6", "h67.2", "v153.6" ] ], + [ "imu1:SCL", "esp:22", "violet", [ "v-28.8", "h96.08", "v67.2", "h220.8", "v96" ] ], + [ + "imu1:SDA", + "esp:21", + "white", + [ + "v-28.8", + "h-57.52", + "v105.6", + "h48", + "v153.6", + "h124.8", + "v201.6", + "h326.4", + "v-172.8", + "h-67.2", + "v-96" + ] + ], + [ "esp:27", "btn1:2.r", "cyan", [ "h-71.81", "h-60.4" ] ], + [ "btn1:1.l", "esp:GND.1", "black", [ "v-38.4", "h67.2", "v153.6" ] ], + [ "ultrasonic1:ECHO", "esp:18", "green", [ "v28.8", "h76", "v115.2" ] ] + ], + "dependencies": {} +} \ No newline at end of file diff --git a/hcsr04.py b/hcsr04.py new file mode 100644 index 0000000..d58878b --- /dev/null +++ b/hcsr04.py @@ -0,0 +1,48 @@ +import machine, time +from machine import Pin + +# From https://github.com/udacity/cd13765-deci-emb-sys-l4-term2-project.git + +class HCSR04: + # echo_timeout_us is based in chip range limit (400cm) + def __init__(self, trigger_pin, echo_pin, echo_timeout_us=500*2*30): + """ + trigger_pin : Output pin to send pulses + echo_pin : Readonly pin to measure the distance. The pin should be protected with 1k resistor + echo_timeout_us : Timeout in microseconds to listen to echo pin. + By default is based in sensor limit range (4m) + """ + self.echo_timeout_us = echo_timeout_us + # Init trigger pin (out) + self.trigger = Pin(trigger_pin, mode=Pin.OUT, pull=None) + self.trigger.value(0) + # Init echo pin (in) + self.echo = Pin(echo_pin, mode=Pin.IN, pull=None) + + def _send_pulse_and_wait(self): + """ + Send the pulse to trigger and listen on echo pin. + We use the method `machine.time_pulse_us()` to get the microseconds until the echo is received. + """ + self.trigger.value(0) # Stabilize the sensor + time.sleep_us(5) + self.trigger.value(1) + # Send a 10us pulse. + time.sleep_us(10) + self.trigger.value(0) + try: + pulse_time = machine.time_pulse_us(self.echo, 1, self.echo_timeout_us) + return pulse_time + except OSError as ex: + if ex.args[0] == 110: # 110 = ETIMEDOUT + raise OSError("Out of range") + raise ex + + def distance_cm(self): + pulse_time = self._send_pulse_and_wait() + # To calculate the distance we get the pulse_time and divide it by 2 + # (the pulse walk the distance twice) and by 29.1 becasue + # the sound speed on air (343.2 m/s), that It's equivalent to + # 0.034320 cm/us that is 1cm each 29.1us + cms = int((pulse_time / 2) // 29.1) + return cms diff --git a/images/connections.png b/images/connections.png new file mode 100644 index 0000000000000000000000000000000000000000..d309421c99f1c427ae62c8dc5600f90e7f5ac83d GIT binary patch literal 150433 zcmb^ZbySq!`vnXSDbgY$4FbY|fHXscbW3-4cb9++4bqL$4boi#j$eK}varO9p{ZLu4hy)V;HJJFWc5W^)b#ijCPqmmY`URMJQ$ zBufk?Qpm>bw9zf?URkcC{@#JL&oZ8E%qw>+{aUm$+H^~@Z!*tO^i(59xGLJu$Lar} z8ICN}PKB0#U`m#WDujAMB%DGsd<@BLxJV(PNbRM^0WXj^tt`i|af6Qq?%}8B=P0Pi z!J^do7~rYpcklCdl!xE`_d+e5=wFQg_m85~5LM~_&)-}q3*-Jf>3?sf_IUq)9|E2> z#s2?s8swe+E-n~Yzkh-`rvU#|BWVboGX#PUd5sZ5ZTE5o1~-}e?fxXV#UCHF=U5Pu zc2jFi+{3QW#xm-9YSHv;{Y-L;23*Pr>BC6->(&csLk}o+jdl&G@wLdCt82s`MyX%? z-_TQ8lBMpRg_P3TooW;ymx9Vc@9258>MD;CK>_0@{;g`u~%VQ9aC27Vn z4sY2JwHtv6VYm9fPe2Wf#KM2JJN>?$)utEy+XV@eKg>ZVZ9?O<`+X|K8-LvhB~yJl zW3_kkuXRP7k!fv2ZIR4+V_rhUpES9JdR{%{a8>n>MtWCrYu*u$=~cwM11t7d@e2nt z>W1<#_onkSIP8;G!Zd54haQTGNmJV<^Czutw@FC_+Vth8w@CG0bwkkNqFk zvX)!Ub0o;2yXXnU8z?PZpZ~ohG?p9}ado<*r>iR`FP|32g$&WI`f+u2HJZh%rJ;cY zfgoH%sj%)iqZez2u@!f@AU(!xLHn;Mzs>jT7`R;Tog+gc`k}dJue~2Vd^hWV(Z%fc z?GNz@21k~|L9W%t#%BHd+t&$^by$;}RdBAIMtX{(5=JR`TUij7uK8;2%mi;0o88ZEZ z!&Owk-2nf@MJH>_HjIJ5Voa4Up4U#qL8v8oGi7EkBSjxE_LM*%78Y`{6sNugqZ^p0 z^tB51hS#AWMvig*7bD06aNP~g8B(~(I<8sS=vLFVJTrfZjuS6Cf0ZsngE8|u)&N6j zZRGZrHZ>1X#Ko8B;xyEI5^KM*($W_F!YBRKT-Cabf4?QrzT3R0HS<0#A!?U~K#Yw` zUBhdqEupof`j$C;mGxvKHn< zl|PtCc*&R0wcg&y?-@tiZ<)Eh3|QY$V}#T^hZu8Ykdl!--)(aXo7%3dsMy)rd77W} z#u}9~jYW;JB{}g&B1;wx zRQ*>ggkMXfr5?=&+Z}U9BMO3h=pdrh*!7)sAOSEl$xuA31YBvqL+gw0c|y(0o;8E! zqw|*ccX&EHXpj}_^W7TlZH^jf^K6>Vjvx;_^SVX{PD3_ik7L0D=~0I+@sh%X2w>d1 zALHmZZ**P#JKyl*LQ1Q<^rJU5wX{A8c(Gze;Yr?m6pX=pg!LF;Xk-#5WL=|{M`{LAUAIhQF9 zsp9dw|D_6JVsyy2tsSlj%G}MM?pt1?jsvIqEJcNEzn#5JBuK~CuM?afS+m@KZZKK7 zrPQ|$iH(Osha#sc-7-D2cvF;7%^2YR2y_PJ?99;gQnfQH$X``tbMJ@A8>#5oR=&^as zsktc|!Q;-muQej~B6s}lz2CoYH!lSu$+MEJyiWtUmc85;$1sLNodT^5-O zbNyqMYT?wqM`^=7S6!{VbaBgh#V-g@07 zi-}zES)83-MO<#i7C)zpFWuYeRdR#eiP;aeoFDz`k`zlETi2`Q%X>ZVjv8lkiBJQ1 zg2X@_tabmtVfTMOYj8jr8;I!tezZn`i1$+0s$ph4GS@!abzc7S=i4Pu>S=a${+zrz zOwn%V7kID^ze%UY3^CExQQYx$5#K|`D*Vx#3E6)t;>pJSaD#635CE|+&;{s8PJpN$qn7AK5 z-d}8B%Ef@pofdt>hB`aH#*c$fMnrGTjZ8(FC|xSs^_=J(0n| zPk*!KelMxo;WKav=3E|AlIFU~F%*%7?O&{3lI19=qC)BsKb=K#+e*fBCOL(t901?GUl{Gx; zrqHb-f>4`pz!r_drW$H%?ajScbxoET+8_?^YVb>Av@rw-M%IVzm$eE#CF(l3q;$S;H;l1j;`;J3A)W! z`B)kR*mNSUjw0QH_+7?CvfjuFKAM@(_jF8v8DT|lZv1^uO3+>^M2bQTTI~ z`^WjWMn;y`7yYd$B~mlwU+gMv-1ht99~RjErhr;q%q9X1leebaJ=3F}PZ>r|NlHpe z^>BR5%mkB__ZCVN{gU8us)Y+VgRE-JEEzU>#f)w9f&pvV!rqy;AgGO;JU`PoP2%NNn8->9HnDHBmJVqB5D2{^ymB5XWsJ6db&*2j+s?<^WVOGJ3Kt> z|L>TdR%au|4)2SUph=K96jWA82FsHen?7mKwvj(aDQ$TD$Xk#yenIG1;RLLc8Ath| z;g0s}U2`^`VLeca9W|GqZ>b7%l~BabLaHO%*@Q} zEH4+=^bevOs}Pze=pZ&jX0Q0-yL09#to}O-l_{4m@RXnAT z@5$E0{{H^9jmPT2B?-mDu~=_~2kF^4Z30K*!;zsNIWj!zyGNnL+roT>7mu5p#Y8=6 zzS8i7KVMNS37@# z1o@yq@8|n)d{VV_baZrZFzEF4P*YP=*|aHlZ*f2m*EwHZ4c75|3}Tzr=mY;7&_=v; z)ZXiKQEVJ|`@W1WN9ka>ySt#EpuXPC*49?ommBtQv;)8D(WC9T>FH^Us<@lLZfXn&yxho|)pr}^p4G2+S(8e6 z#FM-b%U_i{;qU4yak~zy3X?(5)6@Sxy1>@IPQ}<9%RzxaLXfXWh#YlQ9PjJTGK+_3 za1XY(=i9x&r}{}tYpjc;zZ^6tFs#nYTg|kqp6~E+lMMUmYRFqz#`CxIod1#3ZGz7} z{X@j_MTAoYde>gRdq7-YzDsP)tzawi5~18?;GBXKT%IgdtG#=Bz8rKmZ`JIyEX>2h zQy)E+uFeFO*ZC2GDn2F#fYCY*4Rjn@ag8)>ST0pIMwvBhKaELhUui$8yOJA!PW{2< zm$l=|v1~pRNKf`@x(R*rcg?k{5jgycBWviaMET=Vlfy#&xbVWn#FI$ohNZ*nTj@CR z?Z1C9!~1x$6pN@VGy2RqCxc~NeWi#BuQ>F~!UE7A(SSBE|Np?)h&BbE!iW{mw3Dr7 z`;RWG@!TqK*B6=`OikHofAYl%xNVFCqdWrlc;3Eg0ZUogCaRL9@n49uC3ER74$8>S zgN34RVdDh$Tm+HC*yy3XY+j2-7}}|O`}?5JnfmTMBlT&C**o~m_uPt?r*x!u<@j>R zdo9-LV}R%V-R+ULzm!2PSxE27M1iz&4*x)1<#mLn)4xgnE7zuku#Xlpy<*lc7txYO3&ZX%5SYcXbfnlwn_2Y2#PphiHMVha6D zAJyGwkDVVB0-nqrolq*_j|V-$C?HULJD1iN_3MXCCixU%L{u9@-~4|M@U66E=UF}3 zj9dYp@Wo2&X6{0}mlJ(bh7Hwb^!D~Pfc#2|ieM^3Se;ShW|MX2utnH%Sw6hirW>Ju zxvv3xjFw1^A^dUNm`$GuNroKZ;pNpwN77P&>&8vw2X7*swc_O}O^{k!TYKGg@%u-W zUU+!8)z4)gb8G9;ii&89`OM7Bkl*u;ruI_49K^4N25`%0QITCPL;i;Z2`l2PqdIQO zuSP4Fu$oS;Z(nzwOoC5AAP`owh)WA&<4?`aY19!{SHA11birDw+60VeyG1r#dEz;h zwW1t!W<6`dacf_{er?coP|+E9p8FQ+ezK*Ku1>+3@_T)6AUChi>6)js{wOZhnfrmO?^8 zU^xbC=6G#*UdihN_UKq~{PEP(6jzK9|$ABX~U7 z5_MF6Y?TNO3b>Q5o;K;;Li0h2mSKhknljwPo`=lcHst6C7Kat`&P3bJ?v*==JbeesLprf<&8>JAZ;S>4a}+ z>I4deP2Pup)CRf4nTH5B98@Yf{P&BFyu{dql8moveO@LF7OIxH^Y0yBvIe@C5bqm? z@%@bw%FA(GoOIpFRcCKomWC;mV+t4KfnATVB6h!d-_eG`+tZP1^Ya*%a`c&lkO3`ORyzv&=U7gd^xfFDs=+BvGCylbD_HDEjM@ zk@dC^B3zOljsf*_1AMS%_U$30mgoq>WlfKnDCEc3UseyJK`j2Xs~N5I<5Kh!q-=A~(kFgyEEh0!e&QS@TK z`Qi|ZlfD{7484e8ojSpX|0utA8)cglwvCkWk4T~kjfso%^S>ONhrh9vEBH1+F=?aB z`cs#~^u>#i_bw&uUG%xS8M?b&rTNpAErE@*Hmo0XR~EgN1C9osTj5(5&hE&|$!S*W z^9`Rk!s5gS`;R-QF~r5i2XvFp_7}61N)9^DmjI>;vjnXOZH1kozX)%fjK$L6$@6rCzfG5ostFd~%suM-n0^F-u` z`Ya0$5`burFX7?gYGpL)Tc9?2=iUSMZF;UWxnVCgRSA=}OeQrT;a?3Ogilw|j z+z#kRZ>5!}>(qDseZ3<-DBK`yoWGc}kni=m=ra>`SX=f!Mxq5|c^SJlGqGk5U3&aa z)t!=sat!_L!?)0ro8$5B+p~p%+zv344GrpG3OPvT!{bb}<vz{m15JDvva_=YY9+3HPfOl$31F)tZ6y+S%EO zf`URzOUs03PF!49S65tIoR?>^K9s`3!t(Ov%i~`2{zHTu&|&>Af}+u=+1OIToH?va=X7h_v`ejq9ILeIV%5}7r7m*A_95Gp57qI zLa>GkA2(OYU?4z#twIaS`$`e_9U@c~i(X<8Xsr(i&p1Ro*r){J3A0U_zJ$kKAS*mK z^v=_^QCCx&nwx_bi%}61V}!pRd@6(AU#?MMF0H7jXtBUTMn-0FWDqIw`(%3x0txMX ztEVR*BxEq%5^#69$r#nPQ{7JZlS_l2hg+-TtfX~BFj(7L>7#Hbz?jOymxTod;ylPR zNiuZ*bs*Da0ATd6fTn|t$G+w2Zw0T@QuggFTvVTk+5@#xvtnyMQK@7+N1%C5NZ0i< zvj7i|W%I%+FNNZiX2r9OuNo);zw?#l-PMw-bj{Pq`fqwOTDBBb+M+GnNFb1}rfs+e z_QR6~X4TG_JiJ=a_GwRd_YMG>B>AQr8yYILYfV}COEKXl0Q*P%EBV>%1kjV;Vecb{ zrjBPScEjYe&Afs_Z8g?54aE3`UyW-w2xKxc9v3QeYgIZy@f}avmv8rDd6(V>DMb&| z`JVm_A!*pe1RN;a-k(2(R}K8&F6SH8-0xb6RD8FTmmm0UURvJ_TOc%L{5~^t3Sxfm zS8IJujk4r%J_+%|;eENDh6Kstb?VwK&T{NL)eJiz0X!Cmcu?p%ssb@ukxFeKh8AI9 zw~_k_BNN#(K9AMMep51}29N3VlD0FC4K@CpBpQZXs=G-R$=i6;cX!{*YGw|wK@CP`)Z2Lz zOot)a^6y6r%WNg{+b0+2-S@W@HC^R**Q|>JrCuIwuj{&EvOZoRgIM?kT9b?9=+09lr&f9|q&-R~7e0+TO*-tyiX1y1kCTd}3 z;%4)4abfA^w3dC_Qzal9U8WfY>WpGP>SH6eXQod^xR6)FdR+DJb2oi*!{MPk#g;rmo zDR~{$e=U$d@{=l=(O*C!3TglK02Ob{Z^2OBF9ct4!zQCJ{=I+})J*Upou;+$v(^ml` z>@;+0)HPt$vau zbNZ+y+~n{E3qK$r0A!9oa2&G0v-*#t#rzn^?90ppI>X4cch-5>9%u>Gc#)KmLo)JR z|M*Yd*ANzdrD5(Qe7as^2Q^stVB(qs4er_A!c2A)-C$-W=_#uNR!=6k9e@I5#p@Rr z7gc4%0UZy@`unG>(Ot&YM5Zdll$3$HwFt28B)y` z+9j6jfr0uvs;_dEY5eb31Y$Yx+M!mx0+}?{61?w+e7(~7$;mf~kX~bJ8=C|Q0YO3L zSIp5S+Me}*)BJ({tgNakMMGJxNVU!~B_+icbM_$(f_e(t^PnztFx<|u0M9z-JWetE z{N8sHrhU&B)ZgG2_S#0Hqac6WGv#&otbJVNTvKu0Fas^33j}pXBbBGTvQodohwv)7ad+ zY4p@w>#1Ft+F6kNwm8z;L&vuG# z!im>L68NZsSTMZQghlMW&%2hyaEs>TMgT7{U1(L8z?@p#x1ITVQ64AwhrB%W=OWf7 zAfgN5(zYjNJ$Ny0k?+GSlMJ`6Nn=n>e*)xI#Vfdf)r>{epJx;;r z`X>}m_^n&{(9lq86!)Yx*XKh)_j4_hSuOl{L;-!XH;nvlB@~a4zSlF!QPBZ6I%>@P zi*sv6#O9?nTaO#(QDM%)2?eSc=}414yG({P+Xt2pnzJog70EX&%R%?IW{9|F9o3-a zDTkU?ppzp&$lClgW+RT3T5pNVpKEa`$eg%Fh}@}Mj+-dvHKO-_IqWFACC@fks>Fc{Luj-cQvza zxxuN0+yJlV{;x9nO+5>X^_azzJn}l-D(t@RT#72m>CehLJ1M#>b$E!P!`|d6&~s+- z+XJ{(t6jN50@Bvh(o*1pL-V@b=eA<=<-vr(PldiSSEC}`OZE4cMK0Ej%A#g2H@qm@RIq0NB7j26C3qz> zJQQ6qp0Ft5e{VCWg6Dra#&Sm9j*-ZvT{&UAejo7fuO|OuW(=F32wM}-uIrKcS9XMeAlfe zeQ<+z&u8|nZkuDLJF`}4bi&JeaN8=+)7bK=cj4)7fCRofqPk}JM(sbB$AZ zOob!!<^?<|VeI4FNFUd{&1dS;sA3=o*U!h85D(V@E}amQG2M$$yV=nIN*Eqv?>8aPiz7hKrOQ-5+^drkB3UFRiQNXkMtAuwDsU zDaD^Ma3+6*fNNHST~Y$d<|Z%*Tm*Wkt*XZ`Xc%^WR0((=esZk`0^S282c4o<7kU-< zOTYM!?Gk*nL{Xq#Ujm5dc;=Z|tVlm)uj#z;xC-=dwxHLCk*D&N3E$rwBjTyQ|A^|FhH2tM@0xcZ3bPmRI{CK)KeAj!pCSQ!mh%<5@srcQB7k|fg2R_dsI*3r^RbH(|tVQ4jGjYiH8qq$R5^j=fM z$E`K+-=9vA+l!9qMS+9oiBb?qK`i=a+qgU}S}tWQgvCuPtih>lGA38}b$G5YKgn!c zlfEg6-F?Gz@@0WUhs6~bt84E-^}vp*jE2|N_dJoCRXjAOPx<+#=sPE*vBh0ofuO7y z)@Xq?3-9q!n7uKOHKyEUWn}{bZbz^+!Cw^f=Hi8~ti8Qq%S!~&hV!&f*p>b7ub0PD zrC@R3VzNeg7$#+IR70G}c~K~Gar)R;(_Sq!A0Mvvc`f;rT&ZFLKhNhsM9&^%+B@rN zcl=9+n(MPYwbVx+hKA$-6JjTZ|7G=aWpJ#)#U!=u zpGSwA0Ji0~-NozSI^1xSE)V`30C0c+Fk!8($@YE?mNZDW6FDc8S-kW2@6{FN^!_gZ z1#ozOeNevU)_`SJWFyc^>bzEACJh|Vmz~Ngi>3??g8GlCK{BZHJk8AOSdSaO)zqQp z7W`?9de?ir@76poL|u0sa^m}Gv^KpF%ezFBZ-ykPR~R^hF>s& zLA%S2?bg1y?e6R9%HbzUfSM3sP^$yFPSDi~Qfjp{_V)IQ0LbCB=%Lkx4xlX+1%)~c z#nkZ$>gsAZ)tFN27+cJ|eQw699BPbh_e={N6^wOx(GU}2=I8Q>g&W8NhPZuf_4Ac8 zwtcIg-4&TgWA6asI9-buxqE<{=w86@^Wf@|&(SgpI0bhM^v9q}9)4W~ZX;;b0O`2C zzHW5)FD*^oCV4$P?gy6!Q&mmS%@G1^CzqRxOGf^2Y-}tJHukrlmAZ{`y0`U!wy~_= zTkfVBb6C5b@#myWt)i4e#U*Lfo6rI*37@%0v2k4D8>|GG|0QN1ChUt*d7PyEPB|_ zQJ1bpcXmNy-$ngI0TE^6!A{#WTj8r7QfjaAQ6oG#IoVxoZ+^Sk3!o!&YV?dsdwYAm zq^pNVMhs_5n#ZY(vWumx=DypR6(0}Y?x9BtyFd+ z4Hkmtkc@aiWsTPAGlso5?pWoULAE&%IQQ=lVe#tlmcG2b|M%VKG~nO&rY9~8F#^6T z6<&^m!iP;+A06_PcYmH~Kk{CwU^%k>g<{X5WVzGt7POua5AJ$wP^_%fQH)|3!M>z-n(zl8) z@ZFGAr6Y>u{ruW9eZz*~k&%%=Jvh``zWM=(-j2Bdo!n{0;&M>6jGN>WV?asEPnFcF z(p`7wAHaW-u_xoMKlno)9~%B?x!W2R;^AaG3d+8KOtBA<5SWMvj$E_T~Sv`k$(2tIQ&v`}k?i!7)PF?|80tES=lan+o+H_N2+1kWyg$ag9WF4eU zwKGeLR%NEP-9hIG$T_|$q{}w-@37^Gi3DYe-cMc4c!bW25+elN%l9)iff}i~N)VivX{AGY;?x_c59u%2DeyRJlJ6IQ>l>c!IOu)(p0@iybOG8EgK{om zw7THwv>NZCd(yNQ7CXZSR2999&;Lk>;fzd41j$m9ku@Wp$x{-ajH%u| zeeNQM!_W^{MF`{+dC;<+v4S>k4VOwdTbTk0Vk^fI^%r9WW+IrHd&jKN?#ewEAn^+q zEpfsWaX5wuETw5bcS4L;In|jD{&3SINwUg$;>ozIwt)ri06D3WPu;_YzzUP9h zAjLnij`b4qEg@!IYrPw@65+o57k}RI@`=nVCIehI!=OSSq~{0+@Gl$6XlSHdS@
    QN?8F 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�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

    Wk9R;l;i> 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 z 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%0DExM8U5e5N~kC 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 literal 0 HcmV?d00001 diff --git a/led.py b/led.py new file mode 100644 index 0000000..2974e0a --- /dev/null +++ b/led.py @@ -0,0 +1,18 @@ +from utime import sleep +from machine import Pin + +class LED: + def __init__(self, pin): + self.pin = Pin(pin, mode=Pin.OUT, pull=None) + self.pin.value(0) + + def on(self): + self.pin.value(1) + + def off(self): + self.pin.value(0) + + def blink(self, time): + self.on() + sleep(time) + self.off() \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..e70328b --- /dev/null +++ b/main.py @@ -0,0 +1,225 @@ +from machine import SoftI2C, Pin, time_pulse_us +from utime import sleep + +from led import LED +from button import Button +from buzzer import Buzzer +from stepper import Stepper +from hcsr04 import HCSR04 +import oled +import mpu6050 + +led = LED(12) # D12 +button = Button(27) # D27 +buzzer = Buzzer(15) # D15 +leftWheel = Stepper(13) # Step: D13 +rightWheel = Stepper(19) # Step: D19 +ultrasonic = HCSR04(5, 18) # Trigger: D5, Echo: 18 + +i2c = SoftI2C(scl=Pin(22), sda=Pin(21)) +oled = oled.I2C(128, 64, i2c) +mpu = mpu6050.accel(i2c) + +# 1 cm -> 11 steps +# 10 cm -> 106 steps +# 49 cm -> 520 steps +def get_steps_from_distance(distance): + wheel_diameter = 6 # centimeters + wheel_circumference = wheel_diameter * 3.14159265 + steps_per_revolution = 200 + return int( + distance * steps_per_revolution / wheel_circumference + ) + +# ------------------------- Part 1: Test ------------------------- + +# while True: +# value = button.pin.value() +# print(value) +# if button.is_pressed(): +# led.on() +# buzzer.beep_once() +# else: +# led.off() +# sleep(0.5) + +# while True: +# led.off() +# # Program pauses here until the button is pressed +# button.wait_button_press() +# led.on() +# buzzer.beep_once() +# # Wait until the button is released before restarting +# while button.is_pressed(): +# sleep(0.01) + +# ------------------------- Part 2: Test ------------------------- + +# while True: +# if button.is_pressed(): +# # Opposite directions make the two robot wheels move forward +# leftWheel.move_one_step() +# rightWheel.move_one_step() +# else: +# sleep(0.01) + +# ------------------------- Part 3: Test ------------------------- + +# while True: +# try: +# distance = ultrasonic.distance_cm() +# print("Distance:", distance, "cm") +# except OSError as error: +# print("Ultrasonic error:", error) +# sleep(0.5) + +# test_distances = (10, 20, 30, 50, 100) +# for distance in test_distances: +# steps = get_steps_from_distance(distance) +# print(distance, "cm =", steps, "steps") + +# while True: +# led.off() +# print("Press the button to measure and move") +# button.wait_button_press() +# try: +# distance = ultrasonic.distance_cm() +# target_steps = get_steps_from_distance(distance) +# print("Distance:", distance, "cm") +# print("Target steps:", target_steps) +# led.on() +# for step in range(target_steps): +# leftWheel.move_one_step() +# rightWheel.move_one_step() +# buzzer.beep_once() +# print("Movement complete") +# except OSError as error: +# print("Ultrasonic error:", error) +# # Prevent another measurement while the button remains held +# while button.is_pressed(): +# sleep(0.01) + +# ------------------------- Part 4: Test ------------------------- + +# print("I2C devices:", [hex(address) for address in i2c.scan()]) +# I2C devices: ['0x3c', '0x68'] + +# OLED test +# while True: +# try: +# distance = ultrasonic.distance_cm() +# print("Distance:", distance, "cm") +# oled.clear() +# oled.text("Distance:", 0, 1) +# oled.text(str(distance) + " cm", 0, 2) +# oled.show() +# except OSError as error: +# print("Ultrasonic error:", error) +# oled.clear() +# oled.text("Sensor error", 0, 2) +# oled.show() +# sleep(0.5) + +# MPU6050 test +# while True: +# values = mpu.get_values() +# ac_y = values["AcY"] +# print("AcY:", ac_y) +# oled.clear() +# oled.text("Accelerometer", 0, 1) +# oled.text("AcY:", 0, 2) +# oled.text(str(ac_y), 0, 3) +# oled.show() +# sleep(0.25) + +# Combined test +# while True: +# try: +# distance = ultrasonic.distance_cm() +# values = mpu.get_values() +# ac_y = values["AcY"] +# print("Distance:", distance, "cm") +# print("AcY:", ac_y) +# oled.clear() +# oled.text("Distance: " + str(distance), 0, 1) +# oled.text("cm", 0, 2) +# oled.text("AcY: " + str(ac_y), 0, 4) +# oled.show() +# except OSError as error: +# print("Ultrasonic error:", error) +# sleep(0.5) + +# ------------------------- Final Project ------------------------- + +while True: + + # Set LED to off, # IDLE state + led.off() + + oled.clear() + oled.text("Press button", 0, 2) + oled.text("To Start", 0, 3) + oled.show() + + # Wait here until the button is pressed + button.wait_button_press() + buzzer.beep_once() + + # Read the ultrasonic distance + try: + distance = ultrasonic.distance_cm() + except OSError: + display.clear() + display.text("Sensor error", 0, 3) + display.show() + sleep(3) + # Require the button to be released + while button.is_pressed(): + sleep(0.01) + continue + + target_steps = get_steps_from_distance(distance) + + # Display the measured distance and steps + oled.clear() + oled.text("Distance: " + str(distance), 0, 2) + oled.text("Steps: " + str(target_steps), 0, 3) + oled.show() + + reached = True + + # Drive the required number of steps + for _ in range(target_steps): + leftWheel.move_one_step() + rightWheel.move_one_step() + + # Check the accelerometer after each step + values = mpu.get_values() + ac_y = values["AcY"] + + if ac_y > 12000 or ac_y < -12000: + reached = False + break + + oled.clear() + + if reached: + oled.text("REACHED", 0, 3) + oled.show() + buzzer.beep_once() + else: + led.on() + oled.text("TILTED", 0, 3) + oled.show() + # Beep three times + for beep in range(3): + buzzer.beep_once() + if beep < 2: + sleep(0.2) + + # Keep the result visible + sleep(3) + + # Require a new button press for the next run + while button.is_pressed(): + sleep(0.01) \ No newline at end of file diff --git a/mpu6050.py b/mpu6050.py new file mode 100644 index 0000000..a2432b4 --- /dev/null +++ b/mpu6050.py @@ -0,0 +1,41 @@ +import machine + +# From https://github.com/udacity/cd13765-deci-emb-sys-l4-term2-project.git + +class accel: + def __init__(self, i2c, addr=0x68): + self.iic = i2c + self.addr = addr + self.iic.start() + self.iic.writeto(self.addr, bytearray([107, 0])) + self.iic.stop() + + def get_raw_values(self): + self.iic.start() + a = self.iic.readfrom_mem(self.addr, 0x3B, 14) + self.iic.stop() + return a + + def get_ints(self): + b = self.get_raw_values() + c = [] + for i in b: + c.append(i) + return c + + def bytes_toint(self, firstbyte, secondbyte): + if not firstbyte & 0x80: + return firstbyte << 8 | secondbyte + return -(((firstbyte ^ 255) << 8) | (secondbyte ^ 255) + 1) + + def get_values(self): + raw_ints = self.get_raw_values() + vals = {} + vals["AcX"] = self.bytes_toint(raw_ints[0], raw_ints[1]) + vals["AcY"] = self.bytes_toint(raw_ints[2], raw_ints[3]) + vals["AcZ"] = self.bytes_toint(raw_ints[4], raw_ints[5]) + vals["Tmp"] = self.bytes_toint(raw_ints[6], raw_ints[7]) / 340.00 + 36.53 + vals["GyX"] = self.bytes_toint(raw_ints[8], raw_ints[9]) + vals["GyY"] = self.bytes_toint(raw_ints[10], raw_ints[11]) + vals["GyZ"] = self.bytes_toint(raw_ints[12], raw_ints[13]) + return vals diff --git a/oled.py b/oled.py new file mode 100644 index 0000000..bfeb820 --- /dev/null +++ b/oled.py @@ -0,0 +1,178 @@ +#MicroPython SSD1306 OLED driver, I2C and SPI interfaces created by Adafruit + +import time +import framebuf + +# From https://github.com/udacity/cd13765-deci-emb-sys-l4-term2-project.git + +# register definitions +SET_CONTRAST = const(0x81) +SET_ENTIRE_ON = const(0xa4) +SET_NORM_INV = const(0xa6) +SET_DISP = const(0xae) +SET_MEM_ADDR = const(0x20) +SET_COL_ADDR = const(0x21) +SET_PAGE_ADDR = const(0x22) +SET_DISP_START_LINE = const(0x40) +SET_SEG_REMAP = const(0xa0) +SET_MUX_RATIO = const(0xa8) +SET_COM_OUT_DIR = const(0xc0) +SET_DISP_OFFSET = const(0xd3) +SET_COM_PIN_CFG = const(0xda) +SET_DISP_CLK_DIV = const(0xd5) +SET_PRECHARGE = const(0xd9) +SET_VCOM_DESEL = const(0xdb) +SET_CHARGE_PUMP = const(0x8d) + + +class OLED: + def __init__(self, width, height, external_vcc): + self.width = width + self.height = height + self.external_vcc = external_vcc + self.pages = self.height // 8 + # Note the subclass must initialize self.framebuf to a framebuffer. + # This is necessary because the underlying data buffer is different + # between I2C and SPI implementations (I2C needs an extra byte). + self.poweron() + self.init_display() + + def init_display(self): + for cmd in ( + SET_DISP | 0x00, # off + # address setting + SET_MEM_ADDR, 0x00, # horizontal + # resolution and layout + SET_DISP_START_LINE | 0x00, + SET_SEG_REMAP | 0x01, # column addr 127 mapped to SEG0 + SET_MUX_RATIO, self.height - 1, + SET_COM_OUT_DIR | 0x08, # scan from COM[N] to COM0 + SET_DISP_OFFSET, 0x00, + SET_COM_PIN_CFG, 0x02 if self.height == 32 else 0x12, + # timing and driving scheme + SET_DISP_CLK_DIV, 0x80, + SET_PRECHARGE, 0x22 if self.external_vcc else 0xf1, + SET_VCOM_DESEL, 0x30, # 0.83*Vcc + # display + SET_CONTRAST, 0xff, # maximum + SET_ENTIRE_ON, # output follows RAM contents + SET_NORM_INV, # not inverted + # charge pump + SET_CHARGE_PUMP, 0x10 if self.external_vcc else 0x14, + SET_DISP | 0x01): # on + self.write_cmd(cmd) + self.fill(0) + self.show() + + def poweroff(self): + self.write_cmd(SET_DISP | 0x00) + + def contrast(self, contrast): + self.write_cmd(SET_CONTRAST) + self.write_cmd(contrast) + + def invert(self, invert): + self.write_cmd(SET_NORM_INV | (invert & 1)) + + def show(self): + x0 = 0 + x1 = self.width - 1 + if self.width == 64: + # displays with width of 64 pixels are shifted by 32 + x0 += 32 + x1 += 32 + self.write_cmd(SET_COL_ADDR) + self.write_cmd(x0) + self.write_cmd(x1) + self.write_cmd(SET_PAGE_ADDR) + self.write_cmd(0) + self.write_cmd(self.pages - 1) + self.write_framebuf() + + def clear(self): + self.fill(0) + + def fill(self, col): + self.framebuf.fill(col) + + def pixel(self, x, y, col): + self.framebuf.pixel(x, y, col) + + def scroll(self, dx, dy): + self.framebuf.scroll(dx, dy) + + def text(self, string, x, y, col=1): + self.framebuf.text(string, x, y * 10, col) + + def rect(self, x, y, w, h, fill=False, col=1): + if (fill): + self.framebuf.fill_rect(x, y, w, h, col) + else: + self.framebuf.rect(x, y, w, h, col) + + +class I2C(OLED): + def __init__(self, width, height, i2c, addr=0x3c, external_vcc=False): + self.i2c = i2c + self.addr = addr + self.temp = bytearray(2) + # Add an extra byte to the data buffer to hold an I2C data/command byte + # to use hardware-compatible I2C transactions. A memoryview of the + # buffer is used to mask this byte from the framebuffer operations + # (without a major memory hit as memoryview doesn't copy to a separate + # buffer). + self.buffer = bytearray(((height // 8) * width) + 1) + self.buffer[0] = 0x40 # Set first byte of data buffer to Co=0, D/C=1 + self.framebuf = framebuf.FrameBuffer1(memoryview(self.buffer)[1:], width, height) + super().__init__(width, height, external_vcc) + + def write_cmd(self, cmd): + self.temp[0] = 0x80 # Co=1, D/C#=0 + self.temp[1] = cmd + self.i2c.writeto(self.addr, self.temp) + + def write_framebuf(self): + # Blast out the frame buffer using a single I2C transaction to support + # hardware I2C interfaces. + self.i2c.writeto(self.addr, self.buffer) + + def poweron(self): + pass + + +class SPI(OLED): + def __init__(self, width, height, spi, dc, res, cs, external_vcc=False): + self.rate = 10 * 1024 * 1024 + dc.init(dc.OUT, value=0) + res.init(res.OUT, value=0) + cs.init(cs.OUT, value=1) + self.spi = spi + self.dc = dc + self.res = res + self.cs = cs + self.buffer = bytearray((height // 8) * width) + self.framebuf = framebuf.FrameBuffer1(self.buffer, width, height) + super().__init__(width, height, external_vcc) + + def write_cmd(self, cmd): + self.spi.init(baudrate=self.rate, polarity=0, phase=0) + self.cs.high() + self.dc.low() + self.cs.low() + self.spi.write(bytearray([cmd])) + self.cs.high() + + def write_framebuf(self): + self.spi.init(baudrate=self.rate, polarity=0, phase=0) + self.cs.high() + self.dc.high() + self.cs.low() + self.spi.write(self.buffer) + self.cs.high() + + def poweron(self): + self.res.high() + time.sleep_ms(1) + self.res.low() + time.sleep_ms(10) + self.res.high() \ No newline at end of file diff --git a/stepper.py b/stepper.py new file mode 100644 index 0000000..ca46e42 --- /dev/null +++ b/stepper.py @@ -0,0 +1,15 @@ +import machine, utime +from machine import Pin + +# From https://github.com/udacity/cd13765-deci-emb-sys-l4-term2-project.git + +class Stepper: + def __init__(self, step_pin): + self.step_pin = Pin(step_pin, mode=Pin.OUT, pull=None) + + def move_one_step(self): + self.step_pin.value(True) + utime.sleep(0.001) + self.step_pin.value(False) + utime.sleep(0.001) + \ No newline at end of file