76 lines
1.9 KiB
Python
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()
|