AI Minutes of meetings on class design issues
Task 1:
A function key and a status LED should be connected to the controller.
The key should be connected to pin A0 and the LED to B0.
AI Solution 1 for STM32F042:
NEW FunctionKey BASED_ON PecPinInput BIND pinA0 TO FunctionKey BIND pinPullUp TO FunctionKey NEW StatusLED BASED_ON PecPinOutput BIND pinB0 TO StatusLED AGGREGATION FunctionKey IN Controller AGGREGATION StatusLED IN Controller
AI Solution 1 for MM32L072:
NEW FunctionKey BASED_ON PecPinInput BIND pinA0 TO FunctionKey BIND pinPullUp TO FunctionKey NEW StatusLED BASED_ON PecPinOutput BIND pinB0 TO StatusLED AGGREGATION FunctionKey IN Controller AGGREGATION StatusLED IN Controller
Task 2:
I still need a light sensor and a terminal. The light sensor is connected to ADC1 Channel 6 and the terminal is Uart on UART1 A9.
AI Solution 2 for STM32F042:
NEW LightSensor BASED_ON PecAdcChannel. BIND adc1ch06_stm32 TO LightSensor. NEW Terminal BASED_ON PecUart. BIND uart1portA9_stm32f0 TO Terminal. AGGREGATION LightSensor IN Controller. AGGREGATION Terminal IN Controller.
AI Solution 2 for MM32L073::
NEW LightSensor BASED_ON PecAdcChannel. BIND adc1ch06_mm32 TO LightSensor. NEW Terminal BASED_ON PecUart. BIND uart1portA9_MM32L0 TO Terminal. AGGREGATION LightSensor IN Controller. AGGREGATION Terminal IN Controller.
Task 3:
A hot water pump and a cold water pump should be connected. The hot water pump should be connected to pin B0 and the other to B1. And then a level sensor should be connected to ADC1 channel 7 and a control center to Uart1 A9. An 8-bit sensor value should be used.
AI Solution 3 for STM32F042:
NEW WarmWaterPump BASED_ON PecPinOutput BIND pinB0 TO WarmWaterPump NEW ColdWaterPump BASED_ON PecPinOutput BIND pinB1 TO ColdWaterPump NEW FillLevelSensor BASED_ON PecAdcChannel BIND adc1ch07_stm32 TO FillLevelSensor BIND adcResolution8bit TO FillLevelSensor NEW ControlCenter BASED_ON PecUart BIND uart1portA9_stm32f0 TO ControlCenter AGGREGATION WarmWaterPump IN Controller AGGREGATION ColdWaterPump IN Controller AGGREGATION FillLevelSensor IN Controller. AGGREGATION ControlCenter IN Controller.
AI Solution 3 for MM32L073:
NEW WarmWaterPump BASED_ON PecPinOutput BIND pinB0 TO WarmWaterPump NEW ColdWaterPump BASED_ON PecPinOutput BIND pinB1 TO ColdWaterPump NEW FillLevelSensor BASED_ON PecAdcChannel BIND adc1ch07_mm32 TO FillLevelSensor BIND adcResolution8bit TO FillLevelSensor NEW ControlCenter BASED_ON PecUart BIND uart1portA9_MM32L0 TO ControlCenter AGGREGATION WarmWaterPump IN Controller AGGREGATION ColdWaterPump IN Controller AGGREGATION FillLevelSensor IN Controller. AGGREGATION ControlCenter IN Controller.
Task 4:
I need a trigger, preferably with Timer16, that reads the fill level and transmits it to a PC terminal.
The requirements for the solution are:
The timer interrupt should be triggered every 50 milliseconds
The data transfer should take place at 19200 baud
The values transferred should be pure binary data
Please use Uart 1 on A9.
AI Solution 4 for STM32F042:
NEW FillLevelSensor BASED_ON PecAdcChannel.
BIND adc1ch07_stm32 TO FillLevelSensor.
BIND adcResolution8bit TO FillLevelSensor.
NEW Pump BASED_ON PecPinOutput.
BIND pinB1 TO Pump.
NEW Terminal BASED_ON PecUart.
BIND uart1portA9_stm32f0 TO Terminal.
BIND baudrate19200 TO Terminal.
NEW Trigger BASED_ON PecTimer.
BIND timer16Stm32 TO Trigger.
AGGREGATION FillLevelSensor IN Controller.
AGGREGATION Pump IN Controller.
AGGREGATION Terminal IN Controller.
AGGREGATION Trigger IN Controller.
ATTRIBUTE fillLevel TYPE uint8_t IN Controller.
AI Solution 4 for MM32L073:
NEW FillLevelSensor BASED_ON PecAdcChannel.
BIND adc1ch07_mm32 TO FillLevelSensor.
BIND adcResolution8bit TO FillLevelSensor.
NEW Pump BASED_ON PecPinOutput.
BIND pinB1 TO Pump.
NEW Terminal BASED_ON PecUart.
BIND uart1portA9_MM32L0 TO Terminal.
BIND baudrate19200 TO Terminal.
NEW Trigger BASED_ON PecTimer.
BIND timer16MM32 TO Trigger.
AGGREGATION FillLevelSensor IN Controller.
AGGREGATION Pump IN Controller.
AGGREGATION Terminal IN Controller.
AGGREGATION Trigger IN Controller.
ATTRIBUTE fillLevel TYPE uint8_t IN Controller.
Task 5:
I need a suggestion in the familiar style for my class model for a display LED and a function key based on PecLED and PecButtonClickAndHold. The LED should flash briefly when the key is clicked. Flash slowly when the key is held down and go out when it is released. The LED should be connected to pin B4 and the key to D2. For now, I just need the suggestion for the class model.
AI Solution 5:
NEW IndicatorLED BASED_ON PecLED BIND pinB4 TO IndicatorLED NEW FunctionKey BASED_ON PecButtonClickAndHold BIND pinD2 TO FunctionKey AGGREGATION IndicatorLED IN Controller AGGREGATION FunctionKey IN Controller OPERATION onClick IN FunctionKey OPERATION onHoldStart IN FunctionKey
Task 6:
I want to use the SysTick to make three LEDs (red, yellow, green) flash at different speeds (10 ms, 100 ms, 1s). The LEDs are connected to B0, B1 and B3. I also want a speaker on pin B4.
AI Solution 6:
NEW Klasse RedLED BASED_ON PecPinOutput NEW Klasse YellowLED BASED_ON PecPinOutput NEW Klasse GreenLED BASED_ON PecPinOutput NEW Klasse Speaker BASED_ON PecPinOutput AGGREGATION RedLED IN Controller AGGREGATION YellowLED IN Controller AGGREGATION GreenLED IN Controller AGGREGATION Speaker IN Controller BIND pinB0 TO RedLED BIND pinB1 TO YellowLED BIND pinB3 TO GreenLED BIND pinB4 TO Speaker ATTRIBUTE tickCounter TYPE uint32_t IN Controller
Task 7:
A microcontroller application is to be developed in which an LED gently fades in and out for the human eye. The dimming LED should be connected to pin B5. The duty value can be 0 to 1000. According to the data sheet, B0 is Timer 3 Channel 2.
AI Solution 7 for STM32F042:
NEW DimmingLED BASED_ON PecPwmChannel
AGGREGATION DimmingLED IN Controller
BIND pinB5 TO DimmingLED
BIND pwmChannel2 TO DimmingLED
BIND Timer3Stm32 TO DimmingLED
ATTRIBUTE dutyValue TYPE uint16_t IN Controller
AI Solution 7 for MM32L073:
NEW DimmingLED BASED_ON PecPwmChannel AGGREGATION DimmingLED IN Controller BIND pinB5_Tim3_Ch2 TO DimmingLED ATTRIBUTE dutyValue TYPE uint16_t IN Controller
Task 8:
A microcontroller application is to be developed in which an external signal, falling edge, serves as a trigger for an activity of the controller. The controller's reaction to the external event is to be realized by switching an LED.
The solution should meet the following requirements: External signal, falling edge, through button on A0 LED display on pin B0 No constant polling of the button Handling of the event directly in the interrupt
AI Solution 8:
NEW ExternalButton BASED_ON PecPinInterrupt NEW LEDIndicator BASED_ON PecPinOutput AGGREGATION ExternalButton IN Controller AGGREGATION LEDIndicator IN Controller BIND pinA0 TO ExternalButton BIND pinB0 TO LEDIndicator ATTRIBUTE ledState TYPE bool IN Controller
Task 9:
Develop a microcontroller application in which an I²C temperature sensor is read and the current temperature is sent to the PC via UART.
Requirements for the solution: Temperature sensor LM75, address configuration 0x90 I2C bus to F0 / F1 Uart 1 to A9 / A10 Data transfer 8 bit, 19200 baud Temperature values in full degrees Celsius
AI Solution 9 for STM32F042:
NEW TemperatureSensor BASED_ON PecLM75 AGGREGATION TemperatureSensor IN Controller NEW I2CBus BASED_ON PecI2cBus AGGREGATION I2CBus IN Controller BIND i2c1_F0/F1_stm32F042 TO I2CBus NEW Uart BASED_ON: PecUart AGGREGATION Uart IN Controller BIND uart1portA9_stm32f0 TO Uart BIND baudrate19200 TO Uart ATTRIBUTE: temperatureValue TYPE int8_t IN Controller
AI Solution 9 for MM32L0144:
NEW TemperatureSensor BASED_ON PecLM75 AGGREGATION TemperatureSensor IN Controller NEW I2CBus BASED_ON PecI2cBus AGGREGATION I2CBus IN Controller BIND i2c1_D0_D1_MM32F0144 TO I2CBus NEW Uart BASED_ON: PecUart AGGREGATION Uart IN Controller BIND uart1portA9_MM32F0 TO Uart BIND baudrate19200 TO Uart ATTRIBUTE: temperatureValue TYPE int8_t IN Controller
Task 10:
A steam valve and a gate valve should be connected.
The valve should be connected to pin B4 and the gate to B6.
And then I need a pressure sensor on ADC1 channel 3 and a PC terminal via Uart1 A9.
A 10-bit sensor value is required. The terminal runs at 19200 BAUD. The data transfer should take place every 100 ms.
AI Solution 10:
NEW SteamValve BASED_ON PecPinOutput BIND pinB4 TO SteamValve NEW GateValve BASED_ON PecPinOutput BIND pinB6 TO GateValve NEW PressureSensor BASED_ON PecAdcChannel BIND adc1ch03_stm32 TO PressureSensor BIND adcResolution10bit TO PressureSensor NEW Terminal BASED_ON PecUart BIND uart1portA9_stm32f0 TO Terminal BIND baudrate19200 TO Terminal AGGREGATION SteamValve IN Controller AGGREGATION GateValve IN Controller AGGREGATION PressureSensor IN Controller AGGREGATION Terminal IN Controller ATTRIBUTE pressureValue TYPE int16_t IN Controller OVERWRITE onEvent100ms IN Controller FROM PecAppModul
Task 11:
I want to program a robot arm. The robot arm is connected to my controller. The arm consists of a carousel, a lower leg, an upper arm, a hand and also a barrier. The carousel, lower leg, upper arm, hand and barrier are implemented with servo motors. The servos are pwm driven. To monitor the robot arm, data should be sent to a PC app. The UART sends the data to the PC at 19200 baud. There is also a start button on the controller. When clicked, the pre-programmed movement sequence is started. If you hold the button for a long time, the process is aborted. The carousel is to B0, LowerLeg to B1, UpperArm to B3, Hand to B4, Barrier to B5 and StartButton to A0, the UART is also uart 2 on A14
AI Solution 11 for STM32F042:
NEW Robot BASED_ON PecAppModul NEW Carousel BASED_ON PecServoTypeB NEW LowerLeg BASED_ON PecServoTypeB NEW UpperArm BASED_ON PecServoTypeB NEW Hand BASED_ON PecServoTypeB NEW Barrier BASED_ON PecServoTypeB NEW StartButton BASED_ON PecButtonClickAndHold NEW Terminal BASED_ON PecUart BIND pwmB00Tim3Ch3_stm32f0 TO Carousel BIND pwmB01Tim3Ch4_stm32f0 TO LowerLeg BIND pwmB03Tim2Ch2_stm32f0 TO UpperArm BIND pwmB04Tim3Ch1_stm32f0 TO Hand BIND pwmB05Tim3Ch2_stm32f0 TO Barrier BIND pinA0 TO StartButton BIND uart2portA14_stm32f0 TO Terminal BIND baudrate19200 TO Terminal AGGREGATION Robot IN Controller AGGREGATION Carousel IN Robot AGGREGATION LowerLeg IN Robot AGGREGATION UpperArm IN Robot AGGREGATION Hand IN Robot AGGREGATION Barrier IN Robot AGGREGATION StartButton IN Controller AGGREGATION Terminal IN Controller ATTRIBUTE isProcessRunning TYPE bool IN Robot OVERWRITE onClick IN StartButton FROM PecButtonClickAndHold OVERWRITE onHoldStart IN StartButton FROM PecButtonClickAndHold
AI Solution 11 for MM32L073:
NEW Robot BASED_ON PecAppModul NEW Carousel BASED_ON PecServoTypeB NEW LowerLeg BASED_ON PecServoTypeB NEW UpperArm BASED_ON PecServoTypeB NEW Hand BASED_ON PecServoTypeB NEW Barrier BASED_ON PecServoTypeB NEW StartButton BASED_ON PecButtonClickAndHold NEW Terminal BASED_ON PecUart BIND pinB0_Tim3_Ch3 TO Carousel BIND pinB1_Tim3_Ch4 TO LowerLeg BIND pinB3_Tim2_Ch2 TO UpperArm BIND pinB4_Tim3_Ch1 TO Hand BIND pinB5_Tim3_Ch2 TO Barrier BIND pinA0 TO StartButton BIND uart2portA14_MM32L0 TO Terminal BIND baudrate19200 TO Terminal AGGREGATION Robot IN Controller AGGREGATION Carousel IN Robot AGGREGATION LowerLeg IN Robot AGGREGATION UpperArm IN Robot AGGREGATION Hand IN Robot AGGREGATION Barrier IN Robot AGGREGATION StartButton IN Controller AGGREGATION Terminal IN Controller ATTRIBUTE isProcessRunning TYPE bool IN Robot OVERWRITE onClick IN StartButton FROM PecButtonClickAndHold OVERWRITE onHoldStart IN StartButton FROM PecButtonClickAndHold
Task 12:
AI Solution 12:
Task 13:
AI Solution 13:
Task 1x:
AI Solution x: