While I loved the Nokia 5110 LCD’s readability in full sun, the pressure sensitivity was a real problem for the underwater units. So I started noodling around with some cheap OLED screens from eBay.
With the exception of the init & XY functions (which are more complicated on the 1306 controller) the rest of the code ported over from the Nokia screen with no changes at all. My guess at this point is that the shift-out method will work with most of the other cheap OLED screens, provided they don’t exceed the pin current limits implied by my method.
Lies, damn lies and statistics.
You have a high school science fair and want to know how your project was perceived by the visitors. Modern online behaviour will direct you to “taking the online survey”. That requires an extra step for the visitors, usually by taking hold of their mobile device and fiddling with a small screen.
One problem you will encounter is designing good computer interaction and a proper look and feel on the tiny screen. It is a lot of work. A second problem is the distraction of using the mobile device with respect to the project being surveyed. The visitor will concentrate on the mobile device and that will diminish focus on the project for a moment. A third problem is anonymity and proliferation of data. Do we really need to be online and spread all that information one’s device sends?
The cheap price however comes with a few niggles, namely getting it up and running in the first place with the limited documentation. Gnarly Grey do a great job of explaining programming a starting program but don’t say much about further development. With that in mind, I’m going to run through the methodology of getting an LED flashing using VHDL. There seem to be a fair few Verilog methods but not many people seem to have touched upon VHDL with these FPGAs.
This is a follow-up to our post about using Nokia 5110 screens on three unused analog lines with shift-out. That saved me from messing with the hardware SPI bus which we reserve for the SD cards. A secondary benefit is that the code is really lean, on the order of about 250 bytes for the default font after the compile if you already have EEprom.h in the build anyway. The font, however takes up about 500 bytes, and I wanted the smallest possible footprint so that we could add live data output to loggers that are already compile near the memory limits. As it turns out, stuffing those fonts into the internal EEprom was pretty easy to do:
Using the Arduino’s Internal EEprom to Store Calibration Data & LCD Screen Fonts
This tutorial shows how to use the I2C LCD (Liquid Crystal Display) with the ESP32 using Arduino IDE. We’ll show you how to wire the display, install the library and try sample code to write text on the LCD: static text, and scroll long messages. You can also use this guide with the ESP8266.
For simplicity, I used a single rotary encoder for controlling the attenuation. In order to prevent accidentally changing the set attenuation value, I used the built-in switch of the rotary encoder as the lock/adjust control. The idea is that the attenuation value can only be adjusted when the switch is in the “adjust” state and the attenuation value is set once the switch changes from adjust to the lock state. When the switch is in the “locked” state, adjusting the rotary encoder has no effect on the digital attenuator. The current attenuation value is displayed on a 1×16 LCD. For more details, you can find the Arduino code listing towards the end of this post along with a video demonstrating this control interface.
A how-to on making a Dual-sensor ultrasonic echo locator by lingib, project instructables here:
This instructable explains how to pinpoint the location of an object using an Arduino, two ultrasonic sensors, and Heron’s formula for triangles. There are no moving parts.
Heron’s formula allows you to calculate the area of any triangle for which all sides are known. Once you know the area of a triangle, you are then able to calculate the position of a single object (relative to a known baseline) using trigonometry and Pythagoras.
The accuracy is excellent. Large detection areas are possible using commonly available HC-SR04, or HY-SRF05, ultrasonic sensors.
Construction is simple … all you require is a sharp knife, two drills, a soldering iron, and a wood saw.
Let’s see what we are going to build today! As you can see, we are going to build an Art Deco style FM radio receiver. The design of this radio is based on this spectacular 1935 AWA radio. I discovered this old radio while searching online and also in this book about the most beautiful radios ever made. I loved the design of this radio so much that I wanted to have a similar one. So I devoted a month of my time to build my own.
Lora board with Arduino nano compatibile pinout and simple battery management
Small board with arduino nano compatibile pinout with power management and Murata ABZ LoRa module with STM32L0 microcontroller
-LoRa module: Murata ABZ
-Single cell LiPo cell charger on-board with charging signal internally connected to PA11 (via jumper)
-Buck/Boost switching power supply for delivering stable 3,3V regardless of the batterz voltage
-Battery fuel gauge on-board to control the real status of the battery
Very often, for our programs, we need a system to set parameters, usually of a numerical type. A 4×4 keyboard requires some space and then we also need a display. Here is the idea of using a touchscreen display to do both. I have then written the GetNum function that allows you to print a prompt message and to type an integer number. To test this function I wrote a simple analog data logger program that required two parameters, the first is the sampling period and the second the number of samples. In this example the number of channels to be scanned is set to three, but the program can be modified to request a third parameter with the number of channels.