[spam][crazy][ot][crazy][spam][crazy]
one of the projects i began when i was confused was a levitating golem. i think it stemmed from a daydream around making me really evil, maybe i could summon evil golems that terrorised something. i dunno. not big on evil. but i like puzzles. i thought i'd make very _small_ elemental golems. it seemed like a puzzle that the issues supported.
anyway, you'd need to make a tiny golem prototype first, right? before making a big one?
obviously the primary golem is the _fire golem_, because it seems the most evil. but i also designed a water golem, an air golem, a rock golem, and came up with some small ideas to make other golems (like a book golem!) there's a good chance i've mentioned this project on this list before
basically a golem is a robot that uses magnets to hold where its body parts are, so it looks like they are magically levitating, and it uses whatever element it's made of to camouflage its robotic workings.
imagine a tiny fire golem, flaming lamp oil pumping over all its parts, streaming from one part to the next, stomping around on your desk, burning in fury! i haven't gotten to the point where the challenge of not burning the desk is relevant yet
but remember: you have to use magnets or something to prevent all the joints from touching each other, floating in the air. that's what makes it a fun puzzle.
so basically the first microprototype for me is an array of tiny electromagnets that can arbitrarily move a tiny neodymium magnet around. i basically figured out this is not that hard to do, but if you're not familiar with the equations there can be a big stumbling block.
i'm not familiar with the equations! i wonder if i can find my notes from a few years ago when i last poked at this
i'm thinking the project was in my "annex" folder which is hard for me to find nowadays maybe i'll look for it briefly, then check my githubs a little for evidence of this project, and then start anew
i actually found an instance of this in my todo repository, which was after the annex
I found three files in a folder path containing 99-AssortedFun/99-Golems the files are: 00-Talk.txt 01-Design-1.txt 99-Magnetics.txt I wonder why magnetics is last?
i'm worried the fire golem could be scary how about a water golem? or an air golem? instead?
it would be nice to create an avatar of peace! that would be wonderful! i dunno if robotics would be the priority in that project though. more important to do peace stuff. also my psychological programming could dislike the project more if it's for peace
here's the top of 01-Design-1.txt: ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── FIRST PROTOTYPE: Fixed Base, plugs in, powers electromagnets. Floating Component, with permanent magnets. remember, no oscillating fields cause we live in green bank !!!! TOWARDS THE END GOAL OF A TINY WALKING GOLEM !!!! or even procedural plans for a golem of user-chosen size ! waitwait what if a user makes a giant city-destroying golem? ???????? i think htey would be arrested but there would be a big huge community golem sold at auction or something
this next section has numbers in it: I'd like to be able to levitate the magnets an inch to the side of the base. - [X] find the kind of magnet with highest power / mass (likely neodymium) -> note: dimensions of magnet affect behavior? These magnets have maximum temperatures depending on the neodymium material type. It can range from 176 F 80 C through 428 F 220 C. Don't appear to have any problem with cold. Neodymium magnetis are ~7.45 g/cm^3. There's more at https://www.kjmagnetics.com/specs.asp - they also reshape a little proportional to temperature and stresses and it's predictable. The magnetically strongest neodymium materialtype is N52. It only goes to 176 F. We'll likely want the lightest, smallest magnet, which is about a mm wide. Magnets are specd with a detailed graph of the field shape, but m can be calculated with m = 1/mu_0 Br V where V is magnet volume. Smallest magnet is D101-N52. Weight: 0.0118 g 1/16" diameter, 1/32" thick -> -> 0.00157109008 cm^3, which matches mass D101-N52 dia = 1/16 in height = 1/32 in V = pi * (1/32 in)^3 = 0.0015709008 cm^3 Brmax = 14800 G = 1.48 T m = 1/mu_0 Br V m = 0.00185034597 Am^2
the bits on analysis left off this way, it looks like i was struggling with inhibition: I think it owuld help to consider magnetic monopoles. I settle don looking to solve it algebraically based on the formula for force and torque. on to 99-Magnetics.txt remember: we could make an evil golem!
------------------------------------- recently i looked at an old project. it was nice to hold an idea of a project!! but it got harder. maybe it would be more fun to look at just a part of a project.
golem projects are stupid! yes indeed! what's interesting is magnets. i'm interested in having an idea of what formulas there are for describing the force and torque a magnet exerts on another magnet!
i've got a file open called 99-Magnetics.txt . I think this file could help me with this tiny puzzle. I bet there are other resources elsewhere, too!
Skipping through snippets of this file, I get the impression there are different ways of engaging things like this: - One can integrate over space in detail or - One can simplify things to well-known fundamentals (like a dipole or a monopole) I get the impression there are different models of magnetism, too, that may be equivalent. not sure.
I bet, if I have a way to integrate something over a magnet, then I can solve for its approximate equivalent dipole.
In fact, if I had a chart of a magnets field, I bet I could learn to look at that chart, and figure out what it implied about the properties of an equivalent dipole, by considering behavior at a distance. But I'd need to learn how to do that! Learning is super fun! With this stuff, I often do it by trying to use the material I haven't learned it.
So, what are magnets made of, equation-wise? What important properties do they have?
There are a few terms defined in this file. I imagine I didn't write them all in. I was still learning.
One of them is B = Magnetic Field. Units are Tesla (the engineer-researcher, not the car, obviously), of flux density. It says B = mu H, and that mu is the absolute permeability, and H is the "magnetising force" in ampere-turns/meter. I'm not sure how this relates to force. Also, it says there are various physical properties that happen when magnets are actually used. - their flux density can saturate - the field can induce current? I dunno!
[note: farther down the file there were a couple things about force! it looks like learning about the force exerted by and on a magnet would make sense.] i'm thinking of building a python script that kind of "focuses on a dot" like, makes a dot and points to it. maybe i can build more focusing-behvaiors in it, like adjusting the pointer to point to the dot where-ever it is.
here's a first sketch, kind of like an interface design. we actually want it smarter than this: print(". <- this is a period")
a first step to adding a little bit of code to that interface could be breaking the period away from its pointer. this file outputs the same text, but the two parts are slightly separated: print(".", end='') print(" <- this is a period")
now, that pointing code is pretty dumb right now. it just says that whatever to the left of it is a period, no matter where it is! it could be nice if it checked whether it was or not but i was thinking i might want to place where it is on the screen
i am thinking of three options for that: - home the cursor and move by rows and columns using individual characters - find the cursor-pointing control characters - use the curses library i'm thinking i might consider using curses's tput functionality, kind of a middle ground between the last two options. there's a big axe stuck in my behavior around curses, so it could be harder unless i'm prepared or such
i dunno! looking up tput commands doesn't sound very stabilising when you're focusing on a dot!
man terminfo: cursor_address cup cm move to row #1 col‐ umns #2 the command to position the cursor is "cup"
Focusing on a dot can seem non-simple when you are computer code. I made this static `term` class, with methods `clear`, `write_at`, `where`, and `size`: class term: import curses import sys, tty, termios curses.setupterm() _cup = curses.tigetstr('cup') _clear = curses.tigetstr('clear').decode() _csi = '\x1b[' _dsr_cpr = _csi + '6n' @classmethod def clear(cls): x, y = cls.where() print(cls._clear, end='', flush=True) cls.write_at(x, y) @classmethod def write_at(cls, x, y, *text): print(cls.curses.tparm(cls._cup, y, x).decode(), end='') print(*text, end='', flush=True) @classmethod def size(cls): return cls.curses.tigetnum('cols'), cls.curses.tigetnum('rows') @classmethod def where(cls): print(cls._dsr_cpr, end='', flush=True) _, row, col = cls._read_through(cls.sys.stdin, cls._csi, ';', 'R') return int(col) - 1, int(row) - 1 @classmethod def _read_through(cls, file, *delimiters, include=False): fileno = file.fileno() tattr = cls.termios.tcgetattr(fileno) cls.tty.setcbreak(fileno, cls.termios.TCSANOW) try: datas = [] for delimiter in delimiters: data = type(delimiter)() while not data.endswith(delimiter): data += file.read(1) if not include: data = data[:-len(delimiter)] datas.append(data) if len(datas) == 1: return datas[0] else: return datas finally: cls.termios.tcsetattr(fileno, cls.termios.TCSANOW, tattr) Then I can make this small environment class, and have it label a period as I imagined: import time class environment: def make_period_at(self, x, y): term.write_at(x, y, '.') def label_as_period(self, x, y): term.write_at(x + 2, y, '<- this is a period') def wait(self, seconds): time.sleep(seconds) environment = environment() x, y = term.where() term.clear() environment.wait(1) environment.make_period_at(x, y) environment.label_as_period(x, y) environment.wait(4)
participants (1)
-
Undescribed Horrific Abuse, One Victim & Survivor of Many