Archive for the ‘User Interfaces’ Category

User Interface (Part 5)

Part 1, 2, 3, 4, 5 I brought several improvements since the introduction of the early design of a simplified however yet powerful human interface. Among them the possibility to display variables that the user can change and variables or constants that the user cannot change. Thus the introduction of a new set of menu types: /* Menu types */ […]

MicroFAN (Part 3)

Part 1, 2, 3 This part of the subject deals with the code. Nothing exceptional except that it combines multiples libraries: PlainLCD which drives the LCD display, PlainENCi which drives the rotary encoder, PlainTMP for the temperature sensor and PlainEEPROM which handles the erasable memory functions for storing default parameters. Nota: Using equivalent libraries may not cause […]

MicroFAN (Part 2)

Part 1, 2, 3 Let’s talk about some basic electronics. MicroFAN is really easy and requires few affordable electronic components: a 12V fan, Arduino (Uno, Nano, etc.), a 8×2 LCD (a 16×2 LCD will do the job too), a rotary encoder, typically a 30 pulse 15 detents per round (so as to say 1 cycle per […]

MicroFAN (Part 1)

Part 1, 2, 3 We gained quite a lot of experience after printing few kilometers of ABS on our Makerbot 2x. Controlling the temperature inside the cabinet solved a lot of problems. After few attempts, we decided to modify the printer by adding a fan on top of the transparent cover. The fan is turned […]

MicroHTR (Part 7)

Part 1, 2, 3, 4, 5, 6, 7, 8 Although this post relates with the MicroHTR application, its content deals mainly with the human interface which makes it available for autonomous usage, I mean without the need of a computer attached to the Arduino board for setting parameters and getting access to real time information. This human […]

PlainDSP plotter

PlainDSP plotter or From figures to pictures Thanks to a small yet powerful piece of Processing code which plugs immediately with PlainDSP library example sketches (wave plotter and spectrum plotter). More on this application on plaindsp web site

Direct Digital Synthesizer (DDS) (Part 6)

Part 1, 2, 3, 4, 5, 6, 7, 8 Patrick, thanks for your feed back. Thanks to you, there will be some updates of the PlainDDS library and its related MicroDDS applications. Here is a quite simple but already pretty effective human-machine interface for driving a signal generator. Get the latest Flash Player to see this player. [Javascript required to view Flash movie, […]

Graphic Liquid Crystal Display (Part 1)

This series of posts will explore GLCD (Graphic Liquid Crystal Display). For demonstration purpose, I will use a standard GLCD 128×64, driven by Samsung KS KS0108B controllers: And here is its pinout Pin Diagram Symbol Level Function Vss 0V Ground Vdd +5V Power supply for logic Vo – Operating voltage for LCD (contrast adjusting) RS […]

User Interface (Part 4)

Part 1, 2, 3, 4, 5 Once the structure of the menus has been translated into a vector of menu items, let’s talk about the core portion of the code which will read information from the rotary encoder and convert the information into appropriate display. The following routine must be called from the loop() routine: void mnuDriver(void) { int16_t […]

User Interface (Part 3)

Part 1, 2, 3, 4, 5 Now that we have decided how the menus will display on the LCD, let’s investigate the firmware. Writing some code for driving menus is not so hard. But making this code flexible enough for driving “any” menu structure makes your programmer’s life quite dense! The basis for my code is a vector which […]