[Tech2077] is one of the lucky ones who already got his hands on a Raspberry Pi. He’s been looking into different interface options with the GPIO header and just posted a guide to using an HD44780 character display with the RPi. We like this approach because instead of doing some hard-core LCD work he’s using prototyping equipment you probably already have on hand.
Getting a character LCD running should be really simple. The gotcha is the logic level gap between the devices. If you’ve been working with Arduino, your add-ons are probably meant for a 5V power rail and logic levels. The RPi outputs 3.3V logic. You could use a level converter (you’d need at least 7 pins to be converted in this case) or you can be a bit more clever. [Tech2077] grabbed an I2C port expander that uses just 2 of the RPi lines to address even lines of the display (four data bits plus three control bits). This is a bit of a hack, as the 3.3V logic is 0.2V below the recommended minimum for a digital 1 on the port expander. But it seems to work just fine! If it didn’t, a couple of NPN transistors would do the trick as well.
Addressing the new peripheral is just a matter of loading the i2c module and writing some Python.
[Duality] just finished programming Conway’s Game of Life on a character LCD. The game is a great programming exercise that everyone should undertake at one point or another. It uses a very simple set of rules to evolve the playing area from a given starting state. In this case the game grid is only 64 pixels, one for each of the positions on this 16×2 character LCD screen. This makes for very quick games as the cells tend to quickly reach an equilibrium as they arrive at the outer borders. See for yourself in the clip after the break.
We could have sworn we’ve seen this before, but with four times the playing space thanks to some custom characters. We couldn’t find an example of that, but the idea is to use a larger grid (something more like what’s seen on this graphic LCD) by generating a set of custom characters that slices each 5×8 pixel character into four smaller discrete areas. Something along the lines of what is being done with this spectrum analyzer.
Continue reading “Small life on a character LCD”
You can find all kinds of LCD screens in broken electronics. But it’s often a chore to figure out how they are controlled if you don’t have a working device that can be used to sniff the communications protocol. [Justin] grabbed this character LCD screen from an old Brother printer and decided to see if he could reuse it in his own projects. Luckily the driver card still worked so he patched into the LCD’s control lines and sniffed the signals when the printer is powered on.
He used the OpenBench Logic Sniffer for this project. It easily captured the data, and also provided analysis tools. The SPI analyzer managed to decode the command signals and message of “Please wait” that pops up at power up. After a bit of folly with the pin out of the display, he is now able to control it thanks to an Arduino library which he wrote. Check out the demo after the break to seem him scrolling through a bunch of different functions for the device.
Continue reading “Salvaged LCD screen hacking”
This Arduino BASIC interpreter will make a really fun one-day project if you’ve already got the parts on hand. [Usmar A. Padow] put together an Arduino Uno, SD card, four line character LCD, and PS/2 keyboard. but he’s also included alternative options to go without an LCD screen by using a computer terminal, or without the SD card by using only the Uno’s RAM. As you can see in his demo after the break, this simple input/output is all you need to experiment with some ancient computing.
It’s hard for us to watch this and not think back to an orange or green monochrome display. Just like decades past, this implementation of BASIC has you start each line of code with a line number, and doesn’t allow for character editing once the line has been input. The example programs that [Usmar] shows off are simple to understand but cover enough to get you started if you’ve never worked with BASIC before.
Last August we saw another hack which ported Tiny BASIC to the Arduino. You may want to take a gander at that one as well.
Continue reading “Arduino BASIC interpreter using LCD, keyboard, and SD”
Let’s be honest, you’re going to have trouble getting kids to play text-based adventure games these days. But this is one way to get them interested. This weekend you should get together with niece, nephew, son, or daughter and help them build their own hardware and program it with an adventure game. One last project before school’s out and the weather’s nice.
This is [Dan’s] shiny example of Hunt the Wumpus. He used Adafruit’s RGB LCD shield for Arduino. It’s got a character LCD and five buttons. But you can easily breadboard this yourself using a few tactiles plus a screen and uC of your own choosing. One nice touch with this one is the RGB backlight which is used to add an element of danger to the story line. He also mentions a few bugs in the Arduino language which he found while setting up the game.
We’ve been meaning to make our version of Zork using an Arduino, GLCD, and PS/2 keyboard ever since we read “Ready Player One”. This is just a bit more encouragement to get moving on that project.
We love the extra touches that [Andrianakis Haris] added to his two-zone electronic thermometer. It includes features that you just wouldn’t find on a mass-market commercial product because of issues like added cost. For example, you can see that the PCB juts up above the LCD display, allowing the module to be mounted on a pair of screws thanks to the keyhole shape that was drilled in the substrate. I increases the board size greatly, but on a small hobby run this won’t usually affect the price of the board depending on the fab house pricing model.
The design uses an ATmega8 microcontroller to monitor sensors in two different places. There is an onboard LM35 temperature sensor for monitoring the space where the unit resides. A remote sensor module uses a DHT-11 chip to gather data about temperature and humidity. That sensor is wired, but there is one wireless option for the device. Data can be pulled down from it via an optional Bluetooth module which can be soldered to a footprint on the back of the board.
Check out the video after the break to see temperature readings pulled down wirelessly. Continue reading “Over-engineering a two-zone thermometer”
[Arshad Pathan] let us know about his latest project, a modular code lock that can be adapted to many different situations.
The user interface is made up of a character LCD screen and a 3×4 keypad. For this example [Arshad] is using a stepper motor as the locking mechanism. When the board is first powered up it runs the stepper in one direction until receiving input from a limiting switch. In this way, the microcontroller calibrates itself to ensure the lock is in a known position. From there it waits for user input. An unlocked door can be locked at any time by pressing the * key. Unlocking requires entry of the correct password. And a password can be changed by entering 9999 (followed by the old password when prompted).
In the video after the break [Arshad] does a great job of demonstrating the various modes which he has programmed. This stands on its own, but we always love to have more details so we’ve asked if [Arshad] is willing to share a schematic and the source code. We’ll update this post if we hear back from him.
Update: [Arshad] sent in a couple of schematics which can be found after the break.
Continue reading “Full featured security lock demonstration”