In OPS 2, you'll spend about 10 weeks working on a project with a group of 2-4 students. The project can be anything (ECE-related) that you and your group can think of, so long as it's feasible (i.e. not too easy or complex, doable within your budget and time constraints) and you can have a working prototype built by the end of the program.
Once you've chosen a project, you'll work together with your team to put together an initial project plan / proposal document (you'll submit one document as a group, and we provide a template to get you started). The OPS Leads will then review your ideas, and if we think it's feasible, we'll give you the green light. If we think it needs improvements or modification, we'll meet with you to discuss further.
And remember, these projects are completely your own. Just because we approve of a project for your group doesn't necessarily mean that we know the best way to approach the project, or even that it's within our own area of expertise. Our role is to be an advisor to your team, help you set goals and evaluate your progress, and to teach you some (but not all) of the skills you'll need to complete the project. Your job is to make stuff happen.
And, obviously, your whole team must agree on the same project. So make sure you choose a project that has aspects each member of your team can collaborate on.
Below are several project ideas to get you thinking. You can pick one of these directly, riff on it, or suggest your own idea entirely. If your proposal sounds good to us, the project is yours!
Keep in mind: You're starting from scratch; these don't come as ready-made kits, and there are no instructions provided. Some of the features suggested for these projects may be beyond your skillset / comfort level; try not to bite off more than you can chew, and you don't have to implement everything!
These must be approved in advance. If you would like to suggest your own project, speak to us about it in the first week of class!
Deadline for submissions is by the first week of OPS 2, to allow time for the OPS Leads to review your idea and give you feedback before initial project plans are due.
There's a lot of room for customization with this one; don't feel like you need to implement all the features below, but do consider what you'd expect to be the "core" feature-set for your device. And keep in mind, this project will be more software-heavy than others.
Creative display choice
Perhaps use an epaper display? These get expensive very quickly!
OLED display? Larger modules are also expensive, and be wary of burn-in. But they do look pretty...
LCD? Dot matrix? Something else?
Automatic time synchronization
Automatically set time at startup and re-sync periodically via: GPS module / web time server / radio broadcast source?
Fall back to internal battery-powered RTC (real time clock) on microcontroller or specialized time-keeping chip?
Current weather and/or forecast display
Fetch and display real-time weather via: web request and/or live data from wireless outdoor sensor
Fetch and display weather forecasts via: web request and/or built-in prediction algorithm?
Keep in mind, most online weather APIs aren't free; make sure you choose one that is
Display / automate operation with various sensor information
Room air quality? Indoor temp and humidity?
Presence detection? Door sensors?
Connect to sensors in other rooms?
Calendar / weekly / daily schedule
Integrate with Google Calendar / iCal via web requests, Google Scripts, or some other secure API
Be careful with this one! You don't want faulty code putting your account security at risk! Never store passwords in plain text!
Editable message board / To-Do Lists
Connect via app / web interface to add and remove items
This might be handy if you have roommates!
Home Assistant integration?
Notification display
Connect to a phone app via Bluetooth / WiFi and sync notifications?
Flashing LED lights + on-screen text for new notifications?
Focus on low-power, efficient and robust design (for long-term outdoor installation)
Ideally, should be self-powered
Easiest approach: Battery powered w/ solar recharging (but make sure you pick a battery that can handle extreme temperatures!)
If using a solar panel, prepare for snow! Either angle it so snow slides off, or consider integrating a heating element to melt snow off the panel (could be an interesting design challenge)
You may also wish to implement an alternative charging source, such as a covered USB port, for re-charging the weather station indoors if it's just being set up or has been in storage for a while
Various sensors
Temperature, humidity, and pressure (make sure it's precise, and calibrated in some way!)
Air quality (Pollen count? Smog levels?)
Wind speed and direction?
Precipitation (rainfall)?
Visibility (e.g. optical ranging to detect fog / smoke / haze)?
Cloud cover?
Wireless connectivity
Option 1: On-board WiFi with a web interface for viewing the weather (lower range; basically just outside your window, on a roof, or a porch)
Option 2: On-board RF transceiver (LoRa, 433MHz, etc.) for communicating with an indoor base station (potentially much further range; out in a field somewhere, multiple floors up or below the base station, etc.). The base station could display weather data directly (on a screen), or connect to WiFi to provide a web interface.
Option 3: On-board cellular connection to a remote web server (Note: this will require a sim card module with a data plan, which will require a cellular subscription). It sounds cool, but we don't recommend it for this project; it'll be much more complicated than you may expect.
We add these restrictions to help guide you toward a project that's suitable for OPS2 (both in difficulty and creativity).
Outdoor land vehicle – Must be rough-terrain capable (or at least able to drive around in not-recently-cut grass, over medium-sized rocks, and through shallow puddles).
Indoor floor racer – Must be very fast and responsive to rapid control inputs.
You can optimize your traction and drivetrain for only one floor type if you wish (we recommend tile, so you can test it on the floors of EB2).
Boat / submersible – Must be something you can safely (and legally!) operate in Lake Raleigh or some other nearby body of water.
Whenever you're operating it in a large body of water, one person on site must be able to swim and wearing swimming attire, and you must have a recovery line securely attached to the vehicle so it can be reeled back to shore in the event of failures or sinking.
NO aerial vehicles allowed (fixed-wing or drones) – There are too many safety and liability concerns associated with allowing our students to build aerial vehicles on or near campus. However, if flying stuff interests you, consider joining the Aerial Robotics Club (search for them on Get Involved).
You may not use an ECE 306 car for this project (but if you have one and want to cannibalize it for parts... We won't stop you)
Must have at least one FPV (first person view) camera
Phone / web control interface
You could opt for a dedicated remote controller, but be weary of your budget!
Telemetry sensors (e.g., battery voltage, speed / orientation, environment detection, compass)
Effectors (i.e. robot arm) / deployable payload / other specialized functionality?
Multiple power modes for efficient long-term operation
For example, a low-power standby mode for long-term parking with remote power-on
Or perhaps a security standby mode, where the user is alerted if on-board sensors are tripped or motion is detected by the camera
Monitor plant health
Soil moisture, Ph, etc. sensors
Determine when watering is needed
Optionally, also predict when fertilizer or soil rejuvenation is needed
Optionally, monitor plant health in some way (this may be harder than you think)
Control interface
Configurable water thresholds, schedules, etc.
Accessible via on-device display menu or web / app interface
Central water tank
Level sensor, control valve(s), drip line(s) for automated watering
Place tank above plants with valve on bottom to gravity-feed water? Straightforward.
Place tank below plants with small pump? Prettier (you could hide the tank under a table), but beware of your pump's maximum head pressure!
Support for multiple plants?
Synchronize multiple in-pot sensors with a central control hub?
Wired sensors or low-power battery-operated wireless?
Water splitter valve block with tubes to each plant for selective watering?
Home Assistant or some other IoT integration?
Generate remote alerts when water tank is low or plants are exhibiting abnormal behavior?
This can't just be a billboard display. It needs to be visually interesting as well, so try to think of other features you could incorporate!
Large format display
LED matrix? Odd form-factor screen? Something else?
Must be able to set custom message(s) or graphics via app / web interface and/or on-device display & menu
Display time and date as well?
Sync time at startup and re-sync periodically via: GPS module / web time server / radio broadcast source?
Fall back to internal battery-powered RTC (real time clock) on microcontroller or specialized time-keeping chip?
Change messages on a schedule, in reaction to the environment, or other trigger sources
Incorporate other animated / environmentally reactive features
Moving parts, lighting, creative mechanisms?
Live plants? Built in water feature?
A white noise box, but smarter.
Can generate various noises (e.g. white noise) or ambience (rainfall, nature sounds, chimes, etc.)
Configurable, schedulable via app / web interface or on-board menu screen
Auto-off / sleep timer
Broadcast connectivity for connecting to Bluetooth speakers?
3.5mm connectivity for connecting to wired sound systems?
Direct speaker connectivity (integrated amp and built-in speaker or speaker wire jacks)?
SD card slot for offline mp3 playback?
Internet radio support (Spotify, YT Music, others)?
Be careful with this one! You don't want faulty code putting your account security at risk! Never store passwords in plain text!
This cannot be a basic LED strip or RGB bulb under a lampshade; you must come up with an original design that is intentional, complex, and creative. Your lamp must also be reactive to its environment or the world around us in some way.
You will have to use 3D CAD / modeling paired with some form of digital manufacturing (e.g., 3D printing, laser cutting, machining). If no one on your team is comfortable with this already (i.e., has past experience), you may want to look for another project.
Many / complex lighting features
Moving parts or animated lighting
Reacts to the environment via sensors
Presence detection?
Environmental stimulus (amount / color of ambient light, temperature, humidity, air quality, etc.)?
Reacts to the world via web integrations or a pre-configured schedule
Change appearance based on the weather?
Do something special on holidays?
Turn red and white when NC State wins a game?
Scan for keywords in daily news headlines (this might be tricky, but rewarding)?
Go dark in solidarity whenever ECE 109 test 2 grades are released?
Configurable via on-board interface / IoT integration / web or app control
If you choose this project, keep in mind that you will not be allowed to build anything overly simple (such as a basic macro / programmable keypad). You must incorporate multiple input types (buttons, levers / switches, triggers, thumbsticks, knobs / sliders, capacitive touch, rotaries, etc.) and map them to the correct HID input source in software.
You'll need to do some deeper research for this project, specifically relating to how to implement the USB HID (Human Input Device) standard on your microcontroller of choice so that it appears as your gamepad when plugged into a PC (or when connected via Bluetooth, if you choose). Note that some microcontrollers can't do this, so research carefully before choosing your MCU!
Some ideas:
You could build some kind of custom or specialized USB gamepad (e.g., an arcade controller for a console emulator, flight simulator controls designed to mirror a certain aircraft's cockpit, a low-latency VR controller, etc.).
Or you could build a large macro keypad with an intended professional use-case (e.g., streaming / live production controls, audio/video editing controls, a MIDI instrument).
Or, perhaps you could create low-cost 3D mouse for CAD and modeling (you'll have to research what input interface your 3D software of choice uses).
Support for on-board configurability (key profiles, lighting modes, sensitivity settings, etc.)
Could be wireless (Bluetooth / BLE), wired (USB), or both (dual mode)
If wireless, be sure to implement automatic sleep modes and low-power modes!
Want to build an educational project kit and create learning materials to go with it? This project is right for you!
In most semesters, at the end of OPS 1, we offer an additional bonus project that the students may build. The bonus project usually comes with some additional fun parts for the students to use. And, unlike the usual OPS 1 project, we provide the full circuit design and code for each bonus project, so students can build and play with it during the final OPS 1 meeting as a prize for completing the program.
General constraints:
Budget – This will be your primary constraint. Typically, we'd like to keep the total cost of each kit in the sub-$10 range. However, you can incorporate all of the materials already in the OPS 1 kit for this project. If you can really justify a bigger price tag, we may be able to make it happen, but our goal is to keep OPS 1 as financially sustainable as possible; it's currently a very large part of IEEE Student Chapter's expenditures.
Microcontroller – OPS 1 uses the Arduino Nano, so your program must be able to run on one. You must also package the program as an Arduino IDE Sketch so our students can download and view it in the IDE before uploading it to their Arduino.
Timing – If you'd like to see your project be given to OPS 1 students this semester, you'll need to have it done (or at least at a point where we can order parts for the kits) a couple weeks earlier than the rest of the OPS 2 projects. Speak to us about these timing constraints and we'll show you the OPS 1 schedule.
The OPS Clock – This used a string of 12 Neopixels (WS2812B addressable LED strips) wrapped around a foam board clock face to create a nice RGB clock lamp (each neopixel changes color to represent the hour and minute hands). The clock also used an RTC module to keep time when power is lost, and featured a 3D-printable case that would clip on top of their breadboard and hold the clock face in place.