Objective: To create a breadboard Arduino clone and implement the VGA interface.
Lab
Components Used in the VGA Lab:
|
Step 1: Assembling the Arduino-clone:
This board is a derivative of Boarduino, which was developed by Limor Fried ( a.k.a Lady Ada).
As an alternative, MAKE has a similar tutorial of how to make Boarduino.
There are a few minor differences from the AdaFruit's Boarduino kits
As an alternative, MAKE has a similar tutorial of how to make Boarduino.
There are a few minor differences from the AdaFruit's Boarduino kits
- We are using a six pin programming header.
- Make sure to include the reset buttons.
- We have omitted the legs of DIP that are usually on boarduino.
- Although the programmer can be used to power the system, but the connection could become flaky. Thus, use a power brick to power the board instead.
- We added a VGA connector and two RCA jacks on the board. Remember to solder them in.
Soldering Tips
Useful Links |
|
Step 2: Program the board as an Arduino unit:
|
Step 3: Implement Arduino Uno output to a VGA monito
We will follow the basic outline of Nick Gammon's How to output VGA signals to a monitor. Please go to the website and make sure you understand how the code works.
- Download the code WorkingVGAout.ino and the two libraries:screen font.h and TimerHelpers.h
- Program this onto the Arduino. Make sure the code, and both libraries are open at the same time. Use Sketch---> Add File to add the two .h files if they are not there
- Instead of using the USB programmer, use the power brick to power the board
- It might take a few seconds for the monitor to synchronize the output
|
|
|
Step 4: Lab 7 Report Part 1- Project Documentation
Feel free to work with your fellow students to get this working. However, you are required to build and program your own board, and prepare and submit your own report. Once you turned this in, you are ready for Part 2.
Prepare a report of no more than 3 pages, including a discussion of the following questions:
Include:
Prepare a report of no more than 3 pages, including a discussion of the following questions:
- What are the basic timing signals and how the VSYNC and HSYNC signals work
- Point out the section of the code that generates VSYNC and HSYNC
- How the characters are generated
- How the character library works, and how the characters were selected. In particular, explain and replicate the character map for the number zero and include this on the report ( Feel free to print a graph paper from here)
- How the HSYNC signal synchronizes each line, and how the VSYNC works over each frame cycle. Include a sketch of both signals or capture them using the oscilloscope
- How co-opting the TX line is used in this code to provide reliable timing signal
Include:
- A photograph of your board
- A photograph of your board working
- A detailed drawing of the character map for the number zero
- A sketch or an oscilloscope trace of the output signal and HSYNC over a line
Step 5: Lab 7 Part 2- Project Proposal
- Form a team of two or three students. Then pick an awesome group name.
- Propose to the instructor and the TA a modest modification to the system, given the available time.
- Please send the proposal over an email before the deadline, placing " 4193 project proposal" in the subject line.
- Remember to cc the email to both the instructor and the TA.
Modification ideas could be:
- Dynamic text
- Color
- Sound generation ( over the RCA port)
- Making a terminal
- Adding interaction for a game
- Building a character map for non-Roman alphabets
- Improving the resolution of the system
Useful reference/ inspiration for you to browse over (embedded link):
Step 6: Lab 7 Part 3- Presentation
Deliver your presentation to the class, and submit your report and code. Build a demo so you can bring it to a job interview! Impress your classmates and be creative!
Presentation:
Report:
The report should be no longer than 5 pages. Only one report required per team. You are required to submit your final code along with your report ( either submit by paper or electronically).
Presentation:
- Deliver an 8 minute presentation ( 7 minutes to talk, 1 minute for question) on your device. Make sure you explain:
a) What it does
b) Why is it interesting
c) How it works - All members must participate in the presentation.
- There will be a few monitors for you to plug the board; however, remember to bring any other hardware you might need.
- Grading will based on the quality of the presentation, the technical quality of the proposal and approach, and the depth of the proposed system modification.
Report:
The report should be no longer than 5 pages. Only one report required per team. You are required to submit your final code along with your report ( either submit by paper or electronically).