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
PiCasso Design Challenge
  • Challenges & Projects
  • Design Challenges
  • PiCasso Design Challenge
  • More
  • Cancel
PiCasso Design Challenge
Blog PiCassoTizer - The Journey - Blog 10
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: dougw
  • Date Created: 31 May 2019 5:15 AM Date Created
  • Views 1402 views
  • Likes 14 likes
  • Comments 8 comments
  • doug wong
  • picassotizer
  • picasso design challenge
Related
Recommended

PiCassoTizer - The Journey - Blog 10

dougw
dougw
31 May 2019

The PiCassoTizer project is one of those projects where you attempt something completely different without any assurance of success, but you know it is going to at least be a fun learning experience.

Applying technology to art sounds risky for someone who is not an artist, so I set out to make a technical tool that would allow art to be created. Regardless of the quality of the art, the tool could be used to create art at whatever level the artist can muster.

The system was developed in stages to try and get subsystems working that I had never tried before:

  • I had never attempted to do any kind of image processing with a Raspberry Pi, so connecting a camera and performing finger or pointer recognition on captured images was a whole new experience for me. That aspect of the project turned out very well. There were some useful examples on the web that helped get the basics working.

image

  • I had never used I2C with a Raspberry Pi, but again there were some relevant examples on the web that helped get started with sending data to an I2C DAC. The DAC creates an analog output corresponding to finger position in the camera field of view. After problems obtaining some DACs, this part of the project turned out fully successful.

image

  • I had never figured out how to send absolute mouse HID position commands before, and there were differences in operation on a Raspberry Pi versus a PC, but I built an X-Y slide pot arduino mouse to help troubleshoot this part of the project and eventually got good absolute control of mouse position, which was crucial in allowing the finger position to dictate mouse position:

image

This X-Y slide controller worked so well, and was so unique, I used it to create several pieces of art:

imageimage

  • In order to enable precise drawing control, I designed a 3D printed pointer that could be used instead of a finger. I added mouse buttons to the pointer so that full mouse control would be available in one device. To provide even better control I added a 100% debounce circuit to the mouse buttons, which provided ultra responsive buttons with no undesired extra button pushes from switch bounces.

image

All the subsystems worked very well, but this provided a false impression that putting the whole system together would be easy and work well.

  • The first issue I ran into was translating the coordinate transformation and trigonometric calculations into code would be easy. For some reason, it is much easier to make a mistake when writing a long equation in a line of code that it is when writing it on a piece of paper. I did finally get it all sorted out, but I am going to remember this lesson.
  • Another issue that I was not expecting was wiring up the simple debounce circuit - I made several mistakes and had to rework the wiring several times. I didn't damage anything, but after designing a nice long string of PCBs with no errors, it was pretty embarrassing to make so many trivial mistakes in manual wiring. Maybe next time I will just make a PCB - it would be much smaller.

image

  • a fairly major issue I had was underestimating how much infrastructure I would need to bring up the full system. The system needed 5 computers which in turn needed 4 keyboards, 4 mice and at least 4 displays, and they all needed to  be worked on essentially at the same time. I was barely able to manage all this and I had to constantly switch which display was connected to which computer. The only way I could manage it was to use my PC "desk" and displays which are not well set up for lighting and blogging.

image

  • The full system ran into noise issues and there wasn't enough time to really sort them out. Part of the problem was the old webcams I had to use - one of them was much worse than the other and since the system needed both, the overall result was dictated by the worst performer.
  • I had significant problems with receiving parts I ordered. (not the fault of element14)
    • The DACs never arrived and I had to find a second source at considerable cost increase. This delayed the project.
    • The webcams never arrived. This was a huge issue that really degraded the final result of the project. It adversely affected the schedule, the geometry, the aesthetics and the performance. When it looked like they just wouldn't ever get here, I tried to buy webcams locally and was surprised that all the usual stores where you would expect to find webcams had no stock. I guess there isn't much of a market for them anymore.
  • I discovered that not all Raspberry Pi cases are created equal. I wanted to have a fan in the case and only one of the cases I collected came with a fan. Fortunately I had purchased a selection of fans earlier to deal with this type of requirement, and I actually had enough fans that fit the specific cases. However 2 of the fans are annoyingly loud.
    • The case that worked the best for this project was the clear case that came as part of the challenge kit. The fan I found for it was pretty quiet, although it is still audible. The opening to access the expansion connector was perfect.
    • The aluminum case I got looked great, but the holes didn't line up perfectly - I had to ream one of them and the fan cover is pushing on the SD card. There is a slot to get wires into the expansion connector, but it is a pretty convoluted path and it would be hard to maintain reasonable aesthetics.
    • The Nintendo style case I got was cute, but it only had tiny self-tapping screws to hold it together. It had to be taken apart a few times to run wires as there was no real access to the expansion connector, and this was very risky with such small screw purchase.

What would I do differently next time?

  1. I think I would use PiCams maybe the PiCam Noir with IR lighting. The reason I didn't use them initially was because they have a narrow field of view, but I now think I could work around that issue. They have an advantage in having lower latency than webcams, which would make the system much more responsive.
  2. I might try to avoid DACs and make the arduino into a slave I2C device, although the reason I didn't try this the first time was I couldn't find a good example - it would need to be a slave to two masters.

Summary

This project was lots of fun.  Getting all the subsystems working involved learning new things and provided lots of satisfaction when they were successful.

I got to design some electronics, design some mechanical parts, design some software, make some systems work, create some art, and interact with forum members.

That is precisely what I wanted from this project.

Oh, and I scored a nice kit of parts from element14 to help implement the design … and there was a very nice finisher prize as well - pictured in the comments below....

I am happy to have had the opportunity to participate in this different type of design challenge.

Thanks element14 and all the members who tuned in to watch or comment on the work.

 

 

Relevant links:

PiCasso Design Challenge

 

PiCassoTizer - Introduction - blog 1

PiCassoTizer - Electronic Parts - Blog 2

PiCassoTizer - Finger Detection Image Processing - Blog 3

PiCassoTizer - Absolute Mouse Position - HID Simulation - Blog 4

PiCassoTizer - The Snowman Smiles - Blog 5

PiCassoTizer - Pi Expanse - blog 6

PiCassoTizer - The Wand - Blog 7

PiCassoTizer - The DAC - Blog 8

PiCassoTizer - Electronics Functional Test - Blog 9

PiCassoTizer - The Journey - Blog 10

Finisher Prize

PiCade Build and Test

  • Sign in to reply

Top Comments

  • dougw
    dougw over 6 years ago +6
    I received a very nice finisher prize package today that included a Pimoroni PiCade , a Raspberry Pi 3B+ Raspberry Pi 3B+ , an Adafruit Perma-Proto Breadboard Adafruit Perma-Proto Breadboard (eminently…
  • shabaz
    shabaz over 6 years ago +4
    Hi Doug, Excellent project, and it was really impressive seeing it all coming together! And despite any challenges, you worked around them to continue your art creation, instead of like stereotype artists…
  • dixonselvan
    dixonselvan over 6 years ago +2
    Congratulations dougw on successfully completing what you had desired. I couldn't follow your progress, but I will go through all the blogs when I find time. Because the project sounds interesting and…
Parents
  • dougw
    dougw over 6 years ago

    I received a very nice finisher prize package today that included a Pimoroni PiCade, a Raspberry Pi 3B+Raspberry Pi 3B+, an Adafruit Perma-Proto BreadboardAdafruit Perma-Proto Breadboard (eminently useful connection pattern) and even a Drawdio iron-on patch:

    image

    An awesome finisher prize, and don't forget the great challenger kit as well.

    Thank you element14.

    I will make a blog when I put the PiCade togtether.

    The blog is here:

    PiCade Build and Test

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 6 years ago in reply to dougw

    Well earned Douglas.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • DAB
    DAB over 6 years ago in reply to dougw

    Well earned Douglas.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
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