Skip to main content

My Roadmap part 4


Electronics... Yikes!

I told you previously that I have enough curiosity to dive into anything related to programming. Guess what, electronics and the world of embedded systems are now among them!


It all started with participating in robotics competitions. The organizers told us that, to make a robot, you need to combine mechanical design with control design, and they gave us sessions on both. I barely cared for those sessions, as you know, I’m driven by a self-learning mindset (“I gotta do it my way!”). My first event was the Under-Construction competition organized by the IEEE Helwan Student Branch. I only had experience in programming and making games, and I was tutoring game-development sessions at the same time. I treated hardware the way I treat software: a trial-and-error strategy. Unfortunately, I realized the drawbacks a bit late, after burning countless components and, basically, burning money like crazy. “Let’s hit run and see.” Even when wiring: “Let’s wire and see.” I was hooked.


Anyway, I eventually figured out the right combinations. I discovered that the relays used to control the motors burned out because of the current drawn by the motor. To prevent that, we had to separate the motor’s power source from the power that switches the relay. In the default setup, those power sources are tied together, which sometimes causes the relay to burn. So we fixed it. I built the “perfect” formula: motors controlled by relays, all driven by an Arduino. The Arduino connected to a Bluetooth module, and I paired it with my phone. I even built a custom mobile app, secretly using a drag-and-drop app designer, and it worked like a charm. The Arduino ran off a power bank, so the whole thing was a small, wireless control-unit box. Back in 2015, that was a real wow factor. I didn’t care much for the mechanical part, but my teammates handled it themselves, though, in hindsight, we over-engineered everything.


The day before the competition, after we had wired everything, I had to give a game-development session and couldn’t attend the rehearsals. My teammates couldn’t wait for me to finish; they tried to power the robot themselves, burned some circuits, and by the time I arrived, we had no spare parts. We couldn’t test before the actual competition, which led to a horrible performance. I think we finished second-to-last, only beating the team whose robot never started. Our robot could move all the blocks at once, that year’s task, and place them elsewhere, yet we failed because we hadn’t practiced. My teammate tried once but wasn’t used to the phone controls, then I tried, in vain. Amusingly, the team that won had the simplest, most effective design: one block at a time, an easy wired controller, fast and accurate. The biggest takeaway: I learned how to build the whole system from start to finish and what I actually needed.


My second attempt at robotics came about two years later. The task was to follow a track while balancing a ball on a metal plate and staying on a black line automatically. I waited for the mechanical part to finish, and I partnered with someone, but we couldn’t communicate well. She was stubbornly determined to learn on her own, showing the “I can do it myself” attitude. In the end, we split tasks: I handled line-tracking and control; she coded the ball-balancing algorithm. The night before the competition, we wired everything together, but the balancing code still wasn’t ready. We pulled an all-nighter and got something working, barely.


On competition day, we ended up using manual controls instead of automatic line-tracking, and our attempt to balance the ball without a proper algorithm failed. We did get a chance, near the end, to fire a ball into a box for extra points, but we missed. Still, it was a good experience.


After that event, I lost interest in robotics competitions. It felt like I wasn’t learning anything new, just repeating what I’d already done. So I decided to move on and try something different, which was building software professionally.

Comments

Popular posts from this blog

My Roadmap part 1

It all started with a dream... I was playing games all of my life and was good at it so why not make them. That's what I thought when I heard for the first time that you can make your own games with something called Programming Language. At first, It was c++ I learned it and was practicing it a lot, solving problems and automating stuff like solving math equations for assignments. I gained some confidence and It was time to make games and put some challenges. Solving equations Cardians method, Guessing the number game I started by making console games (x-o, Sudoku, Word Jumble). I was really proud of this *YaY* then started showing it to my friends. The only thing they said was "what is this black box, where is the game?".after that I decided it's time to learn how to make graphics with c++. Word Jumble, Sudoku Game After doing some searching, I found something called "SFML( standard fast multimedia library)" which I can use with c...

My Roadmap part 2

A Journey to the 3D world. This stage in my life, I have decided to learn about the 3D world before creating 3D games so When I start making games I have a robust understanding of the models. So I started to read about it. The first thing was the pipeline of the creation of the 3d models( Concept Art - Modeling - Texturing - Rigging - Animation - rendering ). I didn't like the Art section neither was good at it so I decided to go directly to the modeling part and just try to clone objects or do whatever comes to my mind. I followed step by step tutorials and try to get used to its interface. It was Maya Autodesk 2016. My First model was a glass. It took 2 hours from me to do it alone after that, I couldn't find the button for saving the render result as an image so I took screenshot *lol*. My First Model After a lot of practicing and watching tutorials following the steps. I got a basic understanding of making models out of simple shapes and just colorin...