element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Clustered MCUs
  • Challenges & Projects
  • Project14
  • Clustered MCUs
  • More
  • Cancel
Clustered MCUs
Blog The Dancing Birds
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Clustered MCUs to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: balearicdynamics
  • Date Created: 13 Oct 2018 9:06 AM Date Created
  • Views 5325 views
  • Likes 16 likes
  • Comments 26 comments
  • cluster
  • clusteredmcuch
  • micro:bit
  • smartphone
  • birds
  • arduino mega 2560
  • bbc micro:bit
  • advanced micro:bit projects
  • bluettoth
  • microbit projects
  • kitronik
  • dancing birds
  • microbit
  • advanced_microbit_projects
  • servo
  • angry birds
  • arduino
  • arduino mega
Related
Recommended

The Dancing Birds

balearicdynamics
balearicdynamics
13 Oct 2018
  • Intro
  • Hardware
  • Assembling the Structure
    • The Birds Platform
    • Reassembling the Musical Puppet
    • Wiring and Testing the Servos
  • Birds Control and Arduino Software
    • Testing the Servos in Place
    • Issues, Issues, Issues!
  • Software

Intro

The experiment I will illustrate aims to demonstrate that birds can be not always angry, but also can do something else!

Before reading how I have reached this goal, please enjoy seeing them laughing and dancing.

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

The question I will answer is what the birds do when are not angry?

image

Finding the answer to this question also demonstrates my theory, based on the hypothesis that birds can dance. So how is it possible to set up some birds (I have found four for my experiment) dancing in a comfortable, small ecosystem?

 

Hardware

I have captured four nice birds found at a cheap retail who sell any kind of strange things; I loved them as I saw them on the shop’s shed.

image

They are soooo nice, don't you think?

Then, I used: six micro servos from a pack of 10 bought on Amazon. I suggest not to use the super cheap ones as they tend to be unstable on some angle. As dancing is something complex, as well as sync six different servos, I have used an Arduino Mega 2560 to control the motion; many pins, good speed, and a reasonable amount of programming memory and RAM.

image

If the birds can dance, controlled by an Arduino Mega 2560, what else I can use to control the Arduino? It’s obvious! to control a microcontroller l can use... a microcontroller!

So I decided to adopt a BBC micro:bit to interface the Arduino Mega through the user; I should be able to control the micro:bit by myself, adding another component: a smartphone to interface the human (me) to the cloud of microcontrollers, using the Kitronik app available for free on the Android Play Store.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

To wire comfortably the micro:bit to the Arduino Mega I have used a Kitronik Edge connector , including a small experimental board to wire the four pins connected to the Arduino an power the micro:bit with the 3.3 VCC power from the Arduino pins.

imageimage

Assembling the Structure

The Birds Platform

Dance need music. I searched for something suitable for nice, small birds. A baby game with lights and sound was perfect to make them happy.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

After disassembling and removing the unneeded components I was able to power it with the Arduino, while the belly button of the toy to change the sound has been left to preserve the integrity of the puppet; a servo can press it just like a baby does, with a pleasant scenic effect.

imageimageimageimage

 

To build the whole scenario I have figured required six servos.

 

  • Four servos for the four birds
  • One  to change the music (the puppet belly button)
  • One servo to jump the birds

 

As I am recently doing in many of my projects, also the Dancing Birds scenery has been created with recycled materials, cardboard, and a hot glue gun. The dancing platform has been painted and decorated with some autumn leaves, as winter is coming...

 

{gallery} Creation of the Danging Birds Platform as fixing the servos

image

The brids rotating platforms and the top layer of the support

image

The support of the birds rotating platforms obtained by two layers of carboard

image

The birds on the cardboard rotating platforms, not yet fixed

image

Bottom of the birds support with the servos glued in place

image

Top support of the birds rotating platforms painted

image

Bird rotating platform with the servo support glued to the bottom

image

The birds on the rotating platforms fixed over the servos axes

image

The birds on the rotating platforms fixed over the servos axes

 

Reassembling the Musical Puppet

After preparing the wires to control the pupped from the Arduino it has been reassembled and screwed on a small wooden support, with a moving part to press the music changer belly button.

imageimage

image

Wiring and Testing the Servos

Before gluing the srovs inside the bird structure I have setup a breadboard and developed a small test software for testing

image

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Birds Control and Arduino Software

The documented software is available on GitHub: Dancing Birds

 

Testing the Servos in Place

The images below show in detail the servos disposition inside of the birds platform (bottom side)

imageimage

The four servos moving the birds steps to dance glued to the oscillating platform (bottom and top side views)

image

The round birds bases with the servo connector. Will be placed on the servo shafts of the floating platform with the birds fixed on the top side

 

image

The assembled birds on the floating platform, controlled by the four servos.

imageimage

The servo connected to the lever pressing the puppet belly button, bottom and top view (music changer)

imageimage

The servo moving the floating platform with the dancing birds (jump while dancing)

image

Full view of the bottom side of the dancing birds platform with the six servo in place.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Issues, Issues, Issues!

The original plan was to control the Arduino board with a BBC micro:bit through the I2C protocol. I spent some days trying to set up a good software strategy but this solution was then definitely excluded.

The logic of the communication between the two microcontrollers was too complex to be managed easily through a set of commands sent by the micro:bit (master) to the Arduino (slave) Commands should be checked continuously to interrupt already running tasks, depending on the user interaction.

There are many unused pins on the Arduino so the next approach has been creating a micro:bit board using the Kitronik prototype board and eight digital pins of the board corresponding to the eight buttons of the pad.

image

Again something went wrong and servos were not moving!

Testing the signals wit my Bitscope I saw something very strange and unexpected.

image

The observed effect on all the digital signals was something like a sort of self-generated PWM frequency, and any trying to change the logic state of the pins got not result.

After further investigation, I noted that the digital pins from 3 to 10 of the micro:bit shows this phenomen and are unresponsive when the micro:bit Bluetooth library is loaded.

The final solution I got working was using the four ping 13-16 of the micro:bit

I changed the Arduino software again, accordingly with this new hardware wiring: every one of the eight pad controls from the smartphone app generates a four-bits value between 0001 and 1000 (0x01 - 0x08) decoded as well by the Arduino as a specific control commmand.

 

The software on the micro:bit board has been developed in Java, easy to be converted to block editor.

It is necessary to load the micro:bit Bluetooth library (excluding the radio library loaded by default) to connect it to the smartphone. On the Android smartphone, I ran the Kitronik pad application, and everything was perfect.

The higher speed I was able to reach with this kind of communication was a command every 20 milliseconds but I had to introduce a series of delay in the critical tasks to compensate the time needed by the servos to accomplish the commands.

 

Software

Arduino sketch and micro:bit javascript sources are available under the Apache 2.0 license on GitHub: Dancing Birds

  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 6 years ago +5
    Hi Enrico, This is a really nice project. Amazing! This could be in shop windows, using touch controls through the glass maybe, for kids to control : ) They would have hours of fun. This project is really…
  • neilk
    neilk over 6 years ago +4
    Hi Enrico A super amusing project . Tough call on the BBC micro:bit issue with the Bluetooth Library - it has caught out out lots and lots of people, including me! Great that you cracked it and got the…
  • kk99
    kk99 over 6 years ago +4
    Hi Enrico, It is awesome project. Congratulations.
  • balearicdynamics
    balearicdynamics over 6 years ago in reply to neilk

    Thank you!

     

    Sounds related, maybe not directly but sure it has something to do with the protocol. My personal vision at the moment is that the micro:bit can do almost all but many things can't be done all together. Now I am involved on working for the Electronica talk but I don't know the word "surrender". So as every month I will produce a micro:bit project I will try again.

     

    Enrico

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • neilk
    neilk over 6 years ago in reply to balearicdynamics

    Hi Enrico

     

    I came across this today: https://github.com/lancaster-university/microbit-dal/issues/405#issuecomment-434619221

     

    It may have some bearing on the problems you were having

     

    Neil

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • BigG
    BigG over 6 years ago

    Wow what a creative project. Thanks for sharing and well done.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dixonselvan
    dixonselvan over 6 years ago

    Nice fun project balearicdynamics

     

    I liked the workaround for the button in the monkey’s belly! The birds also are interesting to watch.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • balearicdynamics
    balearicdynamics over 6 years ago in reply to Workshopshed

    Thank you Andy, sprungs give to the bird a certain autonomy...

     

    image

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube