Project:PizzaPrinter: Difference between revisions
m (→Why?) |
(→Why?) |
||
Line 219: | Line 219: | ||
**** Have the ingredient containers removable from the machine, no need to directly handle the food once filled up, just shove the container back in the fridge. Or build that part of the machine inside a fridge??? --[[User:Nigle|Nigle]] 16:01, 2 August 2010 (UTC) | **** Have the ingredient containers removable from the machine, no need to directly handle the food once filled up, just shove the container back in the fridge. Or build that part of the machine inside a fridge??? --[[User:Nigle|Nigle]] 16:01, 2 August 2010 (UTC) | ||
** Would the machine be automagically cleaned between pizza types (where people have allergies, aversion to eating items that have touched meat products)? [[User:Phae|Phae]] 16:23, 2 August 2010 (UTC) | ** Would the machine be automagically cleaned between pizza types (where people have allergies, aversion to eating items that have touched meat products)? [[User:Phae|Phae]] 16:23, 2 August 2010 (UTC) | ||
***Exceptionally hungry hackers will gladly lick it clean | |||
** Could have a separate meat dispensing mechanism to avoid crosscontamination | ** Could have a separate meat dispensing mechanism to avoid crosscontamination | ||
* Improves health and safety in the space by encouraging people not to hack on an empty stomach | * Improves health and safety in the space by encouraging people not to hack on an empty stomach |
Revision as of 19:18, 15 June 2011
PizzaPrinter
| |
---|---|
QR code |
Summary
This is a project to create a machine that is capable of taking a pizza specification in some format, and converting it into an actual pizza, before baking it.
This will be split into a few components:
- Conveyor system - to move the pizza back and forth during production, and to transport it into and out of the oven
- Liquid dispenser - for dispensing tomato sauce or other liquid sauces (BBQ sauce, etc)
- Slicing dispenser - for dispensing slices of a stick of ingredient (salami, sausage, pepperoni)
- Cup dispenser - for dispensing small quantities of loose ingredients (grated cheese, mushrooms, onions, peppers, etc)
- Dispenser mount - for mounting one or more dispensers on, to provide movement across the width of the pizza on the conveyor
- Oven - to cook the pizza
- Controller - to talk to all the above as needed and orchestrate pizza creation given a set of instructions for what the end result should be
Possible designs
- Deighton Is JimM's first proposed design.
- Desired capability (with thanks to tomw for the link)
System Planning
Conveyor
The conveyor needs to be accurate, bidirectional and heat-resistant (part of it will be parked in an oven for the cooking stage).
Initial proposal: 2 or more steel wires pulled tight around 2 or more metal rollers, motorized by a stepper motor on one of the rollers. The motor roller may need to be rubberized to get enough traction, but this can be done on the 'cold' end of the system without issue.
Structure would be easy enough to fabricate using box section steel or similar.
- Would these be affordable enough? --Nigle 16:19, 2 August 2010 (UTC)
- Possibly. £70ish for a proper manufactured metal belt makes some sense in my mind. Probably easier to work with, too. --James Harrison 18:28, 2 August 2010 (UTC)
Liquid dispensers
The liquid dispensers need to be able to dispense a controlled quantity of liquid from a decent-sized feeder tank- preferably taking up liquid via a short hose.
- Peristaltic pumps? Commonly used in bio-medical applications, only requires cleaning and sterilisation of tube internals.
- Only ones I could find were ludicrously expensive, but I'm sure it could either be home-made cheaper or I'm not looking in the right places. --James Harrison 15:54, 2 August 2010 (UTC)
- They can be very expensive, but they are extremely controllable and have been calibrated etc. We could probably knock together something much cruder that'll be good enough. The point is the design is good for food (and medicine) because only the internals have to be cleaned rather than pump internals. -- Ciarán
- Agreed on the concept - makes sense to keep things as clean as possible - should be fairly easy to make with a few rollers attached to a printed/metal frame on the end of a motor. --James Harrison 18:28, 2 August 2010 (UTC)
- You can apparently make one with a laser cutter http://www.thingiverse.com/thing:167 --Eb4890 17:03, 26 October 2010 (UTC)
- This one looks 300x easier to make though http://www.thingiverse.com/thing:5265 --Ciarán
- Could also use a suction placement - mostly good for pick & place salami etc. but might also suck liquid up a short tube then blow it down : able to use the same mechanism for both solids and liquid dispensing.
- I have the motor mechanism (with gearbox and speed control) for a large peristaltic pump. It needs the roller and tube mechanism building. - artag
Slicing dispensers
The slicing dispensers need to be able to carry and slice a stick of ingredient (stick of salami, smoked sausage, etc) and dispense the slice onto the pizza.
- Possibly easiest to get an off-the-shelf meat slicer, and modify it for automatic feeding. --James Harrison 15:54, 2 August 2010 (UTC)
- Muz suggested using a wire to pull across the face of the stick as an alternative - needs more research --James Harrison 18:28, 2 August 2010 (UTC)
Cup dispensers
The cup dispensers need to be able to dump a controlled amount of loose ingredients onto the pizza, preferably not all in one heap, like grated cheese or diced peppers. The ingredients will be fed into the top of the dispenser loose, and should have enough for ~10 dumps in the storage compartment.
- Alternative - grater-based dispenser for cheese would make sense, but limits you in terms of any other ingredients. --James Harrison 18:28, 2 August 2010 (UTC)
- Alternative - some sort of belt sander grater thing, it'd neatly spray the grated bits all over the pizza too
--I have my doubts about "neatly spray". Wear eye protection.
Dispenser mounts
The mounts will have to support a decent amount of weight and be able to move that weight across the width of the conveyor so that dispensers mounted on the mounts can be accurately (ish) positioned.
There will need to be at least 3 of these mounts - one for tomato, one for cheese, one for pepperoni - to get a 'complex' pizza cooked.
Oven
Should be doable with cheap ovens from Lidl, maybe toaster heater elements, to create a pizza-sized box of heat with two open sides.
Bonus points for heat containment with flappy doors on each side, maybe even servo-operated doors.
Pizza API
Pseudo code for interacting programatically with the Pizza Printer.
There are two primitive objects:
- Printer object
- Pizza object
Both are independent but to actually print a pizza, a printer object is required.
Printer object
- Methods
new
Instantiates a new printer object.
Printer pr = new Printer();
list
Returns integer array with ids of available printers.
Printer pr = new Printer(); int arr[] = pr.list(); for(int i=0; i<arr.size(); i++) print "Available pizza network printer id = " + arr[i] + "\n";
bind
Bind a printer object to a printer id. If called with no argument, returns printer id printer object is bound to, if any.
pr.bind(printerID)
queue
Returns integer array with pizza ids waiting in queue.
Printer pr = new Printer(); pr.bind(printerID); int arr[] = pr.queue(); for(int i=0; i<arr.size(); i++) print "Pizza id = " + arr[i] + " is the " + i + " in the queue for " + printerID + "\n";
Pizza object
- Methods
new
Instantiates a new pizza object.
Pizza pz = new Pizza();
printer
Bind a pizza object to a printer object. If called with no argument, returns printer object pizza object is bound to, if any.
Pizza pz = new Pizza(); Printer pr = new Printer(); pr.id(printerID); pz.printer(pr);
id
Returns pizza object id.
int iPizzaID = pz.id();
layers
Returns string array with canonical pizza layers.
Pizza pz = new Pizza(); string arr[] = pz.layers(); for(int i=0; i<arr.size(); i++) print "Pizza layer " + i + " = " + arr[i] + "\n";
add_layer
Adds a layer to a pizza object.
Pizza pz = new Pizza(); pz.add_layer('crust'); pz.add_layer("sauce"); pz.add_layer('mozzarella'); pz.add_layer('tomato'); pz.add_layer('oregano');
Puts pizza object in printer queue.
pz.print();
ready
Returns boolean value of pizza print status.
if(pz.ready()) print "Pizza " + pz.id() + " is ready at printer id " + pz.printer() + "\n";
Examples
// Instantiate pizza object Pizza pz = new Pizza(); // add layers pz.add_layer("crust"); pz.add_layer("sauce"); pz.add_layer('mozzarella'); pz.add_layer("aubergine"); // throws warning, no aubergines available. pz.add_layer("tomato"); pz.add_layer("oregano"); pz.print(); // throws warning, pizza not bound to printer // Instantiate printer object Printer pr = new Printer(); // bind to printer pr.bind(printerID); // bind pizza object to printer object and print pz.printer(pr); pz.print(); // poll status while(!pz.ready()) ; if(pz.ready()) print "Pizza id " + pz.id() + " is ready at printer " + pz.printer();
Why?
Because:
- Pizza is delicious!
- Potential extra source of income for the space - £15 to print a pizza is on a par with Dominos, ingredients are cheaper by far, users get nice pizza made on-site and fresh with the added bonus of being able to watch robots building and cooking their pizza
- If you're selling it, there's a duty of care, so need to avoid food poisoning Ms7821 14:34, 2 August 2010 (UTC)
- there's a duty of care whether you're selling or not. But if you're selling, there could arguably be implied consumer protection terms, too.
- Yes, I didn't meant to imply there wasn't one otherwise, although if you're selling it there's a far clearer responsibility. My point was more that it would be better to avoid doing it for promotion - it's just something cool for us to use. Ms7821 19:54, 4 June 2011 (UTC)
- Here's a timely example of what happens when you look too commercial when food's involved.
- This shouldn't be a big deal, really - you load it with ingredients before cooking, back in the fridge afterwards - so long as we keep track of use-by dates it should be fine. Maybe get some gloves for food handling to avoid contamination. --James Harrison 15:49, 2 August 2010 (UTC)
- Have the ingredient containers removable from the machine, no need to directly handle the food once filled up, just shove the container back in the fridge. Or build that part of the machine inside a fridge??? --Nigle 16:01, 2 August 2010 (UTC)
- there's a duty of care whether you're selling or not. But if you're selling, there could arguably be implied consumer protection terms, too.
- Would the machine be automagically cleaned between pizza types (where people have allergies, aversion to eating items that have touched meat products)? Phae 16:23, 2 August 2010 (UTC)
- Exceptionally hungry hackers will gladly lick it clean
- Could have a separate meat dispensing mechanism to avoid crosscontamination
- If you're selling it, there's a duty of care, so need to avoid food poisoning Ms7821 14:34, 2 August 2010 (UTC)
- Improves health and safety in the space by encouraging people not to hack on an empty stomach
- I'll say that again: robots building and cooking pizzas
- Possible tie-in with local health clubs for people to work off the calories added?
- The Hackney Community College has a gym court, which is rolling distance away Ms7821 00:06, 4 August 2010 (UTC)