From c745cdfa95f38e45e3c5156ed48965ce32192bfa Mon Sep 17 00:00:00 2001 From: Jake <jake.read@cba.mit.edu> Date: Tue, 13 Nov 2018 21:14:43 -0500 Subject: [PATCH] writing --- README.md | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 34c50d5..1dd3ffe 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,32 @@ # Machine Building at the CBA -Hello! If you've landed here, it's likely that you're getting ready to design and build some equipment. This guide is part of the [MIT Center for Bits and Atoms'](http://cba.mit.edu/) ongoing machines-making-machines effort, wherein we seek to turn the universe into a deeply recursive heirarchy of robots building one another. +Hello! If you've landed here, it's likely that you're getting ready to design and build some equipment. This guide is part of the [MIT Center for Bits and Atoms' ongoing machines-making-machines effort](http://mtm.cba.mit.edu/), wherein we seek to turn the universe into a deeply recursive heirarchy of robots building one another. -Most machines are monolithic and static: they live their lives for one process, and are hard to modify for anything else. They tend to miss a lot of learning opportunities (i.e. they feed forward what might be fed back). They each communicate to the outside world in different ways, they hide their secrets, etc, etc. +Most machines are monolithic and static: they live their lives for one process, and are hard to modify for anything else. -Machines described here are *parametric configurations of object-oriented hardware* that can be assembled into *instances* of equipment, whose constitutent parts are free for future addition and modification. Machine controllers are *networked collections of input and output devices* that contain bare minimum state - high level planning and interface takes place within *virtual machine controllers* that are similarly easy to assemble, configure, and tune. +Machines described here are *parametric configurations of object-oriented hardware* that can be assembled into *instances* of equipment, whose constitutent parts are free for future addition and modification. + +Machine controllers are *networked collections of input and output devices* that contain bare minimum state - high level planning and interface takes place within *virtual machine controllers* that are similarly easy to assemble, configure, and tune. ### How To Play -Any kind of design is nonlinear and contradictory. To that end, this guide takes the form of an ordered list. +Machine Design / Robotics can be *basically* broken up into three fields: **Hardware**, **Electronics** (also 'hardware' to some people) and **Control**. -Here are the resources I've been putting together: +In the CBA Spirit, we figure everything should be modular, recomposable and parametric. -#### [openassemblies](http://openassemblies.com) +#### [Hardware - RCT Gantries](https://gitlab.cba.mit.edu/jakeread/rctgantries) -Links to examples of machines, to this page, to hardware, electronics, and software. +As in 'roller coaster tycoon' - we use roller bearings as guide elements. -#### [RCT Gantries](https://gitlab.cba.mit.edu/jakeread/rctgantries) +These are parametric linear axis that you can use to fabricate your own linear machines. The repo linked above has hardware documentation, parametric CAD models, and more explanation. -These are parametric linear axis that you can use to fabricate your own linear machines. +#### [Electronics - ATK - AutomataKit](https://gitlab.cba.mit.edu/jakeread/automatakit) -#### [AutomataKit](https://gitlab.cba.mit.edu/jakeread/automatakit) +This is a collection of 'endpoints' for the network that makes up our machine controllers. I.E. each motor, sensor, what-have-you on the machine is given one tiny controller. That controller is responsible for doing very simple things: turning motors about, running low-level feedback control, reporting sensor data, etc. Machine Controller themselves (see next link) are *assemblies* of these tiny controllers, which we coordinate over a network. -This is a header page for the set of networked hardware components we use to put machines together. It explains in some detail how the networking works, how commands are structured, etc. It can explain how to load firmware on to each of the endpoints. +That network protocol / etc is described in the link above, along with links to the currently-available hardware endpoints (and their repositories). -It also includes links to the project pages for each piece of hardware: +For machine week, you'll have four ATKStepper23's, two ATKBreadBoardBoards and one ATKRouter to hook it all up. - [ATKRouter](https://gitlab.cba.mit.edu/jakeread/atkrouter) - [ATKStepper17](https://gitlab.cba.mit.edu/jakeread/atkstepper17) @@ -32,10 +34,22 @@ It also includes links to the project pages for each piece of hardware: - [ATKBreadBoardBoard](https://gitlab.cba.mit.edu/jakeread/atkbreadboardboard) - [ATKBLDCDriver](https://gitlab.cba.mit.edu/jakeread/atkbldcdriver) -#### [Dataflow Machine Controller](https://gitlab.cba.mit.edu/jakeread/atkapi) +-------------------- + +#### [Control - RNDMC - Reconfigurable Numeric Dataflow Controller](https://gitlab.cba.mit.edu/jakeread/atkapi) + +'RUN-DMC' - get it? This is a piece of software that is designed to help you assemble higher level controllers from the modular pieces of networked hardware mentioned above. It serves a graphical programming interface, or can be used to write a regular old program (in javascript). +#### [Also This - Open Assemblies](http://openassemblies.com) + +This is just a place where I put links to everything. If you're ever trying to find something, go here first. + +# Going About Designing a Machine + +Any kind of design process is nonlinear / contradictory. To that end, this guide takes the form of an unordered list. + ## 1) Design I leave 'design' up to you, to save myself following the rabbit hole where I end up writing about it for too long. Look at [examples](openassemblies.com), do back of envelope maths (stiffnesses, forces, speeds, weights) etc, draw things with your hands, with your friends, have ideas, etc. -- GitLab