A project I am working on (RaspberryPi related)

Hi Everyone

I would love to get some feedback from people on a project I have been working on for quite some time now.

At this point I'd also like to say thanks to Crossroads, who was a big help with the PCB design.

This whole project is based on the idea that I find that the way people commonly treat technology a bit problematic. To my mom, her iPhone is magic. To her it is not a tool which she controls, but rather this magical box which does things, and she can react to them. You guys probably know what I mean.

Basically I would like to see the general population to be more mature about how they use their tech.

So what I am trying to create is a plattform, similar to tinker-forge, grove, gadgeteer etc.

The difference is we want to try to get people interested, who find stuff like arduino etc. too techie.

We are currently basing our design around the raspberry-pi. The idea however is to eventually become plattform independent - the system should work with beagleboards, pandaboards etc. Basically any computer which has sufficiant GPIO options.

The setup consists of an "interface board" with integrated WiFi (we call it the Base) which connects to the RaspberryPi. Then we create a system of smart modules (we call them Berries) - similar to shields with arduino.

I made a quick sketch some time ago, showing the setup:

The berries are "smart" and communicate digitally with the base. When initially connected an attiny sends out an ID and some basic instructions to the RaspberryPi. The RaspberryPi then knows how to "speak" to the Berry (I2C or SPI + various interrupt options), where it is connected and what its functions are.

On the software side, we want to create a "click and drag" programming environment (think pd, or MAX/MSP/Jitter). The software will load in a browser, so that the RaspberryPi does not need a display. You can program it using your smart-phone, tablet or computer. Once the RaspberryPi has identified which Berries are connected and where the software automatically displays all physical inputs and outputs available which you can graphically connect. (if you are not into graphical programming, you dont need to use it though... we want to try to have a fluid transition from graphical to text based programming, so if people want more detailed control, they are gradually introduced to "regular" programming)

We have not had much time to spend on the software yet, so things are still quite rough, but here is a processing demo I through together, to get a feel for what this might look like:

There are some pictures of hardware prototypes on my blog: fkeel.blogspot.com

Thats the basic Idea. Its all still in a very early stage. Some things we have worked out in quite some detail, others are still very rough.

One of the important factors which we are currently trying to figure out is what the actual device should look like. We plan on building a case, so that the whole thing is a "Device" rather than a pcb. We hope that this will lower the entry barrier for somebody completely unfamiliar with digital technology.

Thats sort of the basics. We just started a facebook group: BerryBase | Facebook
(please join if you are interested, it makes us feel like the work we are putting in this is actually worth something)

Website should be online in a week or so.

I would love some feedback to the general concept. I really value the opinions of the people in this forum.

Cheers

p.

fkeel:
The difference is we want to try to get people interested, who find stuff like arduino etc. too techie.

I can't begin to explain how humorous I found this concept. I am at a loss as to why folks think they can accomplish development (of any kind of tech) without basic left brain analysis. I admire the creativity of artists and others who create technology projects; but if the project was successful and new, they undoubtedly exercised the same sort of development methodology as a 'engineer type' developing much more complicated technology. The only difference is one of degree.

While I applaud the marketing (such as the Arduino) that lets people think they can implement their ideas without using the left side of their brain, I ultimately think it presents a wall to those who accept the premise and expect to 'create' as if the act was some sort of magic--I am far less bothered by those who view tech as magic and only want to use it. In the former case, the 'magic' belief serves as a barrier to understanding, while in the latter it provides no barrier to the user whatsoever.

The only time creation 'magic' seems to work is when someone else has done all of the left brain work to package the concept, and then the dreamer is not creating, merely copying. And don't get me wrong, copying can be a great way to learn, but even that requires the kind of left brain work that analysis and understanding entail...

fkeel:
I would love some feedback to the general concept. I really value the opinions of the people in this forum.

I joined your group because I am curious about where you'll will take your idea. I am mostly interested in how you end up walking the line between ease of use and ability to be generally useful. I would be glad to perform testing, and perhaps help with documentation.

my mom couldnt find the battery in her laptop, whats the advantage of her learning all this if she doesnt already want to

on the other side, I couldn't care less about the details of nuclear medicine, even if she made a lego brick verion, why would I be inclined to use it?

its not my thing

when she needs to find her battery she calls me, when I need a heart scan I call her.

Well, obviously our target group are people with an interest in tech. If I am not interested in learning something, it doesnt matter how easy you make the first step, I am not going to take it.

@wanderson. I dont think Arduino and similar platforms remove the fact that you have to do some thinking. It simply tricks you into thinking that you can do it, which is half the battle. I have had an interest in robotics and electronics since I was a little boy. However I grew up thinking I was bad at "sciency" stuff. It was only a couple of years ago that I found out about Arduino and thought "that seems manageable". And I tried it and figured out that I actually am good at it. My take home lesson from my own experience is: Sometimes it is enough to just not scare people away to get them to start doing awesome stuff.

Thanks for offering to pitch in. I may just come back to you on that, though there is still lots which needs to be done before that.

Aside from my personal background and approach to the project - what about the actual stuff we are doing? Plug & Play modules? Web-programming interface? Not cool?

Personally - I am also building this, because I want to use it myself. One of the things I am interested in is using micro-controller/arduino-style modules. For robotics you can then create situations where individual modules control real time functions, while the RaspberryPi might control the overall activity. (sort of like the Pi as prefrontal cortex and the controller modules as cerebellum & spinal reflexes etc.)

(ok, thats absolutely not the project I would give to my mom, but whatever.)

From the look of the programming environment shown in the video, it seems similar to LabVIEW. You may want to research that (unfortunately, it's a several-thousand-dollar piece of software, but you might get ideas.) Essentially, the only sequencing is where "wires" (which are like variables) go from one "block" (function) to another. Everything else is parallelised. That type of programming is called data flow, which I think is easier for non-programmers to visualize.

The problem with plug and play modules is they're really expensive, especially in terms of what they can actually do. Some may want to buy a $30 raspberry pi to learn, fewer would want to buy a $100 "base" (although you could probably significantly reduce that price if you remove wifi, since the pi already has ethernet), and even fewer would want to buy eight $30 "berries," where each one can only do something very limited. For that much money (pi, base, and 2 berries) one could buy a shiny new tablet.

You are overestimating the price (I hope) - it really depends upon how we handle production & how many units we initially produce. For the prototype we had costs of ~ $ 25 for the Base and ~ $ 15 for the Berries. ... however we assembled them ourselves, which I did not include into that price. On the other hand, if we order in bulk we will be able to drive the price down again, so it might just work out.

But you are right, if we reach a price like that, it will start to be silly.

I will check out LabVIEW. I am aware of various other data flow languages (like vvvv, pd and Max/MSP) ... I personally still have mixed feelings about them. In theory I really like them, but I have never found an environment I was comfortable enough with to stick with. My plan with our software is to keep it simpler than the ones I just mentioned, and have the ability to switch over to code view, if you want to do something more complex. Basically I want to be able to generate flow-charts from code and code from flow-charts.

I imagine every graphical node to be represented by a function. A newly declared variable would also be a node, and all other variables would be represented by lines.

This will or course require a more functional style of programming than the relatively imperative way that is used with Arduino.

But yeah - right now I am still mainly plugging ahead on the hardware side. All the software issues are still speculation.

Your project reminded me of this product I came across a while ago. That product is for simplifying the construction/programming of small robots, but it shares the same 'spirit' as your project--I believe.

fkeel:
You are overestimating the price (I hope) - it really depends upon how we handle production & how many units we initially produce. For the prototype we had costs of ~ $ 25 for the Base and ~ $ 15 for the Berries. ... however we assembled them ourselves, which I did not include into that price. On the other hand, if we order in bulk we will be able to drive the price down again, so it might just work out.

Well my thought process was that an arduino pro is $20, and that's nothing more than a microcontroller on a PCB (granted, they do give some money to the arduino team, but you'll need to develop your own software which will take time and money). I'm assuming the berries have a uC in them for i2c.

My guess on the base was from the arduino wifi shield which is $85. Again, if you remove wifi I'm guessing the price of an uno would be about right.

But, you know, if you've thought about the price and found it fine, I'm happy for you.

One other issue I just thought of: how are you going to deal with i2c address clashes?

fkeel, I like the concept and admire all of the work you've put into it.

My Raspberry Pi finally arrived two days ago and I had the time to get it connected and running last night. The first thing I wanted to know was how to interface this with my Arduino projects. I've done some searching and reading today and found someone has worked out SPI comm from the Pi to Arduino (MitchTech Tutorial), but not the other direction (that I'm aware of). There are different voltages to deal with and no buffers on the Pi pins, so apparently a wrong move could ruin the Pi.

I'm most interested in your hardware approach. Being able to connect the Berry Board and Berries would be excellent. I did find that Adafruit has produced this Raspberry Pi Prototyping kit that is well thought out.

But again, there are no voltage regulators or buffers built in, though plenty of room to add your own on the prototyping space.

Ease of connection, communication and integration between the Pi and Arduino is key for me. Then I can concentrate mostly on integrating with my projects and writing the code.

Good luck with your project.

Jake

BlueJakester:

The easiest/safest way to connect arduino to raspberry pi is to use a 3.3V arduino. That was all of the voltages are safe. The other option when using a 5V Arduino is to use a logic level voltage converter like:

^^^ Excellent! I'm still a newbie at all of this and everything I've built, bought and used in the last couple of months has been 5V. Thanks Wanderson!