Posts in the Mekanikk category

16mm framviser

Ombygg av 16mm-framviser for digitalisering av film for Kunsthøyskolen i Oslo.

Tok ut motor og all elektronikk. satte inn ny motor, powersupply og styringselektronikk for å kunne regulere hastighet og sende triggersignaler for hver frame til kameraet.

Brukte en Teensy 3.2 til styringen.

Video som viser framviseren i drift etter ombygging.
Før ombygging
Plukket ut alt som har med motor og elektronikk.
Strømforsyning og styringselektronikk
Ny motor, Solid State Relé og IR-gaffelsensor for å lage triggersignaler
OLED display
Skjema

Kode


// --- Alfredo ---
// Filmframviser - motordriver og trigger
// 2019 - Rasmus Hildonen - Werket.com
// Biblioteker
include <Arduino.h>
include <U8g2lib.h>
include <Wire.h>

// Variabler
int gaffel = 0;
int hastighet = 0;
int justering = 0;
int motorprosent = 0;
int delayMs = 0;
long delayTrigger = 0;
unsigned long naaTrigger = 0;
//Defineringer av porter
define MOTOR 3
define SENSOR 5
define MOTORPOT A0
define DELAYPOT A1
define UTEN 22
define UTTO 23
define LED 13


// Skjerm
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=/ SCL, / data=/ SDA, / reset=/ U8X8_PIN_NONE); uint8_t z = 127; // start value uint32_t lcg_rnd(void) { z = (uint8_t)((uint16_t)65(uint16_t)z + (uint16_t)17);
return (uint32_t)z;
}


void setup() {
analogWriteResolution(10); //sette PWM oppløsnig til 0-1023
pinMode(MOTOR, OUTPUT);
pinMode(SENSOR, INPUT);
pinMode(UTEN, OUTPUT);
pinMode(UTTO, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(MOTORPOT, INPUT);
pinMode(DELAYPOT, INPUT);
attachInterrupt(digitalPinToInterrupt(SENSOR), pulsUt, RISING);
analogWriteFrequency(MOTOR, 100);
u8g2.begin();
bootSkjerm();
}


void loop() {
hastighet = (1024 - analogRead(MOTORPOT));
if(hastighet < 5){hastighet = 0;}
justering = (1024 - analogRead(DELAYPOT));
delayMs = map(justering, 0, 1024, 0, 10);
if(hastighet < 5){pauseSkjerm();}
else{skrivSkjerm();}
analogWrite(MOTOR, hastighet);
}


void pulsUt(){
delay(delayMs);
digitalWrite(UTEN,HIGH);
digitalWrite(UTTO,HIGH);
digitalWrite(LED,HIGH);
delay(2);
digitalWrite(UTEN,LOW);
digitalWrite(UTTO,LOW);
digitalWrite(LED,LOW);
}


void skrivSkjerm() {
motorprosent = map(hastighet, 0, 1024, 0, 100);
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(0,12);
u8g2.print("16mm - Digitize");
u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(0,37);
u8g2.print("Motor: ");
u8g2.print(motorprosent);
u8g2.print("%");
u8g2.setCursor(0,60);
u8g2.print("Delay: ");
u8g2.print(delayMs);
u8g2.print("mS");
u8g2.sendBuffer();
}


void bootSkjerm() {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(0,12);
u8g2.print("16mm - Digitize");
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(0,35);
u8g2.print("Made by:");
u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(0,60);
u8g2.print("Werket.com");
u8g2.sendBuffer();
delay(5000);
}


void pauseSkjerm() {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(25,12);
u8g2.print("Alfredo");
u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(50,35);
u8g2.print("is");
u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(22,60);
u8g2.print("Sleeping");
u8g2.sendBuffer();
}



Svigebror skulle gifte seg med sin kjære Doris, og jeg kan jo ikke la det gå helt upåaktet hen.

Jeg lagde et skrin med alle de utrydningstrua treslagene jeg kunne oppdrive 😀 Mahogny, Ibenholt, Valnøtt-rotfinér ++ Lokket er laget i svart Corian med bladgullinnlegg(!)

Kunne jo ikke la være å leke litt med elektronikk også.. Skrinet åpnes ved å legge en mansjettknapp og et smykke, som er laget i bronse, corian & bladgull, på lokket. Dette trigger at låsen åpnes og skrinet lyses opp utvendig og innvendig.

Har ikke bilder av det helt ferdig, men får legge det her etterhvert når jeg får stukket innom dem og tatt noen bilder.

IMG_4026

(mer…)