|
Electronics
This section is dedicated to the embedded systems and personal electronic projects developed by myself and
couple of friends.
To implement this set of projects we had to work with several development boards such as FPGAs, Raspberry Pi,
Arduino microcontrollers, PICs, among others. we also had to work with hardware communication protocols
mostly SPI and I2C.
I hope you enjoy the results.
Leave us a comment.
Accelerated video processing algorithms on FPGAs:
This project implemented a fast real-time video processing algorithm using a Xilinx Spartan3 FPGA device
and where hardware acceleration was employed (using MicroBlaze softcore processor).
The video feed supplied to the FPGA was obtained through a CMOS digital camera with 1.3 Megapixels.
Its output was fed to a simple Digital to Analog Converter (DAC) and then displayed in a VGA computer monitor.
The MB peripheral that connected to the external devices were developed in VHDL specifically for this application.
The video capture and display peripheral connections were made through the board general purpose I/O pins (GPIO).
The system design was accomplished by employing the Xilinx Integrated Software Environment (ISE) and Embedded Development
Kit (EDK) tools.
[more]
Designed by João Justo Pereira and Eduard Kulchinsky.
A digital scanner based on an optical mouse sensor:
The goal of this project was to develop an electronic system based on a microprocessor belonging to the class
of specialized programmable processors from Microchip (PIC18F4550), or simply, to use an optical mouse sensors
(CCD camera + motion detection) to implement a digital scanner.
A demonstration board (PICDEM FS USB) from Microchip Technology was used in order to work with the
Programmable Interface Controller (PIC). The board had an USB connector, temperature sensor, several
switches and LEDs connected to the PIC ports. The PIC itself had a processor, memory, I/O interfaces
(including USB interface), an analogue to digital conversion module, among many others.
The optical mouse
sensor (ADNS-5020) had very low resolution (15 by 15 pixels) but was able to capture surface “pictures”
at a very high rate.
The communication channel between the PIC and the optical sensor of the optical mouse was made by using
Serial Peripheral Interface (SPI) protocol to send the desired data. As it had only one data line (SDIO)
the communication was half-duplex. The acquired information was then sent through an USB connection to a
computer, where it was processed and visualized as the live feed from the sensor.
[more]
Designed by João Justo Pereira and Eduard Kulchinsky.
A fast floating-point sorting algorithm:
This project was very interesting and above all very challenging. As a final project for the Digital Systems
Design course it was demanded of my group that we implemented a fast floating-point sorting algorithm.
The project should be designed to run in the Spartan-3E 100 Basys2 FPGA, which in terms of processing power
is not a big of a blast, and that it should receive/send its I/Os via USB port. It should perform the task at
hand with the least amount of time possible (not including USB transmission delays).
We decided that quick sort, bubble sort, insertion sort were just fine but we wanted more… so we designed a
mixed algorithm which was a bit of all the above algorithms. The concept is very simple and resource efficient
(see first picture of the slideshow, the board game).
In the board game below the tokens fall to the right or left by chance. What we proposed was exactly the
same thing but with arbitrage (High numbers fall every time for the left hand side while lower ones to the
right hand side).
The project was all written in VHDL (with Xilinx Integrated Software Environment (ISE))
and we managed to sort all data in less than 1 microsecond with very low
resource use: Number of Slice Flip Flops: 88 out of 1920, 4% and Number of 4 input LUTs: 408 out of 1920, 21%.
In the end we also proposed a quicker way to sort the data trading some of the resources for time for future projects.
[more]
Designed by João Justo Pereira and João Monteiro.
Collision Avoidance Robot (BEST Robot):
The must have/do for all electronics enthusiasts. It is always sweet to challenge ourselves to do something like this.
The challenge of implementing a more efficient code, to do things in different/better ways and have a faster response
hardware are always giving us the so much needed motivation to endure the work.
The robot's name is "BEST robot" due to the connector it has above the ultrasound sonar. Currently it has two modes
of navigation, a very clever one (robot pauses sometimes to reflect on life) and another very hyperactive
(occasionally bumps against things). In the future it will support navigation through bluetooth to be commanded from
smart phones and tablets. Mapping the floor is still on pending approval.
Concerning problems and issues, I am still amazed with the electronic issues it had in its early days (for such a small
robot). The bigger one was a crosstalk issue, where the sonar line signal was always jittering due to high switching
effects (PWM) to drive the wheels.
[more]
Designed by João Justo Pereira.
All-Terrain Arduino:
The new robot. For the time being it serves as shelves to store two NEECduinos (V1 and V2).
The bright side is that they are not catching dust.
I will update this project as soon as I can but for now the first pictures will have to do.
[more]
Designed by João Justo Pereira.
Audio projects:
These are all 1 Watt audio amplifiers. The idea: boost the juice to the headphones.
The Fuzz Box amplifier has a input to connect to an electric
guitar producing a neat fuzz sound.
I will update this section with details as soon as I can. I need to find the documentation about these projects.=D
[more]
Designed by João Justo Pereira.
|