When you think of analog computing, it’s possible you don’t typically think of FPGAs. Sure, a few FPGAs will have specialized analog blocks, but usually they are digital devices. [Bruce Land] — a name well-known to Hackaday — has a post about building a digital differential analyzer using an FPGA and it is essentially an analog computer simulated on the digital fabric of an FPGA.
Whereas traditional analog computers use operational amplifiers to do mathematical integration, on the FPGA [Land] uses digital summers The devices simulate a system of differential equations, which can be nonlinear.
Continue reading “FPGA Makes Digital Analog Computer”
Sign language can like any language be difficult to learn if you’re not immersed in it, or at least learning from someone who is fluent. It’s not easy to know when you’re making minor mistakes or missing nuances. It’s a medium with its own unique issues when learning, so if you want to learn and don’t have access to someone who knows the language you might want to reach for the next best thing: a machine that can teach you.
This project comes from three of [Bruce Land]’s senior electrical and computer engineering students, [Alicia], [Raul], and [Kerry], as part of their final design class at Cornell University. Someone who wishes to learn the sign language alphabet slips on a glove outfitted with position sensors for each finger. A computer inside the device shows each letter’s proper sign on a screen, and then checks the sensors from the glove to ensure that the hand is in the proper position. Two letters include making a gesture as well, and the device is able to track this by use of a gyroscope and compass to ensure that the letter has been properly signed. It appears to only cover the alphabet and not a wider vocabulary, but as a proof of concept it is very effective.
The students show that it is entirely possible to learn the alphabet reliably using the machine as a teaching tool. This type of technology could be useful for other applications as well, such as gesture recognition for a human interface device. If you want to see more of these interesting and well-referenced senior design builds we’ve featured quite a few, from polygraph machines to a sonar system for a bicycle.
Continue reading “This Machine Teaches Sign Language”
Picking up new skills in the electronics field is often best served by the classic mantra – “learn by doing”. [Juan] and [Leo] did just that, deciding to build a handheld game console for a University project, and delivering the PGC-32.
Built as a final project for the Digital Systems Design course at Cornell University, the PGC-32 takes on a daunting chunk of functionality, and pulls it off in time to get the grades. The team coded a basic block-based game for the hardware, and control is switchable between the analog stick and a built-in accelerometer. Gameplay is displayed on a 320 x 280 color TFT display. Learning to code a basic game is useful, as it teaches student engineers to consider important concepts like timing, race conditions, interrupts, and display routines.
As a university project, it is well documented and the team step through each detail in their code with explanations as to how and why things are done. The internals are particularly neat, too, with a tidy PCB layout and 3D printed case holding everything together.
We’ve seen plenty of work from Cornell’s courses before, too – like this sleep quality monitor. Video after the break.
Continue reading “PIC-Powered Game Console Is Blocky Goodness”
It’s that special time of year—time for the parade of student projects from [Bruce Land]’s embedded microcontroller design course at Cornell. [Timothy], [Dhruv], and [Shaurya] are all into remote sensing and control applications, so they built a smart station that combines audiovisual entertainment with environmental sensing.
As with the other projects in this course, the smart station is built on a PIC32 dev board. It does Bluetooth audio playback via RN-52 module and has a beat-matching light show in the form of a NeoPixel ring mounted atop the 3D-printed enclosure. But those blinkenlights aren’t just there to party. They also provide visual feedback about the environment, which comes from user-adjustable high and low trigger values for the mic, an accelerometer, a temperature and humidity sensor, and a luminosity sensor.
The group wanted to add an ultrasonic wake-up feature, but it refused to work with the 3.3V from the PIC. The NeoPixel ring wanted 5V too, but isn’t as picky. It looks to be plenty bright at 3.3V. Another challenge came from combining I²C, UART, analog inputs, and digital outputs. They had to go to the chip’s errata to verify it, but it’s there: whenever I²C1 is enabled, the first two analog pins are compromised, and there’s no official solution. The team got around it by using a single analog pin and a multiplexer. You can check out those blinkenlights after the break.
Maybe you prefer working in wood. If so, you might like this hexagonal take on audio-visualization.
Continue reading “Smart Station Runs Entertainment, Is Entertainment”
[Bruce Land] is one of those rare individuals who has his own Hackaday tag. He and his students at Cornell have produced many projects over the years that have appeared on these pages, lately with FPGA-related projects. If you only know [Land] from projects, you are missing out. He posts lectures from many of his classes and recently added a series of new lectures about developing with a DE1 System on Chip (SoC) using an Altera Cyclone FPGA using Verilog. You can catch the ten lectures on YouTube.
The class material is different for 2017, so the content is fresh and relevant. The DE1-SOC has a dual ARM processor and boots Linux from an SD card. There are several labs and quite a bit of background material. The first lab involves driving a VGA monitor. Another is a hardware solver for ordinary differential equations.
Continue reading “An Education on SoC using Verilog”
The Internet is full of low-speed logic analyzer designs that use a CPU. There are also quite a few FPGA-based designs. Both have advantages and disadvantages. FPGAs are fast and can handle lots of data at once. But CPUs often have more memory and it is simpler to perform I/O back to, say, a host computer. [Mohammad] sidestepped the choice. He built a logic analyzer that resides partly on an FPGA and partly on an ARM processor.
In fact, his rationale was to replace built-in FPGA logic analyzers like Chipscope and SignalTap. These are made to coexist with your FPGA design, but [Mohammad] found they had limitations. They also eat up die space you might want for your own design, so by necessity, they probably don’t have much memory.
The system can capture and display 32-bit signals on a 640×480 VGA monitor in real-time. The system also has a USB mouse interface which is used to zoom and scroll the display. You can see a video of the thing in operation, below.
Continue reading “Logic Analyzer on Chips”
Every semester at one of [Bruce Land]’s electronics labs at Cornell, students team up, and pitch a few ideas on what they’d like to build for the final project. Invariably, the students will pick what they think is cool. The only thing we know about [Ian], [Joval] and [Balazs] is that one of them is a synth head. How do we know this? They built a programmable, sequenced, wavetable synthesizer for their final project in ECE4760.
First things first — what’s a wavetable synthesizer? It’s not adding, subtracting, and modulating sine, triangle, and square waves. That, we assume, is the domain of the analog senior lab. A wavetable synth isn’t a deep application of a weird reverse FFT — that’s FM synthesis. Wavetable synthesis is simply playing a single waveform — one arbitrary wave — at different speeds. It was popular in the 80s and 90s, so it makes for a great application of modern microcontrollers.
The difficult part of the build was, of course, getting waveforms out of a microcontroller, mixing them, and modulating them. This is a lab course, so a few of the techniques learned earlier in the semester when playing with DTMF tones came in very useful. The microcontroller used in the project is a PIC32, and does all the arithmetic in 32-bit fixed point. Even though the final audio output is at 12-bit resolution, the difference between doing the math at 16-bit and 32-bit was obvious.
A synthesizer isn’t useful unless it has a user interface of some kind, and for this the guys turned to a small TFT display, a few pots, and a couple of buttons. This is a complete GUI to set all the parameters, waveforms, tempo, and notes played by the sequencer. From the video of the project (below), this thing sounds pretty good for a machine that generates bleeps and bloops.
Continue reading “Building A Wavetable Synth”