stepper-clock/Hardware.py

76 lines
1.9 KiB
Python

import machine
import ntptime
import time
import DS3231
import Buzzer
#import StepperL298M
import MotorPot
import HousingLEDs
import LED
import Button
import HousingCapButton
import Bme280
import uasyncio as asyncio
#>>> pins = [machine.Pin(i,machine.Pin.OUT) for i in (12,27,26,25)]
#>>> adcs = [machine.ADC(machine.Pin(i)) for i in (32,33)]
#def f(t):
#... pins[1].value(1);time.sleep(t);pins[1].value(0);
#... print([ads.read() for ads in adcs])
#Init i2c Bus on 17,18
i2cBus = machine.I2C(sda = machine.Pin(17), scl=machine.Pin(18))
#Initialise the time module with the RTC
dsRtc = None
rtc = machine.RTC()
try:
dsRtc = DS3231.DS3231(i2cBus)
rtc.init(dsRtc.DateTime()+[0])
except Exception as e:
print("Error on DS3231-Inititalisation\n",e)
print("Trying NTP-Sync")
for i in range(4):
try:
ntptime.settime()
print("Synced with NTP")
break
except:
print("timesync error trying again",i)
asyncio.sleep_ms(500)
#Init Buzzer
buzzer = Buzzer.Buzzer(pin=2)
#Initalise the Motors
#stepperminu = StepperL298M.Stepper((19,21,22,23),inverted=False)
#stepperhour = StepperL298M.Stepper((12,27,26,25),inverted=True)
motorHour = MotorPot.MotorPot((12,27),33,steps_per_turn = 192)
motorMinu = MotorPot.MotorPot((26,25),32,steps_per_turn = 192)
#Init LEDs
housingLEDs = HousingLEDs.LEDs(pin=16)
leftButtonLED = LED.LED(13)
middleButtonLED = LED.LED(22)
rightButtonLED = LED.LED(23)
#Init Buttons
leftButton = Button.Button(pin=34,inverted=True)
middleButton = Button.Button(pin=39,inverted=True)
rightButton = Button.Button(pin=36,inverted=True)
housingButton = HousingCapButton.HousingCapButton(pin=15)
buttons = (leftButton,middleButton,rightButton)
leds = (leftButtonLED,middleButtonLED,rightButtonLED)
#Init Sensors
try:
sensorBme = Bme280.BME280(i2c=i2cBus)
except Exception as e:
print(e)
def reset():
machine.reset()