Radio Fireflies

Summary

The Idea

In nature fireflies synchronize their blinking with an internal clock that they speed up slightly every time they see another firefly flash. The idea of this project is to take and expand on this simple mechanism using radio signals. We plan to start by replicating the synchronized blinking effect without having to send complex data through the transmitters. Later we plan to introduce variance in the signal length so that we can potentially modulate the color of the LEDs along with the synchronization.


Timeline

  • Week 1 Order Parts/Breadboarding
  • Week 2 Breadboarding/Design PCB
  • Week 3 Write Synchronization Code
  • Week 4 Assemble Individual Devices
  • Week 5 Implement Practical Applications
  • Week 6 Polish

Parts

  • Custom PCBs (Will order next week once designed)
  • ATTiny85 (Need 10-15 ordered)
  • 433MHz RF Receiver/Transceiver (Have 2 of each now, would like ~12 of each total)
  • Tri-Color LEDS (Have)
  • Switches (Have)
  • 9V Batteries + Leads (Have)
  • Buzzer (Need ~12)

How the Parts Connect Upd. 4/12

  • ATTiny85
    • This is our chip that we will program to send out a signal every clock cycle through the transceiver, and update every time it gets a signal through the receiver
  • Receiver/Transmitter/Transceiver
    • Currently we've created demo code that has one Arduino with the transmitter send a digital signal and blink its LED and another Arduino has the receiver and simply reads the digital information from the pin and blinks its own LED in response
      • This code uses no extra libraries and is very minimal and small
    • It works wonderfully when one Arduino is simply the receiver and one is the transmitter, but when one Arduino is both, it gets too many reads.
      • Positive: This is essentially the code we want to use if we have one master device and many devices that sync to the master.
      • Problem: The frequency of reads won't be very representative of what is happening around the device. If it gets reads at the same time as it transmits, then we don't want to increase the frequency anymore.
      • Solution: Don't read from the receiver at the same time as transmitting. Turn off receiver, transmit message, then turn on receiver.
    • Goal: Try to send analog messages and perfect the signal reading
  • All other hardware
    • This will be connected to the Arduino/ATTiny and will be digital or analog output. We are designing our PCB and will have a better feel for that soon.

Milestone Upd. 4/26

Completed:

  • Receiving parts - PCB, ATTiny, other components
  • PCB Design
  • Learning how to program the ATTiny 85
  • Surface mount soldering
  • Simple testing code


In Progress:

  • Soldering - to be finished in lab on Friday
  • Programming the algorithm - less than a week
  • Demo videos - just a thought for something to add to the presentation

Roadblocks

We fell pretty far behind due to my (Nick's) sickness, as I cough while typing this paragraph.

Other roadblocks were in designing the PCB. While we knew the basics of circuit making, we were not aware of the LDO that would cut the 9V voltage down to 5V. Also we did not know that a MOSFET would make the buzzer sound louder.