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 week:
1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
9 | 10
Final Project (Internet-Controlled Actuation) - Links to Tutorial
- Zelimir Husnic: Internet-Controlled DC Motor
- Ross Waters: Internet-Controlled Relay
- Eric Peterson: Internet-Controlled Traffic Light Switching System
- Giuseppe Sagolla: Internet-Controlled Keypad
- Sam Yoon: Internet-Controlled Stepper X-Y Table
- Nick Gialias: Internet-Controlled DC Motor with Video feedback
- Bharat Shah: Internet-Controlled Pan-tilt Camera Alternate page
- Roberto Pina: Internet-Controlled Steppers
Jump to a section: Web links and References
Week 1 - 03/26/01
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.
Week 2 - 04/02/01
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.
Week 3 - 04/09/01
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.
Week 4 - 04/16/01
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
- Handouts
week04Handouts.pdf
- Homework 04 (can skipped first 2 questions but must demo Lab Exercise 2
and the final lab exercise (LED/DIP combo) in class next week.
homeworkWeek04.pdf
- Note: Mid-term Week 6
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.
Week 5 - 04/23/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
- Downloads
axpanel.zip LCD ActiveX shareware component
- Handouts
week05Handouts.pdf
- Homework 05
homeworkWeek05.pdf
- Lab Demo of Week 04's (VB DIP and LED/DIP program) postponed to next week
after mid-term.
- Data Sheets
DAC0832.pdf: DAC0832 digital-to-analog
converter chip.
- Note: Mid-term next week
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.
Week 6 - 04/30/01
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.
Week 7 - 05/07/01
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.
Week 8 - 05/08/01
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
Week 9 - 05/28/01
Take Home Final Exam
NB: There was no class May 28th (Memorial Day). As discussed in class,
a take home final is to be done in lieu of project timelines. The three page final has
3 sections and must be handed in by 6:00 PM June 4, 2001.
Also on June 4th, your oral and written project presentations are due.
Technical difficulties (e.g. network downage, bounced email etc.) will not be accepted
excuses. My regular office hours continue and I can be consulted on
May 30th 16:30-18:00.
Handouts, slides and Homeworks
Week 10 - 06/04/01
Class conclusion: Students give a 10-15 minute presentation of their project.
The project exercises concepts covered over the quarter in (1) GUI-Based
programming: VB, ActiveX, Winsock, client/server, Dynamically linked libraries;
(2) Hardware interfacing: DAC, relays, steppers and keypads. Student demos
highlight Internet-controlled actuation of hardware. The big picture is
that learned concepts can be applied for remotely monitoring or controlling
plants like wind tunnels, chillers, boilers over the Internet.
Student presentations are documented in HTML for easy distribution. The links
and authors are given below:
- Zelimir Husnic: Internet-Controlled DC Motor
- Ross Waters: Internet-Controlled Relay
- Eric Peterson: Internet-Controlled Traffic Light Switching System
- Giuseppe Sagolla: Internet-Controlled Keypad
- Sam Yoon: Internet-Controlled Stepper X-Y Table
- Nick Gialias: DAC
- Bharat Shah: Internet-Controlled Pan-tilt Camera Alternate page
- Roberto Pina: Steppers
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:
- Establish a web-counter which counts the number of people (called hits) that
visit your webpage. FXWeb is free statistics
web-counter tool
- 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.
- 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.
- 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:
- The Waite Group's C Primer Plus
by Stephen Prata. An excellent book on C programming. Well written and easy
to understand.
- The C Programming Language
by Kernighan and Ritchie. This is considered the "bible" of C programming. Although somewhat terse,
I've often found answers quickly in this 274 page book not found in larger books.
Visual Basic Programming
There are many VB tutorials on-line. Here are some that may help
you get up to speed:
- Visual Basic Tutorial for
Beginners: 11 lessons covering fundamentals and code programming.
- Another Beginner's
Tutorial with some nice screen-captured graphics
- The VB Code Guru is the definitive
resource for VB programmers. Newsgroup available for questions and answers.
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:
- The Art of Electronics
This tome by Horowitz and Hill is also consider a "bible" of electronics. It's the type of book all engineers should
have on their bookshelf. You'll find it timeless as an excellent reference book and very
comprehensive.
- Gordon McComb's The
Robot Builder's Bonanza is also a great source for learning electronics. It
is more specific to robot builders, but puts many electronic concepts to use, such as amplifiers,
relays, motors and solenoids.
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:
- Benjamin Kuo's Automatic Control
is in its 7th edition and is another "bible" in the control area. Kuo goes presents the mathematics but
goes beyound the abstraction. Real world examples are applications are presented.
- Ogata's Modern Control Engineering
and Discrete-Time Control Systems
also two great books to learn control systems.
- Franklin Powell's Digital Control of Dynamic Systems
is also a well-referenced digital control systems design book
- I enjoy Astrom's Computer-Controlled Systems very
much. Astrom presents the mathematical concepts very clearly and his books are a manifestation of his many years in the field.
- And of course there's our course textbook by Charles Phillips
Digital Control System Analysis and Design
- Hutchings' $35.00 Interfacing With C is quite
a good book with algorithms, control theory and mathematics are presented on a high level. It is well worth the money and serves
as a good handbook covering areas such as filtering, Kalman filtering and data acquisition.
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:
- Tompkin's Interfacing Sensors to the IBM-PC
is an excellent book. It gives an excellent treatment of the PC's ISA bus as well as schematics for an 8255, ADC and DAC
card
- Hutchings' Interfacing With C is quite
a good book. Algorithms, control theory and mathematics are presented on a high level to get the reader beyond the
low-level abstractions. This $35.00 book is well worth the money as a good handbook. The downside is that full
schematics are not presented.
- Applied PC Interfacing, Graphics, and Interrupts
by Buchanan gives some practical code in C and Pascal, especially in graphics and interrupts. It is useful if
the reader has some prior knowledge of the 8255, 8254 and 8259 chips. The
book's downside is the lack of schematics.
Home -
Research -
Projects -
Vitae