from machine import Pin, I2C
from time import sleep
from a4988 import Stepper
from servo import Servo
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
import oled
from ultrasonic import HCSR04
import mpu6050
from buzzer import Buzzer
# Stepper example code
print("Testing stepper.")
# Bipolar stepper
print("Bipolar stepper.")
dear_bipolar_stepper = Stepper(12, 14, "steps", ms1=27)
# Steps
dear_bipolar_stepper.move_steps(30, 0.01)
sleep(1)
dear_bipolar_stepper.move_to_step(145, 0.01)
sleep(1)
# Angles
dear_bipolar_stepper.move_angles(90, 0.01)
sleep(1)
dear_bipolar_stepper.move_to_angle(200, 0.01)
sleep(1)
# Servo example code
print("Testing servo.")
dear_servo = Servo(19)
dear_servo.goto(80)
sleep(1)
dear_servo.move(-20)
sleep(1)
dear_servo.left(50)
sleep(1)
dear_servo.right(30)
sleep(1)
# I2C Pin setup for ESP32
dear_i2c = I2C(0,scl=Pin(22), sda=Pin(21), freq=10000)
# LCD example code
print("Testing LCD.")
totalRows = 2
totalColumns = 16
dear_lcd = I2cLcd(dear_i2c, 0x27, totalRows, totalColumns)
dear_lcd.clear()
dear_lcd.putstr("Helloooo")
sleep(1)
# OLED example code
print("Testing OLED.")
dear_oled = oled.I2C(128, 64, dear_i2c)
dear_oled.clear()
dear_oled.text("I am Kenzy :)", 10, 3)
dear_oled.show()
sleep(1)
# Ultrasonic example code
print("Testing ultrasonic.")
dear_ultrasonic = HCSR04(17, 16)
print("Distance in mm:", dear_ultrasonic.get_distance_mm())
sleep(1)
print("Distance in cm:", dear_ultrasonic.get_distance_cm())
sleep(1)
# Accelerometer example code
print("Testing accelerometer.")
dear_mpu = mpu6050.accel(dear_i2c)
values = (dear_mpu.get_values())
gyz = values["GyZ"] / 131
gyy = values["GyY"] / 131
gyx = values["GyX"] / 131
acz = values["AcZ"] / 16384
acy = values["AcY"] / 16384
acx = values["AcX"] / 16384
print("Gyro Z-Axis : ", gyz)
print("Gyro Y-Axis : ", gyy)
print("Gyro X-Axis : ", gyx)
print("Accel Z-Axis: ", acz)
print("Accel Y-Axis: ", acy)
print("Accel X-Axis: ", acx)
print("-----------------------")
sleep(1)
# Buzzer example code
print("Testing buzzer.")
dear_buzzer = Buzzer(33)
dear_buzzer.beep_once()
sleep(1)
print("Done :)")