MEM800 GUI-Based Control Web Page

The objective of MEM800 is two fold. First, graphical user interface (GUI) programming is introduced using Visual Basic as our software development platform. Second, a GUI is integrated into the hardware control of PC interfaced devices like relays, stepper motors, keypads, ADC and DACs. GUI's are the existing software paradigm. MEM800 hopes to equip students with the necessary and valued skills to develop today's control software and hardware solutions.

Students should view this site weekly for lesson plans. post-class review, and lecture preparation. Adobe PDF files are viewable with Acrobat Reader (preferable Version 4.0).

paul@coe.drexel.edu


Jump to a Lecture: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

Jump to a section: Web links and References


Lecture 1 - 03/31/03

Lesson Plan: GUI-Based Control Introduction - Part I

Visual Basic is a powerful language for programming a GUI. The integrated development environment (IDE) is introduced to write our first set of programs that feature commands buttons and text boxes.

Handouts, slides and Homeworks

Synopsis: Visual Basic's IDE was introduced. "Hello World"-type programs were generated by each student on a personal computer. Command, option and textbox controls were explored. A generic stepper motor was featured.


Lecture 2 - 04/07/03

Lesson Plan: GUI-Based Control Introduction - Part II

Additional controls such as message boxes, labels and string handling are explored to increase our VB repertoire.

Handouts, slides and Homeworks

Synopsis: Prompting user input into a VB program can be achieved in several ways: textboxes and pop up dialog boxes. One caution is to verify input data type (e.g. Integer, Double or string). Relays were also introduced and when interfaced to a PC, a 74LS374 octal latch can be used for sinking current.


Lecture 3 - 04/14/03

Lesson Plan: GUI-Based Control Introduction - Part III

Scroll bars, timers and menus conclude our introduction to VB basics. Numeric keypad interfacing will also be introduced.

Handouts, slides and Homeworks

Synopsis: Scroll bars, timers and menus offer additional program customization. Conceivably a user would use a scroll bar to adjust a PC-interfaced motor's speed; a timer can be used to trigger a relay at certain intervals; menus can be used to limit a user's selection of parameters. The past three lectures have given us the foundations of GUI programming which will be leveraged for real-world control in the upcoming weeks.


Lecture 4 - 04/21/03

Lesson Plan: Advanced VB: Dynamically Link Libraries (DLL)

VB affords rapid front-end development but has some limitations, namely I/O is not possible. Other languages such as VC++ can serve as back-end code, which can be stitched to VB front-ends using DLLs.

Handouts, slides and Homeworks

Synopsis: In VC++ one can create a DLL that access I/O ports. In VB the DLL is stitched during run-time and can then read and write to ports. A VB GUI to control an 8255 interface card and LED circuit was demoed.


Lecture 5 - 04/28/01

Lesson Plan: Advanced VB: ActiveX and Winsock

ActiveX technologies afford software recycling. Readily available components can be distributed and integrated into one's development. Winsock affords Internet programming. Both ActiveX and Winsock are covered in this lecture.

Handouts, slides and Homeworks

Synopsis: ActiveX is a technology that affords rapid development of programs by leveraging reusable and modular binaries. A program that creates a Word Document from within a VB program, a spellchecker and an LCD display were programmed to demo ActiveX. Winsock is an ActiveX component that enables internet programming. A simple client/server chat program was generated and demoed.


Lecture 6 - 05/05/03

Lesson Plan: Midterm and Project Specifications

The midterm's first part is closed book requiring handwritten answers. The second part is open book and requires PC programming.

Handouts, slides and Homeworks

Synopsis: The 2-part midterm examines knowledge of both Windows programming concepts, VB syntax, circuit design and actually VB programming. The project was issued and will culminate in student oral presentations of its underlying working and working demos.


Lecture 7 - 05/12/03

Lesson Plan: HTML and Project Workday

A quick introduction to web page creating using the hypertext markup language will be given. Student oral presentations are to be given using HTML, a printout of which will be the final report.

Handouts, slides and Homeworks

Synopsis: HTML can be used for documentation and fundamental aspects of the language were covered and demonstrated. Students demoed their 8255.dll LED/DIP and DAC circuits.


Lecture 8 - 05/19/03

Lesson Plan: Winsock Hardware Control and Project Day

Winsock and the 8255.dll (covered in Week05) for controlling peripherals over the Internet are covered.

Handouts, slides and Homeworks


Lecture 9 - 05/26/03 (Memorial Day)

NB: There was no class May 26th (Memorial Day). As discussed in class, this will be a project day. Your internet-appliances are due next week. Students are expected to give a 10 minute presentation and demonstration of their project in class next week.

Technical difficulties (e.g. network downage, bounced email etc.) will not be accepted excuses.

Handouts, slides and Homeworks


Lecture 10 - 06/02/03

Final Project Presentation Day: Students are to give a 10 minute oral presentation. They should set up their demonstration before class begins. During the class e.g. intermissions and breaks, students will be asked to give everyone a demo.

Links to Final Project

Handouts, slides and Homeworks

Future Self-Learning The benefits of open-architecture design is familiar in software circles, Linux being the classic example; by making all details available, the design is open to improvement or easy integration and expansion to other designs. Hardware designs however have not been equally "open" and manufactuers tend to keep designs proprietary. Student web-based tutorials above are open, with full hardware schematics, parts lists/vendors, and source code.

To witness the benefits of open-architecture, you are invited to do the following experiments:

  1. Establish a web-counter which counts the number of people (called hits) that visit your webpage. FXWeb is free statistics web-counter tool

  2. Announce your web-based tutorial on related newsgroups. Examples: sci.electronics.misc, comp.robotics.misc, comp.arch.embedded, sci.electronics.basics, sci.electronics.design and sci.electronics.misc.

    Post a subject title that says FREE Tutorial on internet-driven relay (for example). Your message state that you have an open-architectured tutorial and welcome feedback. Provide a contact email address in the post and on your web page.

  3. Suggest your site on major Web search engines. For example, Yahoo's site (bottom of page) has a link where you can submit your tutorial's URL. Within a few days or so, when people search, using key words related to your site, they will find your site listed.

  4. Over a course of a month or so, monitor your web-statistics and newsgroup posting regularly (few times each week). Hopefully you will get positive feedback and ideas of how your tutorial and design can be improved or how it helps others.


Tool Box Contents and Vendor Sources

The tools and electronic components used in class were purchased by several electronics mail order stores. Namely, JDR, Jameco, Circuit Specialists and Radio Shack. All of these vendors sell items on-line as well.

The tool box contents include items like the multimeter, soldering iron, wirewrap tool, protoboards, wire etc. along with the vendor, part number and price.


C Programming

There are plenty of C programming tutorials on the web at all different levels. Some introductory-level ones are listed below. Questions can be posted and answers read on the comp.lang.c newsgroup. comp.os.msdos.programmer is an excellent DOS programming discussion group.

Personally, I learned C by getting a DOS C compiler and playing around with it. Imprise (formerly known as Borland) now provides its Turbo C compiler for free at this site. Some of my favorite books on the topic are:


Visual Basic Programming

There are many VB tutorials on-line. Here are some that may help you get up to speed:


Basic Electronics

There are plenty of on-line resources on electronics at all levels. Some deal with specific topics while others are more general. Some excellent newsgroups are: sci.electronics.misc, comp.robotics.misc, comp.arch.embedded, sci.electronics.basics, sci.electronics.design and sci.electronics.misc. These newsgroups are very friendly and helpful in answering questions in all areas of electronics. Some useful web links are

My first electronics project was building a joystick for my Atari 400 computer when I was in highschool. I began by going to my local Radio Shack and buying a solderless breadboard, some wire and Forrest Mim's "Getting Started in Electronics". This $5.00 book is still sold at Radio Shack (part no. 276-5003) and I find it excellent for both the amateur and experienced electronics hobbyist. Other books are:


Control Theory

Control theory often means different things to different people. For some, control entails just turning something on or off. For others, it is mathematically abstract; a tool for those who enjoy manipulating linear and non-linear differential equations and matrices. I've found that latter is easier to appreciate if you keep you eye on the big picture and the math often follows much easier. Some webpages are:

Some general control systems theory books that I've enjoyed are:


Computer Interfacing

Much of what will be learned in MEM 639 will involve computer interfacing. The web is abound with references.

Some books that are useful are:

Home - Research - Projects - Vitae