I made some wireless sensors, using BME280 temperature, humidity, and pressure sensors, together with SYN115 transmitter modules. I used these to verify the storage of vacuum sealed “PrintDry” 3D filament storage containers.
The input is at 50Hz and the output is at 60Hz. So for every 5 input cycles, we want to generate 6 output cycles. We will be synthesizing a sine wave in software, and there’s no reason not to go with a conventional lookup table of 256 bytes. The PWM will be averaged out by the coils in the motor. It may even be possible to drive it with a square wave, but there is a self-starting mechanism I don’t want to interfere with. A synchronous single-phase motor normally will spin in either direction, and if you want it to spin only one way (as is the case with a clock) extra components are needed. It could be a mechanical pawl that stops it starting in the wrong direction, but the rotor spins very freely in either direction when the clock is powered off. More likely, there is a capacitor and/or additional coils which provide the shove in the right direction.
So you are using a bare attiny85 in your next project but don’t have room for the programming header, What do you do? I came up with the idea of using pogo pins layed out on A PCB so that they will sit on top of the Attiny85 legs. I used standard male jumps at each end of the chip to help line it up.
It’s a foundation for a wearable platform. It’s a Nato watch strap threaded through a PCB with a coin cell battery holder between the PCB and the strap. I’m using a Attiny85 this time around but could be used for most chips/dev boards. This is a proof of concept to iron out any problems I’ve overlooked.
So when I was into using just a atmega328 dip chip I make a programmer header for it that also had a crystal and the capacitors need to make it function. I wanted to do the same for the attiny85. As you know you have to use a ISP programmer to flash the attiny85, This requires you to look up the pinouts and get a bunch of jumps out to wire it up. I wanted to eliminate all of this.
I got a request, to design and build an electronic metronome. You can find several on the market, but the problem it is ether producing voice or the classical mechanical metronome. The requirement here was a visual effect. To be precise four LEDs for 4/4 beat. It is required for drumming where you have no chance to hear the clicking (or maybe just through headphones).
The original reason for this project is that I wanted to build a standalone RC2014 with keyboard and display. There is an official RC2014 serial keyboard, but I find it a little inconvenient for my big fingers and poor eyesight. I have plenty of old PS/2 keyboards laying around, so I figured I’d rig up a microcontroller to convert the PS/2 keyboard interface into a TTL-level serial interface that could be plugged directly into the RC2014’s serial port.
Along the way, I discovered that the very same circuit would make an interesting project to turn a PS/2 keyboard into a simple MIDI controller. So I adapted the circuit for that purpose as well.
The “normal” way to build a spectrum analyzer is to collect a bunch of samples and run a Fast Fourier Transform (FFT) on them all in one shot. As the name implies, the FFT is fast, and the result is the frequency components of the sampled data. [agp.cooper]’s “wrong” way to do it takes the Goertzel algorithm, which is used for detecting the intensity of a particular frequency, and scanning across the frequency range of interest. It’s a lot slower than a single FFT but, importantly for the ATtiny85 that he implements this on, it’s less demanding of the RAM.
The result isn’t a snapshot of a single moment in time, as it would be with an FFT. For instance, his latest version of the software takes almost 3/4 of a second to take 61 measurements across 500 Hz of bandwidth and push the data out to an LCD screen. That’s too slow for fast signal data, but is just about workable for looking at the way frequency components of a plucked guitar string damp out, for instance.
We’re sure that there’s some version of FFT code that will fit inside these micros and manage to get the job done faster, and if any of you out there can prove it, the gauntlet is thrown. But it’ll take a lot of work compared to just sliding Goertzel’s algorithm up and down, and frankly we just think it’s cool that this method works at all.
[Pawel] has a weather station, and its nerve-center is a Raspberry Pi. He wanted to include a light sensor but the problem is, the Pi doesn’t have a built-in ADC to read the voltage off the light-dependent resistor that he (presumably) had in his junk box. You can, of course, buy I2C ADC chips and modules, but when you’ve already got a microcontroller that has ADC peripherals on board, why bother?
[Pawel] wired up a tremendously simple circuit, downloaded some I2C slave-mode code, and added an LED for good measure. It’s all up on GitHub if you’re interested.
We’re covering this because we rarely see people coding for I2C slave devices. Everyone and their mom uses I2C to connect to sensors, for which the Arduino “Wire” library or “i2c-tools” on the Pi do just fine. But what do you do when you want to make the I2C device? [Pawel]’s project makes use of TinyWireS, a slave-mode SPI and I2C library for AVR ATtiny Arduino projects.
Here, [Pawel] just wanted a light sensor. But if you’re building your own devices, the sky is the limit. What’s the most esoteric I2C sensor that you can imagine? (And is it really the case that we haven’t seen an I2C slave device hack since 2010?)