Shpaget

Members
  • Content count

    1,107
  • Joined

  • Last visited

Community Reputation

992 Excellent

1 Follower

About Shpaget

  • Rank
    Sr. Spacecraft Engineer

Recent Profile Visitors

4,281 profile views
  1. Shpaget

    Humble Gin (IMHO & GIF)

    It's g as in garage. Seriously, I can accept that the creators of format wanted it pronounced as gin, but they're just trolling us. It stands for graphics and therefore must be pronounced as such. That being said, I will openly make fun of anybody that pronounces it as gin in my presence.
  2. Shpaget

    Making your own code

    Honestly, I've never heard about it, but I can tell you the way I learned (what little I know). I started with Logo and BASIC when I was 13 or 14, as part of optional Computer Science classes in my elementary school. We also had a Robotics class I (naturally) enrolled in. Unfortunately, the guidance was very poor so for those four years I didn't progress much. By that I mean, no one really explained the for loop, so I lived in this little world where I thought that was some complicated witchcraft and I avoided it. Arrays, what are those? The mechanical and electronics part of robotics held my interest more than programming so my skills developed in that direction and software stuff stagnated. After elementary school, I made a serious life mistake of going to a wrong high school, something still I regret. While we had Computer Sciences there, it was all about Excel and PowerPoint, basically waste of time. My breakthrough came in college where I finally got someone to explain the basics and my eyes opened. We were learning C#, which came in handy rather soon. At work we had a continuous problem which required a lot of trial and error (something similar to the Knapsack problem). After a while I got bored of doing the trial and error thing and decided it was time to use my newly acquired programming superpower to solve the problem. The result was a tiny little windows form that would brute force the solution and spit it out in seconds. That was my first piece of code that actually had a purpose, and the feeling of solving a real problem is much better than just completing a tutorial. After that I switched to Arduino and did countless little projects for that same workplace where I still work. The switch to Arduino also came as a requirement, because most of the projects I do require interfacing with real world hardware (lights, motors etc.). So, back to your question, I have no idea if sololearn is any good, but I can tell you that finding a small problem in your life and solving it will be a much better experience and give you a feeling of instant reward. That problem can be anything - automated plant watering system, pretty flashing lights under your bed to ward off the monsters, whatever.
  3. Shpaget

    "Rokkit Syense" in CW's "The 100"

    Also "Ops, something blew up, but we seem to be alive and the rocket keeps going. Mission status: Within parameters."
  4. Shpaget

    "Rokkit Syense" in CW's "The 100"

    You don't need variation present in 7 billion. The lowest amount of variation that still leads to a healthy population is much lower.
  5. Shpaget

    "Rokkit Syense" in CW's "The 100"

    I tried watching it but had to abort. I though it was going to be a nice little space themed sfi fi series, but turned out to be a silly teen drama show that fails at science at every step. @sevenperforce The space station does not get gravity from spinning. Sure it does spin, but gravity comes from air pressure (S02E08, Raven's spacewalk).
  6. Shpaget

    Making your own code

    Earlier you said you wanted your flight computer to be as small as possible. That would mean a microcontroller and not a PC, right? Microcontrollers run compiled codes.
  7. Shpaget

    Making your own code

    You don't need an interpreter for Arduino. Once you have the code written, it is compiled and uploaded to the microcontroller. The microcontroller executes the compiled code.
  8. Shpaget

    Making your own code

    OP has not a lot of knowledge of the subject but has exhibited large amount of confidence in getting it to work. I don't thing that's unfair assessment. It was not meant as an insult. Everybody falls far the effect, nobody is immune. I've been tinkering with electronics and embedded systems for 15 years and still there are occasions where I think something will be trivial, only to hit a snag somewhere which forces me to go back to the books. @Cheif Operations Director is English your first language? I believe we might have a problem in communication where you don't recognize some specific words used here as having very specific meanings and then gloss over them. Let me try to explain some of them. This is a piece of code: const byte engine1 = 5; const byte engine2 = 6; const byte engine3 = 7; void setup() { pinMode (engine1, OUTPUT); pinMode (engine2, OUTPUT); pinMode (engine3, OUTPUT); digitalWrite (engine1, HIGH); delay (5000); digitalWrite (engine2, HIGH); delay (5000); digitalWrite (engine3, HIGH); } void loop() { } It is perfectly functional and complete. It is one click away from compiling and working. Programming language used here is heavily based on C++. However, this specific one was written for Arduino. All that this code does is to turn three physical pins on a microcontroller from logical LOW to logical HIGH (from 0 volts to 5 volts, in this case) in sequence, with 5 seconds of delay between each. If you hooked a microcontroller with this code to adequate electronics, you could turn on three lights, three electric motors, or three rocket motors with this. For solid rocket motors you can find in hobbyist shops (Estes type), you could fire them by hooking physical pins 5, 6 and 7 to gate pins of three N channel MOSFETs that act as switch to turn on electric igniters. The command (also called function) to turn on a microcontroller pin is digitalWrite, but for it to actually do something, there are quite a few things that have to happen in the background. If you use an existing programming language, you don't need to worry about that. However, if you want to make your own language you will need to not only write that part as well, but have a detailed knowledge and understanding of hardware and software part of the microcontoller you are using. For example, this is the back end of the digitalWrite function, the stuff that you'd need to write too if you want to go the diy route: void digitalWrite(uint8_t pin, uint8_t val) { uint8_t timer = digitalPinToTimer(pin); uint8_t bit = digitalPinToBitMask(pin); uint8_t port = digitalPinToPort(pin); volatile uint8_t *out; if (port == NOT_A_PIN) return; // If the pin that support PWM output, we need to turn it off // before doing a digital write. if (timer != NOT_ON_TIMER) turnOffPWM(timer); out = portOutputRegister(port); uint8_t oldSREG = SREG; cli(); if (val == LOW) { *out &= ~bit; } else { *out |= bit; } SREG = oldSREG; } You see? One easy to use and understand line of code suddenly expands into 15 lines that are not quite as easy to understand. If you want to write this part yourself as well, you better start learning about hardware timers, interrupts, direct port manipulation, bitwise operations etc... If you look at the code above, you'll notice there are five other functions in this one function. Each of them is another block of code you'll need to write. It can go all the way down until you get to bottom of the rabbit hole and machine code. How deep are you willing to go?
  9. Shpaget

    Making your own code

    http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf Page 438 Or if you don't feel like opening it, that microconroller (ATmega328, the one that is used in quite a few Arduinos) is 4 x 4 x 0,9 mm. If that is small enough for you, Arduino is the way to go. How do you expect to make your own programing language if you don't learn other stuff about programing languages? I mean, knowledge required to make a brand new programing language capable of interfacing with any hardware is certainly greater than just learning an existing language and using vast amount of other peoples work that does the hard part in the background without needing to understand that as well. Believe it or not, but staring at the wall will not help you in making your own language, while an hour tinkering with Arduino will certainly get you a good deal towards the program you are describing. I am still confused why you think that making a new language and then writing the code in it is less work than just writing the code in an existing language. What are you going to do about interfacing with your components? You talk about guidance, that would suggest inertial navigation, barometric altitude sensor and possibly GPS. Do you plan on building those systems from scratch as well or will you use off the shelf components/modules? I would guess off the shelf components since, let's be honest, there is absolutely zero chance of you developing your own GPS module. Do you know how those modules communicate with other devices? Have you even heard of I2C and SPI? Do you plan on writing your own libraries for that as well? I'm not saying that's impossible, far from it, but that part alone is more work than entire software you'd need for your rocket. Let me be honest. You're at the peak of the Dunning Kruger graph. Pick up a C or a C++ book or an online tutorial and order yourself a few Arduino Unos from ebay (perhaps a starter kit with a bunch of other electronic components included) and just play with that for a few days. It will open your eyes.
  10. Shpaget

    Dissolving the fermi paradoxon

    I would not assume that earth was a nice little protected place. After all, formation of first life falls pretty much in the early part of the Late Heavy Bombardment period*. We apparently survived that. Furthermore, life forming "only" half a billion years after planetary formation would suggest that chaotic conditions are not a problem. *I'm aware that LHB is not confirmed, but rather hypothesized.
  11. Shpaget

    Dissolving the fermi paradoxon

    How do you go from to From everything evolution has taught me, once you have microbes, multicellular life is not a far away, give the time.
  12. Shpaget

    Dissolving the fermi paradoxon

    To answer that question first we need the answer to: "How big is their telescope?". In any case, first radio transmissions were done in 1880's, so best case scenario <140 ly. Which is pretty much equal to bupkis.
  13. Shpaget

    Making your own code

    Again, we have the XY problem here. Because coming up with a brand new language is a lot more work than just taking a ready made language and compiler and work with stuff that's been bugfixed and developed for many years by individuals far more experienced and skilled than you. Your "folder" sounds suspiciously like what is usually called a "function". Do yourself a favor and pick an off the shelf microcontroller that has all the tools already made and ready for usage. Or better yet... There are several options of entire development environments based on different microcontrollers, two of the most popular options for hobbyist are Arduino and PIC, based on Atmel's Atmega series micros and Microchip's stuff, respectively. For example, for Arduino a command for the software to stop doing everything and wait for 5 seconds before doing something else is as simple as delay (5000); ... but you should try to avoid using that approach, there are better ways of writing code that don't block everything else.
  14. Shpaget

    Dissolving the fermi paradoxon

    This doesn't make sense. Probability of being alone in the observable universe can not be lower than being alone in our galaxy.
  15. Shpaget

    Stone-age laboratory

    Could you elaborate on that? Sure, a decent pair of heat resistant gloves makes working with hot iron a lot easier, but I don't see it as a requirement. Leather gloves provide sufficient protection from short heat exposure, and for longer exposure, double up on the layers and add some wool in between. If not enough, make them wet. Recently I was hardening some steel and had to resort to a coal barbecue to get the thing hot enough (the propane torch I had wasn't getting it hot enough). Since I don't have a proper pair of long blacksmiths tongs I had to use regular pliers. The fire was very hot for my arms so I dunked them elbow deep into a bucket of water and had no problem getting the bright red hot piece of steel out of the fire. I was wearing regular cheap pair of leather gloves you can find on any construction site to protect my hands, but my arms were completely exposed. Sure, this is not the same as molten iron, but I don't see why would making some gloves from heavy leather be such a problem.