Close
0%
0%

The Pianist Octopus

play a small toy keyboard that will reproduce musical melodies originally born as Nokia ringtones

Similar projects worth following
I thought about an automated solution composed of a small robot that will play the toy keyboard for us. The melodies we have chosen are not any audio files but, for practical purposes, I chose the ringtones developed by Nokia and defined as RTTTL “played” by the manufacturer’s cell phones.
My robotic platform, which is to be applied at the keyboard and adapted to its shape and keys, is composed of a “brain” based Fishino Uno board (a variant of Arduino board), and an actuation system made with Octopus driver.
Tones are handled by a sketch specifically created for Fishino Uno board, while physical control of makes use of an electromechanical system composed of 24 servomotors managed by two Octopus shields to which the eight tentacles of three jolly 3D-printed PLA red octopuses are connected, actioned by the servos through a simple but precise leverage mechanism.

The whole structure necessary to sustain the 24 tentacles and host the just as many servomotors (each one equipped with an arm screwed on the small shaft using the provided screws), and the electronic boards (i.e. the frame…) has been designed using Google SketchUp and 3D-printed using PLA; the actual frame can be printed using the STL file. Then, you have to apply the metal details on the frame which are needed for assembling the various parts such as the tentacles fulcrum; more precisely, the frame is made of several parts (edges, lower junction element, front cross piece…) to be screwed together.

Each servo activates a tentacle (this also has been 3D printed and the STL file is available on our website along the other file for the project) through a conveniently shaped rod obtained by straightening a 0.9 mm stainless steel wire. The wire is then bent over in order to attach both on the servo shaft end and on the home provided for the corresponding tentacle.

Since it is possible that the keyboard will move around during the operation due to pressure applied by the tentacles, it is recommended to attach the frame to the keyboard itself, for instance, you can use some right-angled metal strips attached to the bottom of the musical instrument, or you can place and screw the mechanical section to a wooden or plastic base plate and, once determined the optimal position, attach it to the keyboard with conveniently 3-D printed small square that are going to be screwed on the baseplate. 


Key functions

I can see how to use it and therefore how i can play our special instrument. Below, i describe keys functioning.

  • Mem/PLAY: it allows to start execution of the tone in the position displayed. If held when turning on, it allows entering in “servo position setting mode”.
  • Plus: it allows to move to the next tone. In “servo position setting mode” it allows modifying the tentacle position in order to press the key more or less. If held when turning on, it allows entering TEST mode.
  • Minus: it allows to move to the previous tone. In “servo position setting mode” it allows modifying the tentacle position in order to press the key more or less. If held when turning on, it allows entering TEST mode.
  • Exit/STOP: it allows to interrupt tone execution. If pressed in “servo position setting mode” it allows to exit that mode and go back to the main screen.
  • R: it allows to reset and/or reboot the system.

Reset of all servos’ positions

Before activating the control lever related to the tentacle on the pivot of each servo, we have to place all the servos at half run (central position, -90°); this operation is necessary in order to make sure that once the servos are brought to zero, all the arms are in resting position. In order to reset position of all the servos, we have to press and hold the Exit/STOP key and then power on; the display will show the message “reset in progress”, after that all the servos’ pivots will get in central position and the display will show “reset successfully”. Now release the key. After that, apply the respective lever on each pivot so that the related tentacle will stroke (without pressing) the corresponding key.

Programming mode

Let’s take a look at how to program pressure position of the key corresponding to every single tentacle. Each servo must be assigned a position that allows pressing the signed key.

Track selection/ PLAY / STOP

When the system is on standby, the display will show the message “track selection” followed by the actual track number (of the ringtone). In order to start execution of the track, press PLAY (the display will show for instance “Play track n° 1); to stop reproduction press STOP.

Firmware

Where you will find the ringtones to play and the instructions to do so. The system provides for 30 ringtones to be played: this is defined in the instruction ...

Read more »

STL Octopus.zip

File STL for Project

x-zip-compressed - 3.48 MB - 06/14/2019 at 08:33

Download

Octopus Pianola.zip

Libraries and Sketch

x-zip-compressed - 49.84 kB - 06/10/2019 at 08:42

Download

  • 1 × Fishino UNO it is a board with ATMEGA328 which is programmed via Arduino IDE
  • 2 × Octopus shield shield for Arduino which permit to manage until 16 servos
  • 26 × mini servo mini servo 9g - 6V - 160°
  • 1 × Power supply 6-7.5Vdc 2A
  • 1 × Display I2C display 16x2 char

View all 6 components

  • 1
    Mechanical section

    The whole structure necessary to sustain the 24 tentacles and host the just as many servomotors (each one equipped with an arm screwed on the small shaft using the provided screws), and the electronic boards (i.e. the frame…) has been designed using Google SketchUp and 3D-printed using PLA; the actual frame can be printed using the STL file. Then, you have to apply the metal details on the frame which are needed for assembling the various parts such as the tentacles fulcrum; more precisely, the frame is made of several parts (edges, lower junction element, front cross piece…) to be screwed together.

    Each servo activates a tentacle (this also has been 3D printed and the STL file is available on our website along the other file for the project) through a conveniently shaped rod obtained by straightening a 0.9 mm stainless steel wire. The wire is then bent over in order to attach both on the servo shaft end and on the home provided for the corresponding tentacle.

    Tentacles can sway in order to follow the movement imposed by the servos; for this purpose, each tentacle, placed side-by-side with the others, is hinged on a 4 mm metal rod.

    Length of the rods is not the same but must be determined in each case based on the distance between the servos arm and the base of the actuation lever of the corresponding tentacle, where all the mechanics on one side is shown (the right part of the servos and the corresponding support is missing).

    This figure shows the details of how the rods attach to the base of tentacles, the prototype photos can explain better than anything how the mechanical structure is assembled which, once finished, must be mounted near the keyboard, on the front side, so that each tentacle can press one of the keys.

  • 2
    Programming mode

    Turn on the keyboard, press and hold Mem/PLAY key and then power on; the display will show the message “programming”. 

    Release the key. The interest server will be the first from the left (the first note of the first octave); the display will show the message “programming servo n°1”.

    Press the + or – key so that the related tentacle will push on the corresponding key just enough to play the note. Once done, press Mem/PLAY key once again to move to programming the next servo.

    When you reach the last servo, press Mem/PLAY key to end programming (the display will show the message “Programming Complete”).

  • 3
    System TEST

    Now you have the check if all the tentacles correctly press the assigned key, in order to do so you have to:

    • Turn on the keyboard, press and hold the + or – key, then power on; the display will show the message “Test”.
    • Release the key.

    Now, the tentacles will be activated in sequence, from left to right, in order to verify correct pressure of all the keys assigned. At the end of the test, the system will go back to the mainstream “Track selection”.

View all 3 instructions

Enjoy this project?

Share

Discussions

AVR wrote 7 days ago point

you need to try this out on a B. Meowsic keyboard !!!!!

  Are you sure? yes | no

AlexC wrote 06/05/2019 at 16:12 point

No video? Does it work?

  Are you sure? yes | no

Alessandro Sottocornola wrote 6 days ago point

You're right, I hope I can make a video soon

  Are you sure? yes | no

Daren Schwenke wrote 05/31/2019 at 19:57 point

This project needs a video, like... now.

  Are you sure? yes | no

Alessandro Sottocornola wrote 6 days ago point

You're right, I hope I can make a video soon

  Are you sure? yes | no

Elliot Williams wrote 05/31/2019 at 19:31 point

Whoah! That's amazing.

And coincidentally enough, my son has that exact cheesy piano.

I need more servos.

  Are you sure? yes | no

Daren Schwenke wrote 05/31/2019 at 19:52 point

That was my first thought as well.  I need more servos.  :)

  Are you sure? yes | no

AVR wrote 7 days ago point

get your son the B. Meowsic one too

  Are you sure? yes | no

tormozedison wrote 05/26/2019 at 05:58 point

Where to find STL files for this project? Thanks.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates