Skip to main content

Laser pointer arm

Overview

Not really an audio project, but still fun. The entire purpose of  this project was to make a silly cat toy.

It uses a joystick to control two sg90 servos to move around a laser pointer. This is actually a pretty easy project to setup. The joystick is essentially just two potentiometers, one controls the x axis servo, the other controls the y axis. All you need to do is read the analog values from each of the potentiometers, and use the Arduino map() function to map them to the angles of the servos.

This has two modes, on where you control the servos with the joystick, and another where the laser randomly moves around. For the random mode, I thought that just mapping random values directly to the servos would make it too erratic.  Instead of implementing  the random mapping in that way, I made an array of coordinates. This array essentially broke the throw of the laser into a 3x3 grid. Then different positions are randomly chosen from this array, and the laser is set to the chosen positions.

There were a couple of other features I added, a play/pause button for the random mode, a speed control, which controls how fast the laser moves in the random mode, and also a button which controls the width of the throw of the laser.

Code


 

Comments

Popular posts from this blog

4 Channel Audio Switcher

Overview The purpose of this project was as a test to see if the 4051 mux would be usable in audio switching. I've been designing a programmable guitar pedal switcher and used this as a test project to see if there were any fatal issues with using them for this purpose. I also had some attiny85s around and hadn't found a project for them. Being able to use two pins to control the select lines of 3 muxes was a perfect use case. In a future iteration I'll try the 4052 mux, the only reason I didn't use one this time is because I didn't have any, and I have heaps of 4051s lying around. Bill of Materials Attiny85 3 x 4051 Multiplexers 2 x Momentary buttons 4 x Leds 5 x Stereo sockets 1 x 7805 Voltage regulator 2 x 10uF electrolytic capacitors 3 x 1k resistors Code The code for this is pretty basic, and self explanatory, with the attiny only using 2 inputs and 2 outputs. Each of the buttons either increments or decrements the current channel. Since ...

Bluetooth Power Strip

Overview The reasoning for starting this project was two-fold, firstly, its cool being able to turn your lights on and off with your phone. Secondly, I wanted to have an excuse to learn how to make mobile apps for controlling electronics projects. This post will just cover the hardware aspects, and use an already available Android Bluetooth serial app. The creation of a specific app will be covered in a future post once it is done. This was the app I used for getting everything up and running.  https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=en_NZ&gl=US Electronics The electronics for this project are extremely simple, they just consist of an Arduino nano, an HC-06 Bluetooth module, and a 4 channel relay module. Four bare power outlets with screw terminals are also required to actually plug stuff in, although depending on your application you could just wire whatever device you want to control directly to the relay.  The HC-06 m...

Serial Monitor

 Overview I've started to learn C# to make mobile apps with Xamarin forms for controlling some of my electronics projects. To familiarize myself with the syntax and idiosyncrasies of C# I decided to make a basic serial monitor desktop app using Windows Forms. I basically modelled it of the serial monitor included in the Arduino ide, and tried to add small improvements where possible. Code Main steps Layout the GUI Establish serial reading Establish serial writing Improve UX GUI Layout In the past I've made small GUI programs with python and tkinter, so using the Windows Forms design editor was a welcome change. It was very easy to get a basic interface up and running without having to delve too deeply into the code. It was very much a case of dragging and dropping the relevant parts onto the window in the designer and attaching callback function to the relevant events. Serial communication The C#  serial port library is pretty simple and easy to use. All it needs is a COM port...