January 2012
M T W T F S S
« Apr    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Recent Comments

    Register  |  Login

    Embedded System VoIP Project

     

    Embedded Systems Design

    The Georgia Institute of Technology

    The Idea
    Design a VoIP Phone using the state-of-the-art operating system, Windows CE 6.0. The VoIP Phone uses a character-based LCD, keypad with handset and ICOPTechs eBox. This device can be used to receive and make calls over the internet. From anywhere around the world, the calls are virtual free.
    The Proposal
    We are designing an embedded VoIP application as an alternative to other telephony applications, which are often pay services. We will be using the eBox to mimic the hardware that would be present in a real phone. Windows CE will provide most of the VoIP functionality and protocol processing. The user interface includes a headset, keyboard, and a Phidgets LCD display. The display will provide call information to the user such as number dialed, length of call, and user id.
    For demonstration purposes, we will use only two eBoxes to simulate a call between two users. However, the application will have support for multiple users.
    Possible future extensions to this project include a DNS server to allow dynamic IP addresses for the eBoxes or a headset that has speech recognition to allow the user interface to include voice dialing.
    The Device
    Our device is state-of-the-art, and its one of the first devices to uses the new Windows CE 6.0 Operating System. This project uses the Microsoft Real-Time Connection library with built-in Voice Over Internet Protocols. This Library allow the developer to create a session and add multiple participants to this session which allow conference calls. The methodology is similar to a chat room. First, the user connects to the client. Then the user creates an alias. With this alias, the user can participate in a VoIP session.Design Specifications:Our goal was to build a VoIP telephony device that would emulate the feel of a standard telephone on an eBox base running Windows CE 6.0. We accomplished this goal by implimenting the following parameters.
    RTC Client API: The RTC Client API allows the developer to build application that can make phone calls sessions over the Internet.
    Phidgets Blue LCD: This device integrates a 20X2 Blue Phidget Text LCD with USB ports that is required to control and power this device. The LCD displays the status of the call: Idle, Connecting, Receiving or In Progress. Once in progress, the timer keep track of the call time length.
    Simple Handset: The user can use the headset to talk privately to the participant on the other end.
    USD Keypad: The device integrates a 18 key number-based keypad. The user can use the keypad to enter the IP address of the receiving participant, connect and disconnect.

     


    Parallel Port IO Interface Project

     

    Senior Design Projects
    Georgia Institute of Technology

    Executive Summary:

    Professors, students and engineers in industry often work on projects that require sophisticated data communication interfaces to provide inputs or to measure outputs from their projects. These interfaces might be digital or analog in nature. Scenarios where multi-line digital input/output interfaces are required range from basic debugging to providing serial/parallel/I2C etc. inputs to ICs on PCBs. One might also need input/output analog interfaces to provide inconveniently valued voltages to power supply rails, for feeding a signal to an onboard part at a specific frequency or even detecting voltage values at certain nodes for debugging.

    Often engineers resort to using off-the-shelf products like DAQ boards made by well known companies. These products might be reliable, user-friendly, and readily available but are often very expensive and therefore out of the limited budgets for many users like students and hobbyists working on EE projects. Furthermore, these products come with standard non-customizable functions and often converting data going into and out of these products turns into a minor project by itself. More often that not, one needs to install these DAQ cards onto the motherboard of a PC and go through complicated startup procedures in order to customize the PC to best use the card instead of the other way around. Also, in the rare circumstance that a part on these DAQ card stops working, the user neither has the required information nor the legal right to modify or replace the part.

    For these reasons and many others there is a need of a cheap user friendly device that can enable a user to perform basic debugging and data monitoring tasks. The project described in this report allows users to make an easy to use IO system based on the computer’s parallel port. The device makes up for the deficiencies mentioned above by having a design that allows the user to replace malfunctioning parts. Also, the software created for this project, which the engineer would use to interface with the device is user-friendly and contains tools that allow the user to write code to make custom programs so that the user can use the board however he or she wants to for different projects. The board is priced well below off the shelf solutions and easily affordable by when compared to a typical student project budget.

    Introduction:

    The goal of this project is to create a device that can be easily built and used by student project groups, professors and hobbyists for digital and analog data monitoring and debugging applications. This is achieved by implementing the hardware design described in this report on a Printed Circuit Board which can be connected to the parallel port of a PC. The PC would run the necessary device drivers imported by a user interface both designed as a part of this project. This software would allow the user to communicate with the hardware on the PCB through control signals and general input/output lines on the parallel port thereby enabling the user to use the inputs and outputs as he or she wishes. The figure below is a basic big picture representation of the project.

    PPort Schematic

    In order to enable the above mentioned functionality, flexibility and platform independence the following design specifications need to be met.

    • The PCB should have 8 Analog inputs and 8 Analog outputs.
    • The PCB should have 8 Digital inputs and 8 Digital outputs.
    • The PCB should be able to operate at 3.3V and 5V power supply levels in order for the board to interface with TTL and CMOS parts.
    • PC parallel ports operate at TTL logic levels and the parts on board should be able to interface with the Parallel port smoothly without causing damage to the PC Parallel Port or the board. In order to do this, the inputs to the board need to be buffered and the required voltage conversion needs to performed on the inputs.
    • In order to provide the user with the option of using more than 8 input / output ports the PCB should have the ability to be cascaded with identical boards thereby providing input/output ports in multiples of 8.
    • The hardware should be equipped with the required device drivers and User Interface software which can be installed on the target PC, that the user can use in order to communicate with the parts.
    • Parts need to be chosen so that they are easily replaceable in the event of a part malfunction.

    PPort PCB

    Conclusion

    It was concluded that the product design is promising although the actual PCB prototype was unsuccessful. The hardware design of the product is innovative and allows for cascading multiple boards. It is recommended that the same basic hardware design be used in future version of the project. The hardware design uses a minimal number of parallel port pins and most importantly allows the implementation of the cascading feature which is a very marketable and useful feature. The software is also very user friendly. Since the protoboard implementation of the project was successful, it is recommended that the PCB implementation of the project be concentrated on in the future with a few minor changes in hardware and software designs as deemed necessary. In hindsight, it would have been more advisable to assign more than one person to work on the software as had been done for all other tasks. This would reduce dependence on one person and result in better coordination. Moreover, it would have been advisable to allocate more time to PCB development, testing and debugging. This was not done due to minor changes made to the hardware on inclusion of the transceivers. Moreover, since the proto-board implementation had been successful, confidence prevailed on the chances of the PCB prototype being instantly successful as well. The issues presented by the PCB prototype testing were more or less unanticipated. The only cause of the PCB prototype being unsuccessful was a soldering problem with the transceivers. Expert help should have been sought while soldering the remarkably tiny transceiver parts. The parallel port group believes that on eliminating soldering related issues on the PCB, all tests would be successful. Although this problem was discovered on investigation, it could not be fixed due to lack of time.

    Screen Shots of Software
    PPort Screen Shot 1PPort Screen Shot 2PPort Screen Shot
    PPort Screen Shot 4PPort Screen Shot

    Team Member
    James Harris
    Zaheer Ahmed
    Pranav Rastogi
    Amol Desai
    Ankit Khanna

    Wave/Function Generator

     

    Microelectronic

    Georgia Institute of Technology

     

    Function Generator Screen Shot 1

    James Harris
    David Colvin

    Introduction

    Most modern media devices store audio signals in digital form. The device later translates the digital signals into analog signals. Then, these analog signals are use to operate CD players, sound cards and video devices. To perform such tasks, those devices integrate digital-to-analog converters or DACs.

    Objective

    Our project will explore the TLV5628CN part which is an 8 channel, 8 bit serial device. We will employ this part to generate signals similar to a function generator. Using the keypad on the PIC-690, the user can enter data to generate signals such a sinusoid waveform on a particular channel. The PIC-690 transfers that data via serial communication to the PIC-913 chip. This chip will process that data and output the user-desired signal on the external DAC. Unlike the MSP430 counter-part which is usually found in high-end hi-fi systems, the TLV5628CN part limits the maximum output frequency. So, the major objective of our project is to accurately display the signal in a small frequency range on several channels. To overcome this challenge, we have to use the various techniques we have learned in lab.

    Project Description

    Normally, function generators can produce signals of any waveform at frequencies in the order of hertz. To test a particular system™s response to an incoming signal, the user would input generated-signals into the system. Some example waveforms are sinusoid, ramp, triangle and square functions.  The frequencies usually range from 1Hz to 10 MHZ or more.  Some function generator models may have waveform editors, greater frequency ranges or multiple channels.

    Our function generator can produce the four basic waveforms at a frequency of ~30Hz with 64 points per period resolution. To perform this task, we used a digital-to-analog converter or DAC. Our project utilized the TLV5628CN part which is an 8 channel, 8 bit serial device. Using the keypad on the PIC-690, the user can configure the PIC-913 to output signals on the DAC.
    Mainly, The PIC-690 transfers the user-inputted data serially to the PIC-913 chip. This chip processes that data and outputs the user-desired signal on the external DAC.

    Technical Description

    The Terra Term terminal reads incoming data from the PIC-690 UART. The PIC-690 prompts the user to choose a waveform and select a channel. The Terra Term terminal also receives instant feedback from the user pressing keys on the keypad. The PIC-690 uses two state tables. The first state table de-bounces the user input from the keypad. The second state table encapsulates the first state table. The second state table controls the overall flow of the messages which prompts the user. The user makes a selection via the keypad on the PIC-690 and presses the # key to accept the value. If the user enters a invalid value, the PIC-690 refreshes the menus and prompts the user with an error message.
    The PIC-690 displays the Waveform menu first.  After the user presses the # key, the PIC-690 displays the Channel menu. After the user selects a waveform and channel the PIC-690 transfers that data to the PIC-913 using a three wire interface. The PIC-913 and PIC-690 shares two ACKs and one DATA line. The PIC-913 outputs a bit on the DATA line and toggles its ACK1 line. The PIC-690 reads the DATA line and toggles its ACK2 line. The algorithm transfers bits asynchronous on the raising and falling edges of the ACK lines.
    After the PIC-690 transfers the data to the PIC-913, the PIC-913 updates the channel configuration table which is a table of table pointers. These table pointers will point to one of the four lookup tables: sinusoid, triangle, ramp and square waveform. These lookup tables contain an array of pre-calculated values of the four waveform functions. At initialization the “channel configuration table elements point to a special zerotable. When the PIC-913 is not receiving new configuration data its main loop is updating the value in each channel of the DAC using the LOAD, CLK and DATA lines.  The main loop updates each channel with the next value in its corresponding waveform lookup table.

    Anomalies and Problems

    In order to produce usable waveforms on all channels, some optimizations were made.  First a faster clock speed was required to execute all the code for updating the DAC in a timely manner. An external 15 MHz oscillator was used to nearly double the internal clock speed.  A lower resolution waveform was used to decrease the period of the waveform.  Originally the lookup tables contained 255 points per period, and that was reduced to 64 to decrease the time it took to output a period of a waveform.  The code for transmitting to the DAC was streamlined to reduce the number of conditional statements at the cost of program space.
    After the function generation code on the PIC-913 was working the SPI interface between the PIC-690 and PIC-913 stopped working.  In order to circumvent this problem a bit-banging routine was used to transfer configuration data between the PIC-690 and the PIC-913.
    The increased clock rate on the PIC-913 allowed it to initialize before the PIC-690 causing errors to occur at startup.  In order to fix this problem a delay was added in the initialization routine on the PIC-913.

    Sure2Profit Multibet Calculator 2.0

     

    Freelance project from scriptlance.com. (2007)

    I’ve written this software using the wxWidgets cross-platform gui library for the windows operating system.

    -James Harris

    Sure2Profit Multibet Calculator PRO 2.0

    These FREE Horse Racing Tips Have Helped Over 1,288 People Reaching Wealth, Imagine What They Will Do For You…

    Imagine a Sure2Profit Multibet Calculator PRO 2.0 that helps:

     Making money from the comfort of your own home or wherever YOU wish to be.

     Making money quick! Just enter a few figures and the Sure2Profit Multibet  Calculator PRO 2.0 software will work out the best profit position for you.

     Making money from anywhere in the world - Use the Sure2Profit Multibet  Calculator PRO 2.0 software from anywhere around the world.

     Starting making money 15 minutes from now.

     Making money 100% legitimate and “tax free” at the same time!.

     Making a profit out of every single bet for the rest of your life regardless of the final result in that race!

     Making money in the easiest way you’ll ever come across! Start making money today by taking advantage of online betting exchanges worldwide.

     Making money with very little or practically no upfront investment - operate with any starting bank you want. You decide how much money you want to make and start growing your profits from there!

     Making money without any knowledge of horse racing, any sports or betting in general to operate the software, just follow the few simple steps outlined in the program.

     Having an extremely sophisticate and professionally designed program at your finger-tips, developed using the latest technology, that makes you money every time you wish!

    screen-shot-2011-04-02-at-54702-pm

    screen-shot-2011-04-02-at-54841-pm

    screen-shot-2011-04-02-at-55105-pm

    Mosaic Quilted Photo

     

    Freelance Project from Scriptlance.com

    I’ve written this software using C++ and wxWidgets cross-platform GUI library for Windows, Linux and Mac OS X. This software uses many basic image processing techniques: Image sampling, digitization, quantization, histograms, edge detection, constrast and gray-scale transformations. As well as breath first search which is a common graph search algorithm.

    Quilted Photo Deluxe

    Deluvaluat1 300x300 SoftwareHave you been waiting for even more advanced features? well here it is! Quilted Photo Deluxe has 16 new pixel shapes, makes paper piecing patterns and you can automatically make the amazing contoured patterns! This is the technique I used to make the winning quilt on the cover!! Quilted Photo Deluxe is the best quilted photo software in the world. It is easy to use and reliable. This program is part of a family of software programs made specially for Quilted Photography.

    The new Deluxe software includes options for grayscale or realistic color palettes. You can also print a shopping sheet that tells you how much of each fabric you will need and finished quilt size and more. The most time saving feature is the full size printing feature! You can print your pattern with your numbers in any size squares! Just tape the pages together, and you will be ready to start!

    The Deluxe Software was developed to handle realistic color perfectly.

    Available for MAC.

    Click here to download Windows demo

    Benefits & Features of Quilted Photo Deluxe

    • Change the pattern to 45 or 30 degree angle with the  click of a button!
    • Easily adjust the Contrast or Brightness of your photo!  Your photos don’t have to be perfect, just fix it with  QPX 4.0!
    • You get more color options… Grayscale, Realistic Color, and even use the built in fabric  collections!
    • You have full control of the number of squares  and the number of fabrics!
    • You get complete control of the finished size of the quilt. So now you can easily plan a quilt that is the perfect size to fit your wall!
    • You can see a preview of the pattern before you print it out!  The patterns now have large numbers!!!
    • The color palette has large color swatches! Print it out to match your fabrics!
    • You can also import your own fabrics into the preview and see your quilt before you cut even one fabric!!
    Windows System Requirments
    Pentium III 500MHz
    512MB Ram (recommended)

     

    20MB free HD Space

    32MB VRAM video card

    Windows 98/ME/XP/2000/Vista/ Windows 7

    Mac System Requirments

     

    Recommended Systems:

    -Mac Mini (Intel Based Only)

    -iMac (Intel Based Only)

    -Macbook

    -Macbook Air

    -Macbook Pro

     

    Complete Specifications:
    -1GB Ram (recommended)
    -20MB free Harddrive Space
    -10.5 (Leopard)

     

     

    screen-shot-2011-03-26-at-45736-pm

    screen-shot-2011-03-26-at-45825-pm

    screen-shot-2011-03-26-at-45921-pm

    screen-shot-2011-03-26-at-45959-pm

    Implementing Graph Algorithms for Satellite Images

     

    Graph Algorithms & Combinatorial  Optimization Project

    The University of Iowa

    Introduction

    Shortest path graph algorithms are very important component of satellite image processing. Imagine of a satellite taking aerial photos of city streets and highways. Graph algorithms can identify those streets, roads and highways. A GPS device can take those images and find the shortest path from one destination to another, so the device has to perform graph search algorithms on the image, which will find the shortest path.

    The device can run breadth-first search algorithm, which is one of the simplest algorithms for searching a graph. This algorithm can start at the source point and systematically search the edges to every reachable vertex. The algorithm iterates this same process on each reachable vertex to the next reachable vertex.  It uses a FIFO queue to store the vertex. The FIFO stores the reachable vertexes in the queue.

    The device can run a heuristic graph search such as A* algorithm. This algorithm will only search vertexes with minimum distance from itself to the end vertex. For simplicity of this algorithm, it first establishes a priority queue, which sorts every vertex in the queue from smallest to greatest distance, so it searches the vertexes with the minimum distances first.

    Object Draw Design Project

     

    Software Engineering Languages and Tools

    The University of Iowa

    Introduction
    The ObjectDraw is an application, which allows users to collaborate remotely across the internet or network. The user can share their artwork with other users in the session. The software is peer-to-peer software, which allows anyone to start a new session from any location. Once the user creates the session, allow can join that remote session on the network. The user can develop new drawing tools and introduction these tools into the session at which the tool is distributed to the other users.

    Any user can use these tools to doodle on the canvas. After the session is complete, the users can save their artwork. The administrator of the session can pass control to other users in which he can control who can draw on the canvas. This application is portable. The user can create or join sessions on anyone network. This application can run on multiple platforms. A user with the Linux operating system can communicate with Windows users running the same application. This application is ideal for personal and business solution.

    Conclusion

    The ObjectDraw is an application, which allows users to collaborate remotely across the internet or network. The first major team decision was choosing the language, Java or wxWidget for C++. The Java language was more feasible because it is cross platform. The wxWidget requires more advance C++ knowledge. Also, Java is widely used. The next decision was deciding to use DatagramSocket or Java Sockets. The DatagramSocket did not make sense for usage in our application and does not have a continuous connection. The DatagramSocket established only UDP connections. The application needed a continuous connection, so the team decided to use Java Sockets. After using Java Sockets, it did not meet the project specifications. The Java Socket crashed when sending objects across the network. This problem forced the project to use the RMI technology. RMI handled the transmission of serialized objects reliably.
    The team designed the application as a dynamic server or p2p application. The dedicated server required a dedicated computer. Developing the application as a p2p application is portable and can be easily be setup by anyone running the application. The team tested the program through the whole coding process. The program was successfully completed using RMI as the backend.

    Team Members
    James Harris
    Kiran Kasamesetty
    Fan Yang
    Jack Wise

    Hello world!

    Welcome to Easy Resume Blog. This is your first post. Edit or delete it.!