|Viptos: A Graphical Development and Simulation Environment for TinyOS-based Wireless Sensor Networks||Viptos (Visual Ptolemy and TinyOS) is an integrated graphical development and simulation environment for TinyOS-based wireless sensor networks. Viptos allows developers to create block and arrow diagrams to construct TinyOS programs from any standard library of nesC/TinyOS components. The tool automatically transforms the diagram into a nesC program that can be compiled and downloaded from within the graphical environment onto any TinyOS-supported target hardware. In particular, Viptos includes the full capabilities of VisualSense, which can model communication channels, networks, and non-TinyOS nodes. Viptos is compatible with nesC 1.2 and includes tools to harvest existing TinyOS components and applications and convert them into a format that can be displayed as block (and arrow) diagrams and simulated.|
|galsC: A Language for Event-Driven Embedded Systems||
galsC (pronounced "GALS-see") is a language and compiler designed for use with the TinyGALS programming model, which uses TinyOS as the underlying component model. TinyGALS is a globally asynchronous, locally synchronous model for programming event-driven embedded systems, especially sensor networks. At the local level, software components communicate with each other synchronously via method calls. Components are composed to form actors. At the global level, actors communicate with each other asynchronously via message passing, which separates the flow of control between actors. A complementary model called TinyGUYS is a guarded yet synchronous model designed to allow thread-safe sharing of global state between actors without explicitly passing messages. The TinyGALS programming model is structured such that code for all inter-actor communication, actor triggering mechanisms, and access to guarded global variables can be automatically generated from a high level specification.
By raising concurrency concerns above the level of TinyOS components, the TinyGALS programming model allows programmers to focus on the main tasks that the application must execute. Programs developed using this task-oriented model are thread safe and easy to debug.
galsC is designed to be compatible with TinyOS 1.x, which uses the nesC programming language. galsC extends the nesC language (which is an extension to the C programming language), which allows for better code generation and static analysis of programs. These features are especially important in severely memory-constrained and safety-critical systems.
|Modeling Event-Based Systems in Ptolemy II||TinyOS is an event-based operating environment designed for use with embedded networked sensors. It is designed to support the concurrency-intensive operations required by networked sensors with minimal hardware requirements. In this project, we study the TinyOS architecture and formalize its programming model in a Ptolemy II domain. Specifically, we model the event handler, command handler, and task interaction of TinyOS components in Ptolemy II using the DE, TM, and FSM domains.|
|BabyOnBoard: New Product Design and Development, Manufacturing, Rapid Prototyping, Management of Technology||BabyOnBoard was developed as part of ME221 (High Tech Design and Rapid Prototyping). The project focused on developing a prototype of a consumer product that uses wireless sensor nodes, and presenting at the class tradeshow. The mechanical engineers on my team designed and produced prototypes of the plastic housing for the car seat unit and the key chain fob unit on a fused deposition modeling (FDM) machine. I designed and prototyped the sensor circuitry and node(s) software.|
|EchidnaTM Real-Time Operating System (RTOS)||
The EchidnaTM Real-Time
Operating System (RTOS) supports reconfigurable component-based
software for microcontrollers and digital signal processors (DSPs).
Existing RTOS's for these embedded processors are very costly, and they
only provide minimal system functionality. Few modern innovations in
real-time systems and software engineering that we are implementing are
supported. The Echidna RTOS is designed to reduce development time by
improving tools and maximizing portability of modules across both
applications and target platforms, while maintaining the high-performance
and predictability required in a real-time system.
Echidna is based on the Chimera Real-Time Operating System, which was developed at The Robotics Institute at Carnegie Mellon University. Echidna builds upon Chimera and implements featherweight port-based objects.
|JPP: Java Pre-Processor||The Java Pre-Processor, or JPP for short, is a parsing preprocessor for the Java programming language. Unlike its namesake (the C/C++ Pre-Processor, cpp), JPP provides functionality above and beyond simple textual substitution. JPP's capabilities include code beautification, code standard conformance checking, class and interface specification and testing, and documentation generation.|
|Friction Apparatus: Engineering Education, Computer Controlled-Motor, Graphical User Interface||The Friction Apparatus is a tool designed as part of ENME414 (Computer Aided Design) to help freshmen engineering students learn the basic concepts of friction as part of ENES 102 (Statics). Topics include the coefficients of static friction and kinetic friction as a function of surface conditions, such as surface finishing and material properties. The mechanical engineers on my team designed and manufactured the friction apparatus, and I wrote the software and documentation.|
|Study Guide for the Advanced Placement Calculus AB Examination: Mathematics Education||This study guide is designed to help students prepare for the Advanced Placement Calculus AB Exam. Advanced Placement is a program of college-level courses and examinations that gives high school students the opportunity to receive advanced placement and/or credit in college. The Advanced Placement Calculus AB Exam tests students on introductory differential and integral calculus, covering a full-year college mathematics course.|
|Cooking with Politics, Technology, and Culture: Book History and the Joy of Cooking||This project is an investigation into the book history of the Joy of Cooking. Over the past 70 years in which the Joy of Cooking has been in print, American households have witnessed many changes. The political and economic effects of Prohibition, the Great Depression, World War II, and the advent of the global economy have affected how American cooking and eating habits. Research in food science and the benefits of a well-balanced and healthy diet have also changed how Americans eat. New developments in cooking technology have enabled Americans to cook more efficiently and quickly. Each edition of the Joy of Cooking has reflected the political and economic environment of its time and has included recipes and instructions to use the latest electrical appliances and knowledge of healthful cooking. The Joy has evolved as a result of these changes, but it has also affected American life through its engaging and helpful tips for modern cooking.|