Posts

Showing posts from 2016

Play table

Image
Using proximity sensors for playing midi tones combined with LED visualization Description The goal of this project was to create a table-sized device equipped with multiple proximity sensors capable of playing MIDI tones. Each sensor is accompanied by LEDs that indicate the distance of the user's hand above the table. This interactive table can be used by one or more people simultaneously. Hardware Setup I began with a cardboard prototype to test the sensors and the underlying logic. Afterward, I ordered a custom plottered sticker with a design which was painted with bare conductive paint. I drilled holes and connected the touchboard to seven Arduino Nanos, each controlling 13 LEDs. Additionally, I incorporated two potentiometers: one for volume control and another for changing the note setup. Programming The programming task was divided into two parts: Master Program (Touchboard): Reads values from the proximity sensors and sends messages to the slave Arduinos. Sl

Creating Fake SMS with Android

Image
I was curious about how challenging it would be to create fake SMS messages, so I decided to make a small research. I came across a straightforward app that allows users to create fake SMS messages. The app's interface is user-friendly, letting you set the message type, date, and time. However, to use this app, you need to set it as the default messaging application. At this point, I was confident that it was possible to achieve this without root permissions. Initial Exploration My first approach was to send a fake intent to simulate a new SMS arrival. Despite my efforts, this method didn’t work. Many sources suggested using the android.provider.Telephony.SMS_DELIVER intent action, which is the system intent action for broadcasting SMS. However, starting from Android 4.4 (KitKat), only the default messaging app can receive this intent, and broadcasting it is restricted to system applications. Additionally, permissions for reading and writing SMS are restricted to the default messa

Self playable game on smartphone

Image
Hardware I recently assembled a Lego phone holder that rotates along the Y-axis (the longer side of the phone). The holder's end is attached to a servo motor, which is connected to an Android smartphone via USB OTG through a motor module. This motor module can control up to 24 servo motors and operates at 5 volts. Software The motor module has its own built-in protocol, which handles rotation and speed, with parameters separated by newline characters. The second part of the project involved developing an Android application to communicate with the servo module using this serial protocol. I based the application on an example of USB serial communication with Arduino, adapting it to work with my device. Game For this project, I chose a game I developed about a year ago. It's a simple game where the accelerometer controls a rocket that must navigate through gates. Tilting the device left or right adjusts the rocket's position, and the goal is to pass through as many gates as p

Wall Clock Made with AVR MCU and LED Display

Image
Idea The goal of this project was to explore using a numeric LED display with a microcontroller (MCU). To make it more engaging, I decided to create a wall clock that displays time both digitally and analogically. I chose the Atmega16L MCU for its 26 I/O pins—12 for the numeric display, 12 for the 2mm LEDs, and 2 for the buttons. The clock features two buttons: one to add hours and another to add minutes. The 2mm LEDs around the edge represent seconds, while the numeric display in the center shows hours and minutes. Display I sourced my display from eBay without a datasheet, but the pin configuration is typically similar across different displays. The four 7-segment digits are controlled by 12 I/O pins—each digit consists of 8 segments (7 for numbers and 1 for the dot). The remaining four pins are used as grounds for each digit. To illuminate all four digits, the MCU must rapidly switch between them. Timers Timers are fundamental counters in microcontrollers. The ATmega16 features two