Made a case for my page turner

Using OpenScad I ended up with this .. a nice minimal design

Openscad file (Jup thats all)

difference(){
    difference(){

    union(){
cube([96,30,12],center = true);
        translate([41,0,5])
cube([15,30,23],center = true);
translate([-41,0,5])
cube([15,30,23],center = true);
    }
cube([90,30-6,24],center = true);
}
union(){
    difference(){
translate([0,0,5])
cube([90,20,30],center = true);
translate([0,0,5])
cube([77,20,35],center = true);
    }
}
}

Making a leather seat for a man-cave

Made a little design in blender.
A friend needed a seat in his man-cave, the same one I fitted with the mobile phone charging station, and wled ledstrings.

It is for below some stairs.
It’s a piece of wood (leftovers), some leather I still had lying around.
Scaffolding tubes, foam, some decorative nails and stage-tape.


Clay press to make a brick wall (for models)

I found a nice tile-able image on the internet to make into a clay press.

UPDATE: 20230406

Using Blender and 3D printing, I’ve got this result.

Take a flat image an convert to black-white. Then invert!

Create cylinder in blender.
Change capfill into nothing, and set sizes.
Add modifier: Solidify
Add texture
CTRL-R and divide, then subdivide
Subdivide surface
Add displace modifier.
Texture coordinates UV.
Displacement negative 0.1-0.3

UPDATE: 20230406

I need to apply the white/gray first in all cracks, and the red color is a little off.

Laser cutting a door sign

I’ve got a nice stone slate, perfect for a door sign.

I wanted to paint our names and house number. But now that i’ve got a lasercutter, lets do that.

I’m going to use the design i’ve used for the Folkband Bags, and add some stuff.

First test on the back of the slate

Using a Sculpfun S9, Power 100 and speed 100mm/s

I will add the final result to this page

Quentin Tarantino in Amsterdam to promote his book.

Being cinephiles.. we had to go .. and we didn´t regret it!

We went to Carré listening to Mr Tarantino talking about his book. Someone interviewed him about his life, and love for movies. He told many anecdotes and side stories. Sometimes with little clips from movies he talked about.
We were very lucky to have seats on the 6th row!

Beforehand I met another movie hero of mine, and got the change of talking to him personally.
Mister van Koolhoven! I posted about him in the past
https://www.henriaanstoot.nl/2021/03/23/movie-genres/

He was very nice and approachable, gave me some tips to check out.
Like letterboxd.

A superb evening! And we also bought the book.

Guess the code in Node Red

I asked ChatGPT to write code for me, i was not completely correct, and in Python. https://www.henriaanstoot.nl/2023/03/28/i-asked-chatgpt-to-write-code-for-a-crack-the-code-game/
I wrote my on version in JavaScript so it can be used in NodeRed as a function.

The codes are entered using a keypad (Arduino) and send via MQTT

Node Red Dash board

Code

var code = global.get("mysetcode");
var good = 0;
var wrong = 0;
var wrongplace = 0;
var match = false;
var wrongchars = 0;
var wrongplaced = 0;
var goodchars = 0;
var payloadcode = msg.payload.toString();

var usr_input = Array.from(payloadcode);
var secret_code = Array.from(code);
var secret_code1 = secret_code;

if (msg.payload === code) {
    match = true;
}
var result = "";

for (var i = 0; i < 4; i++) {
    var found = false;
    if (usr_input[i] === secret_code[i]) {
    usr_input[i] = "a";
    secret_code[i] = "b";
        good = good + 1;
        
    }
}

for (var i = 0; i < 4; i++) {
    var found = false;
    for (var j = 0; j < 4; j++) {
        if (usr_input[i] === secret_code[j]) {
                found = true;
        } 
    }
        if (!found) {
    wrong = wrong + 1;
    }
}

wrongchars = wrong - good;
wrongplaced = 4 - good - wrongchars;

msg.goodchars = good;
msg.wrongchars = wrongchars;
msg.wrongplace = wrongplaced;
msg.result = result;
msg.match = match;
return msg;

Converting a analog joystick to digital

When you need a large digital joystick, but only got an analog one. You can use below code to make the joystick act as a digital one.

I’ve played with analog joysticks on digital pins also, it can be done. But it can be buggy, and needs extra code.

Note: The joystick pins are marked with 5V, but when you use a Arduino which can only read till 3.3V using its ADC (Analog Digital Convertors), you can get some weird readings.
When moving down and left is reads okay, but up and right react as being connected together!
Just try it with 3.3V or use a resistor.

Above shows a ESP32, but below code has Arduino Nano pin names, change accordingly.

CODE

The code gives you a direction only once, you will need to move the stick to the middle position first and then move again.

Below gave me readings between 0 and 1024 (10 bits)
Hence the between 350 and 650 for the middle position.

Most will give you a reading between 0 and 4096.

Want to set the resolution yourself?

  analogReadResolution(10); // 10 bits
int val1 =0;
int val2 =0;

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    int sensorValue1 = analogRead(A0);
    int sensorValue2 = analogRead(A1);

    if (sensorValue1 > 650){
      if (val1 == 0){ 
      Serial.print("DOWN");
      Serial.println(" ");
      val1=1;
      }
    }
    else if (sensorValue1 < 350){ 
      if (val1 == 0){
       Serial.print("UP");
      Serial.println(" ");
      val1=1;
      }
    }
    else if (sensorValue2 > 350 && sensorValue2 < 650){
      val1=0;
    }
    
    
    if (sensorValue2 > 650){
      if (val2 == 0){ 
      Serial.print("LEFT");
      Serial.println(" ");
      val2=1;
      }
    }
    else if (sensorValue2 < 350){ 
      if (val2 == 0){
       Serial.print("RIGHT");
      Serial.println(" ");
      val2=1;
      }
    }
    else if (sensorValue2 > 350 && sensorValue2 < 650){
      val2=0;
    }

    delay(100);
}

I asked ChatGPT to write code for a Crack the Code game.

The Game

elcome to Crack the Code!
The code has 4 digits. Each digit is between 0 and 9.
You have 10 tries to guess the code.
After each guess, you will be told how many digits you got correct and how many were misplaced.
Good luck!
Enter your guess: 1234
Guess 1: 1234 - 0 correct, 0 misplaced
Enter your guess: 5678
Guess 2: 5678 - 2 correct, 1 misplaced
Enter your guess: 5689
Guess 3: 5689 - 1 correct, 2 misplaced
Enter your guess: 9688 
Guess 4: 9688 - 1 correct, 2 misplaced
....
Sorry, you did not crack the code. The code was 5568.

Generated python code

import random

def generate_code():
    code = ""
    for i in range(4):
        code += str(random.randint(0, 9))
    return code

def check_guess(code, guess):
    correct_digits = 0
    misplaced_digits = 0
    for i in range(4):
        if guess[i] == code[i]:
            correct_digits += 1
        elif guess[i] in code:
            misplaced_digits += 1
    return (correct_digits, misplaced_digits)

def play_game():
    print("Welcome to Crack the Code!")
    print("The code has 4 digits. Each digit is between 0 and 9.")
    print("You have 10 tries to guess the code.")
    print("After each guess, you will be told how many digits you got correct and how many were misplaced.")
    print("Good luck!")
    code = generate_code()
    num_guesses = 0
    while num_guesses < 10:
        guess = input("Enter your guess: ")
        if len(guess) != 4 or not guess.isdigit():
            print("Invalid input. Please enter a 4-digit number.")
            continue
        num_guesses += 1
        correct, misplaced = check_guess(code, guess)
        print(f"Guess {num_guesses}: {guess} - {correct} correct, {misplaced} misplaced")
        if correct == 4:
            print("Congratulations! You cracked the code!")
            return
    print(f"Sorry, you did not crack the code. The code was {code}.")

play_game()

After this i let the AI made some changes, which kinda worked.
Scary nevertheless

"If something is worth doing, it's worth overdoing."