CEB 3D Printer: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 7: Line 7:


Simple Animation (Gantry Design)
Simple Animation (Gantry Design)


<div style="text-align: center;">  
<div style="text-align: center;">  
Line 13: Line 14:


Simple Animation (Cable Design)
Simple Animation (Cable Design)


<div style="text-align: center;">  
<div style="text-align: center;">  
{{YoutubePopup|0HDd9J_Cc14|big}}
{{YoutubePopup|0HDd9J_Cc14|big}}
  </div>
  </div>
<u>'''Source Code:'''</u>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>page`1</title>
</head>
<body>
<br style="font-family: Georgia;">
<br>
<br style="font-family: Georgia;">
<table style="text-align: left; width: 100%; height: 465px;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr style="font-family: Georgia;">
<td
style="vertical-align: top; width: 482px; height: 33px; color: rgb(0, 0, 102); background-color: rgb(204, 204, 204);">
<div style="text-align: center;"><big><big><span
style="font-style: italic; font-weight: bold;">Pseudo Code</span><br>
</big></big></div>
</td>
<td
style="vertical-align: top; width: 551px; text-align: center; height: 33px; font-weight: bold; font-style: italic; color: rgb(0, 0, 102); background-color: rgb(204, 204, 204);"><big><big>Arduino
Code</big></big></td>
</tr>
<tr>
<td
style="vertical-align: top; width: 482px; height: 424px; background-color: rgb(237, 237, 237);"><small><big><span
style="font-weight: bold;"><big>DECLARE VARIABLES &amp; FUNCTIONS</big></span></big><br>
<br>
Initialize Output Channels <br>
// Tell microcontroller which pins are output<br>
Initialize Input Channels<br>
&nbsp;// Tell microcontroller which pins are input<br>
<br>
<big><big><span style="font-weight: bold;">MAIN LOOP</span></big></big><br>
<br>
&nbsp; For Motors 1 to 4:<br>
&nbsp;
&nbsp;&nbsp;&nbsp; Read Encoder Values<br>
&nbsp;&nbsp; &nbsp;&nbsp; Calculate Motor Output to Achieve Desired
Position<br>
&nbsp;&nbsp; &nbsp;&nbsp; Write to Motor Output Channel<br>
&nbsp;&nbsp; &nbsp;&nbsp; // Note: the motor signal is sent to a speed
controller<br>
&nbsp; &nbsp;&nbsp; // to be amplified<br>
&nbsp; END FOR LOOP<br>
&nbsp; <br>
<span style="font-weight: bold;"><big>END MAIN LOOP</big></span></small></td>
<td
style="vertical-align: top; width: 551px; height: 424px; background-color: rgb(237, 237, 237);"><nowiki></nowiki>
<pre><small><span style="color: rgb(204, 102, 0);">void</span> <span
style="color: rgb(204, 102, 0);"><b>setup</b></span>()
{
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(2, <span
style="color: rgb(0, 102, 153);">OUTPUT</span>); <span
style="color: rgb(126, 126, 126);">// to Base motor 1</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(3, <span
style="color: rgb(0, 102, 153);">OUTPUT</span>); <span
style="color: rgb(126, 126, 126);">// to Base motor 2</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(4, <span
style="color: rgb(0, 102, 153);">OUTPUT</span>); <span
style="color: rgb(126, 126, 126);">// to Base motor 3</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(5, <span
style="color: rgb(0, 102, 153);">OUTPUT</span>); <span
style="color: rgb(126, 126, 126);">// to Base motor 4</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(6, <span
style="color: rgb(0, 102, 153);">INPUT</span>); <span
style="color: rgb(126, 126, 126);">// from digital Encoder 1</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(7, <span
style="color: rgb(0, 102, 153);">INPUT</span>); <span
style="color: rgb(126, 126, 126);">// from digital Encoder 2</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(8, <span
style="color: rgb(0, 102, 153);">INPUT</span>); <span
style="color: rgb(126, 126, 126);">// from digital Encoder 3</span>
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">pinMode</span>(9, <span
style="color: rgb(0, 102, 153);">INPUT</span>); <span
style="color: rgb(126, 126, 126);">// from digital Encoder 4</span>
}
<span style="color: rgb(204, 102, 0);">void</span> <span
style="color: rgb(204, 102, 0);"><b>loop</b></span>()
{
&nbsp;&nbsp;<span
style="color: rgb(204, 102, 0);">for</span> (<span
style="color: rgb(204, 102, 0);">int</span> motorIndex = 0; motorIndex &lt; 3; motorIndex++)
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;read_encoders();
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;pid();
&nbsp;&nbsp;&nbsp;&nbsp;write_to_motors();
&nbsp;&nbsp;}&nbsp;
}
</small></pre>
</td>
</tr>
</tbody>
</table>
</body>
</html>




Line 23: Line 145:


<div style="text-align: center;">
<div style="text-align: center;">
''IRC Meeting Test Chart:''  
<u>IRC Meeting Test Chart:</u>  
This chart is used to display group meeting times on the OSE Internet Relay Chat (IRC) http://opensourceecology.org/wiki/Irc where groups can discuss project ideas and progress with realtime feedback.  Group member names, IRC chat usernames, and status of sub-projects are listed.
This chart is used to display group meeting times on the OSE Internet Relay Chat (IRC) http://opensourceecology.org/wiki/Irc where groups can discuss project ideas and progress with realtime feedback.  Group member names, IRC chat usernames, and status of sub-projects are listed.
</div>
</div>

Revision as of 05:11, 20 December 2011

Concept (Illustrated Below): bricks from the CEB press are used to build structures manually. This design is a large 3D printer which picks and places bricks robotically using some common configuration: gantry or cable array system.


CEB 3DP Architecture.png

Simple Animation (Gantry Design)


http://img.youtube.com/vi/Il1stSJcZTU/0.jpg

Simple Animation (Cable Design)


http://img.youtube.com/vi/0HDd9J_Cc14/0.jpg


Source Code:

page`1


Pseudo Code
Arduino Code
DECLARE VARIABLES & FUNCTIONS

Initialize Output Channels
// Tell microcontroller which pins are output
Initialize Input Channels
 // Tell microcontroller which pins are input

MAIN LOOP

  For Motors 1 to 4:
      Read Encoder Values
      Calculate Motor Output to Achieve Desired Position
      Write to Motor Output Channel
      // Note: the motor signal is sent to a speed controller
     // to be amplified
  END FOR LOOP
 
END MAIN LOOP
void setup()
{
  pinMode(2, OUTPUT); // to Base motor 1
  pinMode(3, OUTPUT); // to Base motor 2
  pinMode(4, OUTPUT); // to Base motor 3
  pinMode(5, OUTPUT); // to Base motor 4

  pinMode(6, INPUT); // from digital Encoder 1
  pinMode(7, INPUT); // from digital Encoder 2
  pinMode(8, INPUT); // from digital Encoder 3
  pinMode(9, INPUT); // from digital Encoder 4
}

void loop()
{
  for (int motorIndex = 0; motorIndex < 3; motorIndex++)
  {
    read_encoders();
   
    pid();

    write_to_motors();
  } 
}






IRC Meeting Test Chart: This chart is used to display group meeting times on the OSE Internet Relay Chat (IRC) http://opensourceecology.org/wiki/Irc where groups can discuss project ideas and progress with realtime feedback. Group member names, IRC chat usernames, and status of sub-projects are listed.


This chart will be used as a temporary example.

Group Name

Group Manager

Meeting Time: 8PM-10PM EST

style="background: #efefef" Task Name/Pseudonym IRC Username Status of Project Extra
Motor Testing vc_nepo vc_nepo style="background: "#0000F0" 10 % Link
Encoder User B userBonIRC 20 %
Material Spec User C userConIRC Complete