The final project in the fall 2014 ECE362 "Microprocessor Systems and Interfaces" course at Indiana University-Purdue University Indianapolis had a couple of choices. My partner, Nathan Wheeler, and I got the "home automation" project. The project was written all in assembly, in the CodeWarrior IDE, for the Motorola HC12. We wound up writing 16K of code, but we met all the requirements and surpassed them.
- Keypad for much user input, each key with a different sound
- LCD display of menu options and various messages
- Switches to control LEDs and climate control
- Potentiometer to select menu options within a room
- Push button for doorbell routine with tune
- IRQ routine to simulate tripping of alarm with sound and LED pattern
- Password options
- Stepper motor turns clockwise for AC, opposite for heat, and slows down as it approaches desired temp
- DC motor is system fan, gradually speeds up and slows down when changing between speeds
It was a hard slog but we enjoyed doing it!
Yesterday, after much gnashing of teeth, I finally figured out how to make our evaluation board's DC motor speed up and down gradually when changing between high and low speeds. The number of hours I put into that is embarrassing, but it is now accomplished.
That follows on the heels of a solid eight hours sunk into getting the board's stepper motor to turn clockwise or counterclockwise (or not at all) in gradually changing speeds depending on switch configuration and the direction of temperatures (current and desired) in a given room; for example, if a room's desired temperature is below the current one but the switches for heating are thrown, the motor should be in neutral, not spinning to alter the temperature in the wrong direction.
Today was our second exam, which was split into two parts: test and lab. It was heavy on Boolean logic, with reduction, Karnaugh maps, and symbolic designs. Plenty of questions about the rules of Boolean logic and using NOR and NAND to make other gates.
We also received paperwork about our projects, which constitute 13% of our grade. I need to think about what I want and can do with my circuitry knowledge. I like the ASCII to 7-bit display, but a timer would be neat, too.