SUN SENSOR! I could re-do my lackluster college senior design project with my initial idea- hook up a camera to an fpga and put it in a box. Poke a hole in the box above the camera. Measure the height from the hole to the camera sensor. Each pixel is compared to a brightness threshold. The FPGA compares all the pixels and finds the brightest ones, does some math drawing a line from the brightest pixel to the known 3D coordinates of the pinhole, then calculates the angle of the incoming light beam. An interesting idea here is treating each pixel like its own “class..” with relationships connecting it to it’s neighbors. Each pixel could compare itself to each of its neighbors(Doesn’t even need to, you just need to compare the neighbors!), find the brightest one out of those, and represent it as a direction; a 2D array of these would just be a unit vector map. Other considerations- the pinhole needs to be tiny, probably needs to go through a lens of some kind to dim the intensity (sun from orbit would wash it out and make it impossible to detect anything useful). The inside of the box would need to as matte as possible; no reflections should bounce from the walls onto the sensor. Finding the slowest possible camera speed; something that latches a frame as quickly as possible, but takes its time transmitting the stored frame so that overall frequencies can be kept low
Order of Operations (aka the road to the sun)
- Mastermind
- Design and verify RTL (1 day)
- Demo on FPGA (<1 day)
- Source HW peripherals- switches, 7 segment displays, big red button, solid state relay for the lock, battery for operation (1 day)
- Breadboard and test (2 days)
- Decide on layout for the lockbox and components {maybe buy a new lock, but pay attention to electrical specs first?} (1 day)
- Source cables, jacks, for peripherals (1 day)
- Source FPGA using design size, pin count, and development support as criteria (2 days)
- Get intimately familiar with chosen FPGA’s datasheet, dev tools, pinout, quirks. Check that RTL synthesizes for the FPGA, get it prepped to program. (1 week)
- Source supporting parts for the FPGA (caps, resist, jtag programmer, oscillator (?), other..?) (2 days)
- Choose PCB CAD software (1 day)
- Design PCB (3 days)
- Order PCB and all parts
- Get PCB and parts assembled
- Load FPGA and breadboard
- Build and test box
- $$$
- (Notice how there’s less and less information towards the end- expect this to expand upon contact with reality)
- Poker Lock!
- Design SPI master (or download open source one and modify to suit needs
- Create state machine to drive the SPI master. Implement and simulate reset and config sequences for the MFRC522 chip, read request and response, program new card,
- Get Max10 talking to the MFRC522, implement the above sequences, display the contents of an RFID tag on signal tap
- Build system for 5 RFID readers. It’s SPI, so we can share all the pins (ground, miso, mosi, clock, voltage).. just the chip select and IRQ pins are unique.
- Solder remaining boards to cat5 cable, use RJ45 jacks to breadboard (board>cable>male jack> female jack w/breadboard pins); breadboard with all 5 sensors. Check crossbleed between sensors, adjust sensitivity as needed.
- Repeat Mastermind steps 5 through 15
- SNES
- Dig in to SNES schematics, learn the system
- Compare MiSTer RTL to schematics
- Create own top-level module for SNES, using IPs from MiSTer.
- Breadboard a SNES controller to connect to the DE10-Lite board
- Get games running via VGA
- Decide on FPGA for PCB build. Rebuild SNES top for new FPGA.
- Decide on I/O layouts and programming method, ROM loading style, additional chips on board, and finalize pin count.
- Use finalized peripherals to finish RTL, decide on hardware UX support (menus, game select, save states….?) and implement, finalize gate count (If it doesn’t fit, go back to step 6)
- Repeat steps 8-13
- Program FPGA, play games
- Guitar Note Detector
- ABSTRACT- use a fourier transform to detect the Root frequency of a line in guitar signal, figure out what note that’s closest to. Will need ADC, FFT/DFT, DSP in general. Totally acceptable as a daughter board for an existing main board, can use the RJ45 peripherals if that works for the other projects
- SUN SENSOR!