File preview
Teaching Cyber‐Physical Systems in Layers
Patrick Schaumont Center for Embedded Systems for Critical Applications Virginia Tech
Microprocessor Interfacing Lab
App Logic
?
Lessons Learned: Labs need a careful definition of design abstraction levels, with meaningful interfaces between them Rover Lab (Bottom Up Design)
void main() { int leftspeed, rightspeed; initSaber(); delayInit(); initWheelCounters(); enableWheelCounters(); INTEnableSystemMultiVectoredInt(); leftspeed = SETLEFT; rightspeed = SETRIGHT; while (1) { saberLeft(leftspeed); saberRight(rightspeed); delayMs(100); // adjust speed 10 times per sec if (frontLeftTPR > SETLEFTTPR) // too slow leftspeed = (leftspeed < MAX) ? leftspeed+1 : leftspeed; if (frontLeftTPR < SETLEFTTPR) // too fast leftspeed = (leftspeed > 0) ? leftspeed-1 : leftspeed; if (frontRightTPR > SETRIGHTTPR) // too slow rightspeed = (rightspeed < MAX)? rightspeed+1 : rightspeed; if (frontRightTPR < SETRIGHTTPR) // too fast rightspeed = (rightspeed > 0) ? rightspeed-1 : rightspeed; } }
Interested in collaborating on a syllabus? Contact me! Patrick Schaumont, +1 540 2313553, schaum@vt.edu
Patrick Schaumont Center for Embedded Systems for Critical Applications Virginia Tech
Microprocessor Interfacing Lab
App Logic
?
Lessons Learned: Labs need a careful definition of design abstraction levels, with meaningful interfaces between them Rover Lab (Bottom Up Design)
void main() { int leftspeed, rightspeed; initSaber(); delayInit(); initWheelCounters(); enableWheelCounters(); INTEnableSystemMultiVectoredInt(); leftspeed = SETLEFT; rightspeed = SETRIGHT; while (1) { saberLeft(leftspeed); saberRight(rightspeed); delayMs(100); // adjust speed 10 times per sec if (frontLeftTPR > SETLEFTTPR) // too slow leftspeed = (leftspeed < MAX) ? leftspeed+1 : leftspeed; if (frontLeftTPR < SETLEFTTPR) // too fast leftspeed = (leftspeed > 0) ? leftspeed-1 : leftspeed; if (frontRightTPR > SETRIGHTTPR) // too slow rightspeed = (rightspeed < MAX)? rightspeed+1 : rightspeed; if (frontRightTPR < SETRIGHTTPR) // too fast rightspeed = (rightspeed > 0) ? rightspeed-1 : rightspeed; } }
Interested in collaborating on a syllabus? Contact me! Patrick Schaumont, +1 540 2313553, schaum@vt.edu