Overclock.net › Forums › Case Mods & Cases › Sponsored Builds & Case Mods › [SPONSORED][scratch build] Light Glass [Worklog]
New Posts  All Forums:Forum Nav:

[SPONSORED][scratch build] Light Glass [Worklog] - Page 6

post #51 of 82
glad to see you're back at it... looking forward to more updates
post #52 of 82
Thread Starter 
thumb.gif Thanks to you , I will post one of the last updates , I think tomorrow .
post #53 of 82
Thread Starter 
Love modding community!

We are approaching the last update´s.
Since the completion date ever closer moves I have somewhat neglected the worklogs, sorry.

So I will summarize again the whole structure of the Arduino.
The following components are installed, starting from the top left, so how to write.



Stepper Motor 28BYJ-48
Driver ULN2003
Acoustic sensor HC SR04
90db buzzer
keypad
Arduino Nano
infrared receiver
capacitor 1000 microfarad
Resistances 470 Ohm
div. Pins Connectors
Digital RGB LED Strip WS2812B
remote

What is it doing?
-The Engine opens and closes the door in the base.
Can be optional by the remote control or the keypad open close.
LEDs in the base plate signal Orangenes light signal (flashing)

-The Acoustic sensor covers the entire window and generates an alarm as soon as the window is touched.
LEDs in the bottom panel lights red, buzzer sounds

-The PC will be on the keypad start and reseten

- Via the keypad and the remote control can be programmed to start different light games

The Arduino is thus fully occupied. ;-)
In February I program a little crash course in Arduino occupied and now use the following sketch, which I have partly written himself or adapted to my needs.

CODE: Warning: Spoiler! (Click to show)


Code:
#include "Stepper.h"
#include "Keypad.h"
#include "IRremote.h"
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#include "FastLED.h"
/*----- Variables, Pins -----*/
#define DATA_PIN    A4
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS    120
CRGB leds[NUM_LEDS];
#define BRIGHTNESS          250
#define FRAMES_PER_SECOND  120
#endif
#define PIN A6 //power
#define PIN A7 //reset
#define PIN A4 //RGBs
#define STEPS  32   // Number of steps per revolution of Internal shaft
int  Steps2Take;  // 2048 = 1 Revolution
int receiver = A5; // Signal Pin of IR receiver to Arduino Digital Pin 12
int trigPin = 10;
int echoPin = 11;
int buzzer = 12;
int power = A6;
int reset = A7;
/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4
Stepper small_stepper(STEPS, A0, A2, A1, A3);
IRrecv irrecv(receiver);    // create instance of 'irrecv'
decode_results results;     // create instance of 'decode_results'
Adafruit_NeoPixel strip = Adafruit_NeoPixel(120, A4, NEO_GRB + NEO_KHZ800);
//Deklarationen Keypad
const byte numRows = 4; //number of rows on the keypad
const byte numCols = 4; //number of columns on the keypad
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols] =
{
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
//Hier die richtigen Pins eintragen!!! Anschlussgrafik gibt es z.B. hier http://www.learningaboutelectronics.com/Articles/Arduino-keypad-circuit.php
byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};
//initializes an instance of the Keypad class
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

void setup()
{
  irrecv.enableIRIn(); // Start the receiver
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(power, OUTPUT);
  pinMode(reset, OUTPUT);
  // tell FastLED about the LED strip configuration
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  // set master brightness control
  FastLED.setBrightness(BRIGHTNESS);
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}
// List of patterns to cycle through.  Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { sinelon,};
uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 0; // rotating "base color" used by many of the patterns ,0white,250red,100green,150blue

void loop()
{
  char keypressed = myKeypad.getKey(); //Tastedruck am Keypad erfassen
  if (keypressed == 'A')
    motorLaufen(8700);
  if (keypressed == 'B')
    motorLaufen(-8700);
  if (keypressed == '1')
    colorWipe(strip.Color(127, 127, 127), 30); // White
  if (keypressed == '*')
    digitalWrite(power, HIGH );
  digitalWrite(power, LOW );
  if (keypressed == '#')
    digitalWrite(reset, HIGH );
  digitalWrite(reset, LOW );

  if (irrecv.decode(&results)) {
    if (results.value == 16761405) // forward pressed
      motorLaufen(8700);
    if (results.value == 16712445) // backwards pressed
      motorLaufen(-8700);
    if (results.value == 16738455) // taste 0
      colorWipe(strip.Color(127, 127, 127), 30); // White
    if (results.value == 16724175) // taste 1
      colorWipe(strip.Color(0, 255, 0), 30); // Green
    if (results.value == 16718055)//taste 2
      theaterChase(strip.Color(127, 127, 127), 1000); // White
    if (results.value == 16743045) //taste 3
      colorWipe(strip.Color( 255, 100, 0), 30); // Orange
    if (results.value == 16716015)//taste 4
      colorWipe(strip.Color( 255, 0, 0), 30); // red
    if (results.value == 16726215)//taste 5
      theaterChase(strip.Color(0, 255, 0), 500); // Green
    if (results.value == 16734885)//taste 6
      theaterChase(strip.Color(0, 0, 255), 1000); // Blue

    if (results.value == 16728765)//taste 7
      colorWipe(strip.Color(0, 0, 255), 30); // blue

    if (results.value == 16730805)//taste 8
      theaterChase(strip.Color(255, 0, 0), 100); // Red

    if (results.value == 16732845)//taste 9
      theaterChase(strip.Color(255, 100, 0), 1000); // Orange

    if (results.value == 16769055)//taste EQ
      rainbow(20);

    if (results.value == 16748655)//taste vol +
      rainbowCycle(10);

    if (results.value == 16754775)//taste vol -
      theaterChaseRainbow(50);

    if (results.value == 16753245)//taste Power
      // Call the current pattern function once, updating the 'leds' array
    {  gPatterns[gCurrentPatternNumber]();
    // send the 'leds' array out to the actual LED strip
    FastLED.show();
    // insert a delay to keep the framerate modest
    FastLED.delay(1000 / FRAMES_PER_SECOND);
    }
    if (results.value == 16736925)//taste Mode
      rainbow(20);
    if (results.value == 16769565)//taste Mute
      rainbow(20);
    if (results.value == 16720605)//taste Pause
      rainbow(20);
    if (results.value == 16750695)//taste gehe zurück
      rainbow(20);
    if (results.value == 16756815)//taste U/SD
      rainbow(20);
  }
  if (millis() % 10 == 0)
  { long duration, distance;
    digitalWrite(trigPin, LOW);
    digitalWrite(trigPin, HIGH);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance = (duration / 2) / 29.1;
    if (distance < 40) {
      digitalWrite(buzzer, HIGH );
      theaterChase1(strip.Color(255, 0, 0), 100); // Red
      strip.show();
    }
    else {
      digitalWrite(buzzer, LOW );
    }
    if (distance > 200) {
      Serial.println("Out of range");
    }
    if (distance < 0) {
      Serial.println("Out of Range");
    }
  }
}

/* --end main loop -- */
void motorLaufen(int mSteps) {
  theaterChase(strip.Color(255, 100, 0), 1000); // Orange
  small_stepper.setSpeed(1000);
  Steps2Take  =  mSteps;  // Rotate CCW
  small_stepper.step(Steps2Take);
  irrecv.resume(); // receive the next value
  strip.show();
  MotorAus();
}
void MotorAus ()
{
  digitalWrite(A0, LOW);
  digitalWrite(A1, LOW);
  digitalWrite(A2, LOW);
  digitalWrite(A3, LOW);
}
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
  irrecv.resume();
}
//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j = 0; j < 10; j++) { //do 10 cycles of chasing
    for (int q = 0; q < 2; q++) {
      for (uint16_t i = 0; i < strip.numPixels(); i = i + 2) {
        strip.setPixelColor(i + q, c);  //turn every third pixel on
      }
      strip.show();
      delay(wait);
      for (uint16_t i = 0; i < strip.numPixels(); i = i + 2) {
        strip.setPixelColor(i + q, 0);      //turn every third pixel off
      }
    }
  }
  irrecv.resume();
}
//Theatre-style crawling lights.
void theaterChase1(uint32_t c, uint8_t wait) {
  for (int j = 0; j < 2; j++) { //do 10 cycles of chasing
    for (int q = 0; q < 2; q++) {
      for (uint16_t i = 0; i < strip.numPixels(); i = i + 2) {
        strip.setPixelColor(i + q, c);  //turn every third pixel on
      }
      strip.show();
      delay(wait);
      for (uint16_t i = 0; i < strip.numPixels(); i = i + 2) {
        strip.setPixelColor(i + q, 0);      //turn every third pixel off
      }
    }
  }
  irrecv.resume();
}
void rainbow(uint8_t wait) {
  uint16_t i, j;

  for (j = 0; j < 256; j++) {
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i + j) & 255));
    }
    strip.show();
    delay(wait);
  }
  irrecv.resume();
}
// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;
  for (j = 0; j < 256 * 5; j++) { // 5 cycles of all colors on wheel
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
  irrecv.resume();
}
//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j = 0; j < 256; j++) {   // cycle all 256 colors in the wheel
    for (int q = 0; q < 3; q++) {
      for (uint16_t i = 0; i < strip.numPixels(); i = i + 3) {
        strip.setPixelColor(i + q, Wheel( (i + j) % 255)); //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (uint16_t i = 0; i < strip.numPixels(); i = i + 3) {
        strip.setPixelColor(i + q, 0);      //turn every third pixel off
      }
    }
  }
  irrecv.resume();
}
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if (WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
void sinelon()
{
  // a colored dot sweeping back and forth, with fading trails
  fadeToBlackBy( leds, NUM_LEDS, 20);
  int pos = beatsin16(8, 0, NUM_LEDS); //speed,start-stop,
  leds[pos] += CHSV( gHue, 0, 192); // gHue,Multicolor 0=whit 255=rainbow fade ,Bightness
}


In this arrangement, I then soldered everything



As a mounting a small glass box cut and glued





and it screwed the Arduino







Now I have the Avexir Raiden still match the color, the small caps were painted in tone





and sides covered with foil, a paint was here too risky because of color flake or run behind



and they now look



other day I finally found a suitable Bending Kit with which I was satisfied so I could put the last pipe penetrations and end the piping







was again a lot of fun biggrin.gif



and so I had imagined the whole





In the base I have tried a lot, unfortunately I forgot the picture from the final state to shoot, now everything is disassembled again.
The chrome angle be exchanged for black, next week should be there



The motherboard tray is illuminated from above, unfortunately I found no U-profile in the proposed material thickness, so I had to saw off the little tray



The U-profile even liked it so angular not so I have it adapted to the case shape and the front slightly rounded



The exhaust air under the PSU I had already cut but not considered that the angles from the base this still obscure, so I had here even adjust something





Now I started to put all the necessary holes for the Arduino and the pump



Here the buzzer behind the PSU



and the keypad



for the Acoustic sensor still set the holes for the adjustment, M1, screw and taps are on the way



determines only the position of the SSD with the illuminated Tron and set the holes



The entire motherboard tray will be screwed to the base



Now it went last week to the painting, everything cleaned only once sanded and painted with aluminum primer





now even more layers follow White with intermediate sanding and div Filling work







and ready



the pump bottom was painted in silver





I now began to talk slowly with the assembling of, here a look under the PSU





But there were other problems,
As I have planned a special cable laying, I try to find someone already since 3 months of my cable Combs in Gosu style milled but no company is a vector file to convert to a 4mm Large Hole able.
At my cousin the oil pump its CNC is broken, so I had only one choice, I was last weekend 15h even stand at the CNC and oiling the cutters in 5min clock.

Here times the location (a dream)



and so then it started



it was the boring, 12 h later



at home arrived from Munich back in Pforzheim, I was able to everything deburring by hand and clean.
I fetched from the street me some gravel. then the Combs shaken of a while to just not having to grind the inside



However, the peaks were in clover leaf so acute that I had it all yet deburring by hand



from the outside, I have everything sanded with 600 paper



and everything still manually cleaned with cleaner and then with alcohol





That's bad, that's only half of Combs that I need but I would not make it this weekend, only 3h sleep and the Case I also wanted to work on.
The whole deburring and clean took me all Sunday and the Gosumodz Aliance Combs still look better: P.

In any case I can finally begin the connection wiring and just have all plexiglass edge polishing or burnishing.

We have on Monday again a holiday, I think by then I will make good progress. biggrin.gif
post #54 of 82
brutal xD
post #55 of 82
Thread Starter 
biggrin.gifthumb.gif
post #56 of 82
Man, I really need to just take the plunge and start working on a scratch build. Those tubing runs to the CPU are fantastic. Great job so far thumb.gif
post #57 of 82
Thread Starter 
Thank you JCArch.thumb.gif
Hello!

Go on.
The missing black angle and the coolant has arrived.

Thank you so on Nanoxia !







Then we go's, last week I had to paint again the socket because I forgot a hole for the Sata cable .
Was unfortunately otherwise.
The weekend incl. Monday I was now fully engaged embarrassed with the electrical system and the cable.
So first I have optimized cable management of the Cooler Master Silencio and from Riing. All cables cut and soldered an adapter extension cord and sleeved.





then the WS2812B LEDs were glued to the angle in the bottom plate, and soldered wired.





Now it came to the cables for Arduino run and the corresponding components



Gradually, therefore everything is finally installed.

Here, the fan grill with Gosumodz washer and the buzzer behind the PSU



the first cable on Arduino



currently it looks quite empty from the bottom but that will come



to avoid unnecessary cables and adapters in the ground I built distribution stations for Molex and fan.





the solder points still ground because I have unfortunately only one centimeter square down there



and even a tape over it
That way, once 6x 12V and 5V for the Arduino and the power supply



The Molex distributor of the way, then depends directly on the power supply





I need the Arduino and their components with 2 different power sources feed since the ultrasonic sensor (or another part) otherwise causes a feedback
and the entire alarm system unable to work as they should, or permanently starts.

In the base were put out of top analog RGBW LEDs which then illuminate the white Plexiglas and the interior.









so gradually it is taking shape





Now I put the cable and sleeve for the mainboard supply



since the crimping tool is not worth much I had to again solder all pins





and then slide into the sleevs



Now I have only times the pinout of the Cooler Master listed cord and plug away because you can not buy the 10Pin and 18pin.



and so it looks like



in the ground no place for sleevs remains why look down just short out be sleeved.
But since they are quite rigid I from bottom still Combs glued through which the cables can be laid at right angles.

These Combs I recently sawed from a faulty milling. Since the router is broken.
The I could now make good use for these purposes.





here's the difference





Slowly I should have thought of everything in the base, so I work my way slowly upward.

Now it was only clean the Plexiglas and where necessary edge polish satin finishing or.

Unfortunately, I had eventually ruined me with a dirty drill or screw the threaded and could also clean the threads

befor

after






rolleyes.gif







the cable for the SSD still drawn





I want to put the 4 PCIe cables directly from the GPUs in the PSU, I now unfortunately become aware that I have released there only 2 slots.
I could arrange that I get a Cooler Master V850 or the like. Unfortunately, until next week, but that's why I'm still going to continue to move the Main board cable.

The V750 that I have now left I will soon be giving away on Facebook, I think when reaching the next favorite brand.
The finish is excellent and keeps bomb. That would be unique Made by CapTen: D

The second charge cable Combs are also arrived yesterday from my cousin that I have now again deburring and clean: sad:

Next update coming ..... tongue.gif
post #58 of 82
Holy crap, that shot of the cables from the PSU disappearing through the plate is amazing! Hurry up and update again tongue.gif
post #59 of 82
Thread Starter 
thumb.gif

oh yes it is the madness!
post #60 of 82
Thread Starter 
Hi everyone!

My last update, the project is ready but the Finalpics I'll do tomorrow.
Here now only times all work I've done the last few weeks.

Sorry that took me so long posted anything but I was really afraid not to be ready in time.
So I try to be brief, there are still quite a lot of photos and more than half I have already deleted. : D
If any ambiguities are just ask okay?

Under the SSD Tron I have placed a small RGB Strip, connected to the LEDs in the base.



then came from my cousin the second charge cable Combs.
Again, the same program as the last time, all the cut / break, deburring, sanding and clean.



then it went to the sleeving on.
Times as info that cable velvet Sleeve'm not getting through Combs through why I prefer all sleevs first and then push the cable through. This is very good because the PLX sleevs are quite rigid.
First, the 8 and 4 pin ATX cable





and then the 24 pin cable, do not forget the small cover which I built for carrying













now came the worst, all the cables together.
For this I have number to each cable and after many corrections and try with hot glue so I fixed the second base plate at all it get





Unfortunately, nothing helped, I had to cut the lower base plate, due to a half centimeter



good for the entire bottom plate I have another 4 holes set as the 2mm aluminum but was not as robust as expected



Then I put all power and reset cable







and last but not least the PCIe cable, unfortunately not quite the way I wanted but I think that can be so by go XD





The entire cable management cost me a total of 3 weeks now. Daily 6h after work and on weekends and holidays also determined 12 hours a day. And I thought I do it on a weekend finished XD.
Now it was time to polish all edges:
just like the dice I have all the edges with a sword Cutta peeled and then ground from 320 to 800 grit sandpaper. After that two polishing pastes and finally with pure polish.







I had tried to talk to a small piece to see how far fits the design and have this now transferred to the sliding door and rear wall for this to bend then.



Now cut



and then bent





ready





the small pieces for back ready polished and then glued together



With the sidewalls exactly the same, all edges polished





the Avexir neckline satin finish.
I hope you can imagine how long it takes all this take?



Okay, as expected, there was the cable laid course but a damage to the paint, mainly the outer edge.
So I had a good piece again completely wrap in foil to be painted around the defects in.
With a paintbrush unfortunately dissolving the color and pushes only the paint down again and a white pen does not have the same color as my paint.



Who's always there? tongue.gif



Then came the worst part: remove the foil!
Now I had to with the utmost care all behind moving sanding dust and the polishing paste to remove without scratching the Plexiglas. The glossy black is there really sensitive.



so now that all plates were cleaned, I also stick to one another





Next we went to the upper side parts



I had last year already two logos cut from 3mm Plexiglas and polished.
This I have now glued to the side wall



only times exactly aligned the logos and then taken up with tape so that they can no longer from slipping



Then measured the positions on the front and set with tape guide lines



then made the adhesive on the logos and adhered to the front



and now again: how I start already said, I have the dice all have slightly rearranged so they do not look so boring cubes.
How do you like that ? :crazy:





have been doing mostly oriented at me 15 °



well as the sleeves are so rigid I ever had to come up with the 24Pin ATX cable behind the tray little problems around the corner, so I did it briefly bent me a small retainer.
But this I wanted to make so and so to put a decal of the sponsor there. It fulfills the same a double sense;-)





This I then glued back on the tray.
The cable I have so long fixed with an aluminum bracket for the glue to dry.



on Friday I thought that Silencio see behind two 3mm Plexiglas and 2mm aluminum frame from something boring, so I have the frame summarily cut off so that further extend the rotor blades from the Case



so without damage was also not, so I concerned shall points again painted.



the small curved pieces for the back I attached with a spacer with the screws Case
No I would not flush, the distance is chosen deliberately because it would have the gap either way perceived and had a bond the screws obscured







last week, I have created the missing decals and was able to pick up on the weekend me.
I had weeded again everything yourself.
This comes on the rear window completely down



take the Avexir lettering, 1.6 mm character height I had normal Stickers
and some other things that can be seen later on the Finalpics;-)



the lighting of the hardware itself was somehow not quite as I expected, so I decided to TE-block from the top with a small strip to illuminate thus also equal to the GPU backplates are illuminated with.
So even a small angle cut, primed and painted



the current then immediately swiped from the top S-Light, the cable is thus exactly behind the ATX connectors and is not visible





Now It's something offtopic further.
For photo shoot I wanted something special but a suitable museum I did not to me and a jewelry shop / jeweler as a painter I need to ask not even.
So I got short hand out my bedroom wall redesigned.
wallpaper removed



completely plastering, primed and painted two times white



then centrally glued a snakeskin wallpaper



fits to or vice versa, I have this weekend even built me a stand for the case and the keyboard, mouse.
The stand for the Case is a transport box which I can buckle with foil as on a Euro pallet, the case then.
First the hardware store all materials Bought, the wallpaper I had ordered last week on the Internet



from old remnants I cut a few strips for the bottom



then glued together and to the ground



Angle cut and primed



the whole box glued to each other and once primed



angel paint in silver



The stand for the keyboard exactly tailored and everything glued to each other





mounted on the box still Tension Latches



and then also primed and painted





corresponding areas of the object also painted





and then glued to finish off the wallpaper and then the angle on the edge





Okay "thats it".
System I have filled yesterday and leaktest made everything alright.
Tomorrow I will make the final pics and will then latest day after tomorrow post! :-)
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Sponsored Builds & Case Mods
Overclock.net › Forums › Case Mods & Cases › Sponsored Builds & Case Mods › [SPONSORED][scratch build] Light Glass [Worklog]