So What is Planned for the rest of July 2020?

Hydroponics

Still getting the hang of growing food, if the world depended on me to grow their food, I’d be hunted down and probably end up in a pot *nervous chuckle*. Like all skills, it takes time to get it right and more time to perfect it, so I’m not worried, yet. Fortunately, the endgame strategy is to have an Arduino or such regulate the nutrient content, grow light times and such, so I only have to get good enough to code basic skills into the arduino and have an Neural Network System or a smart enough expert system take over to grow vegetables and such. So, the plan for the rest of this month is to transfer the seedlings that have survived thus far into a hydroponic system and hope they thrive, while setting up a system for tomatoes, beans and probably peppers of some sort. About my only fear is that I may have to rely on my ability to grow plants for my continued survival, at some future date.

Robotics

Either have to redesign the battery holders or butcher the base to be able to store the batteries in it, so far redesigning seems to be the best option, thus far. I got the line following kit in the mail and got it assembled, so just need to tune it. After the battery storage is solved, the Arduino and ESP modules can be made and put in the bot. It seems that a lot of stuff is being crammed into the base, but it’s all necessary and I will agree that a bigger base is necessary in the future, but that may require switching over to stepper motors for locomotion. Once stuff is all in it, then coding can begin. This is probably the biggest and most complex personal project ever.

PCB Factory

This project is going so very slowly, I know. Mainly due to the lack of available resources, because I’m a poor geek. It’s also a very resource hungry project that has multiple parts that are not cheap, such as the spindle, PSU and controller board, which all are above the $50 range before shipping and handling charges. Plus, some parts are designed be others and therefore they may have to be modified to fit what parts can be procured. So will be assembling as parts come in.

This may be the most used piece of equipment in my future arsenal of tools for robotics and automation.

3D Printing

I’d like to get Octoprint set up on one of my printers this month. It’s more of a ‘sit down and do it’ kind of project, really. It isn’t just a cool mod, but also a time saver since I could check the progress from anywhere within my network range to see how the current print is coming along and to be able to remotely set up prints.

TTFN!

I hope everybody is doing well and please subscribe to this blog if you are getting something from it or at least enjoying it

Mr. Robot Throws His Track Out

Fast! Faster! Throw a Track!

Well, got the motors hooked up, propped everything up on a box, attached the bench power supply to it and tested the track system out. I knew that the tracks were a bit loose, dropping a tread made it too tight and hard for the sprockets to turn, and I thought that they wouldn’t be too loose. I was wrong!

The test went well till about half power, and then it threw a track. I noticed that it started skipping a bit as it got faster and definitely got louder the faster it went. I might be able to get away with the present tracks, but why invite failure? So found the original drive sprockets and printing out sixty new tracks. These should work better, just will have a lower cool factor.

In Other News

Still working on the battery holder design, have designed the holder for the SR-4 SONAR systems and looking into making the Arduino Bluetooth enabled so it can be monitored in real time. I may make a video on how to setup the ESP-12 WeMos Microcontroller, since I’m not finding a very good one on YouTube.com, so far.

Behavioral Programming : Intro

A more in depth explanation of behavioral programming. Starting off about what it is, how to implement it and what are the benefits of it.

What is behavioral programming?

Behavioral programming is using simple to complex behaviors to accomplish a set goal. A behavior is something that physically affects either the robot or it’s external environment. Simple behaviors are such things as turning on a motor, turning a servo, getting a distance reading from a sonar sensor, checking an infrared sensor, storing a value in a variable, and checking the status of a battery. Individually simple behaviors don’t do much, but when you call each one as needed in a linear fashion, they can be a more complex behavior such mapping, moving the robot in a straight line or turning to set direction, reading an array of infrared sensors to follow a line, etc.

Implementing Behavioral Programming

How do you use behavioral programming? You start off with making some primitive behaviors that control motors that you are using, to read whatever sensors you are in your robot and to implement the algorithms that manipulate internal variables such as the data collected by the sensors. These can be combined to make simple behaviors such as turning on the motors for a set distance and speed while taking continuous readings from their encoders, getting a distance reading from a servo mounted SONAR sensor at a specific angle and taking data gathered from the robot’s internal state and it’s sensor readings to create things like maps, maximum distance before needing to recharge and what it’s next goal is. I’ll list some simple behaviors and a few examples that combine them into more complex behaviors.

Some simple behaviors

  • Motor A(Direction, Speed)
  • Motor B(Direction, Speed)
  • Read Encoder(Pin #)
  • Servo A(Angle)
  • Trigger SONAR
  • Read SONAR

Some Simple Behaviors Combined into Complex Behaviors

Move Forward 100 encoder steps

  1. Motor A(Forward, 100)
  2. Motor B(Forward, 100)
  3. Read Encoder(Pin 5)
  4. Get 100 Encoder Steps
  5. Motor A(Forward, 0)
  6. Motor B(Forward, 0)

Get SONAR Reading

  • Trigger SONAR
  • Read SONAR

Read SONAR at a Specific Angle

  • Servo A(Angle)
  • Get SONAR Reading

This is how you combine simple behaviors into complex behaviors, so that the robot to achieve goals that require complex actions.

Benefits of Behavioral Programming

The main benefits of Behavioral Programming are:

  • saving time
  • saving memory space
  • simplifying tasks
  • simplifying problems
  • making coding less stressful

Those things allow the programmer to have more time and energy to make more complex robots that can achieve greater goals, or just have more time for other projects.

A Rather Busy Week

Progress and Such

It’s been a rather hectic week, trying to get enough dry goods to last for awhile and get some work done on a few projects, has been quite challenging since it’s getting hot and going into any store requires a mask. Both even together are not bad, but combined with humidity, it does complicate things, quite a bit. Plus, doing the exchange of effort for monetary gain was a good thing, as well. Most can’t wait for things to go back to the good ol’ days, but I’m beginning to believe that they are gone for good and this is the new normal. By the way, feeling much better than last week, was out and about in the heat a bit too much, I guess.

Off to more fun topics, though. Mr. Robot has tracks and a chassis now, and the hydroponics mini lab is coming along fine.

Mr. Robot Has Bod!

Got another track set made and sealed the ends and the chassis modified and printed. I found the 6V-12V motors that will fit in the Tamiya Dual Gear Drive kit and the Line Follower kit came in, as well. So, just need to hook those to an Arduino and a Dual H-Bridge for the coding to begin.

Mr. Robot's grey tracks and orange chassis

Plenty of internal storage for things like battery banks, the line follower kit and the dual drive motor kit, and maybe a few small sensors. This coming week, I’d like to get the battery banks done, at the very least designed. I’ve gone with this particular layout, because it’s quite modular and when I change or add things, I don’t have to reprint an entire chassis and such. This is very much a rough draft.

Hydroponics Laboratory Update

Got the base done last weekend and let it dry completely outside for a few days, it came out rather well since I’m not a great carpenter, mediocre would be a better term for my carpentry skills(smile). I did mount the stand on it, hung the grow light and put the seedlings under it. I had tried a method of growing the seedling using a compact fluorescent light, but they really did not take to it, very well.

It may just be my lack of skill, or too much water or something else. It looks like the kale, cherry tomatoes and the marigolds made it, though. It was not a complete failure, I should water less and use a grow light for seedlings, especially for indoor hydroponics. I’d thought of putting it outside, but figured that the heat would have destroyed the seedlings’ chances altogether.

DIY grow tent out of mylar sheeting to reflect back the light from the grow light for the plants to absorb

The frame was mounted on the base, and the next experiment is in progress, which is the grow tent. I did tape the mylar sheeting to the outside of the frame, and it’s not entirely transparent, but let’s just say that my living room has a creepy purplish glow to it in the evening till the timer shuts off.

Some future goals are:

  • Wash the hydroton
  • Set up a way to measure the water/nutrient level of the reservoir
  • Print the venturi tube for the pump system
  • Upgrade the frame to thicker tubing

Mr. Robot’s 2nd Post

By the end of the week, there should be a complete pair of tracks ready to mount on a chassis. The chassis is still in the design phase, though. It has to hold the dual gear motor assembly, and six 18650 batteries in appropriate compartments, eventually a triple axis accelerometer, a set of charging studs and be resilient enough to take moderate knocks without breaking, not to mention the amount of wires going to and fro to the micro controllers, dual H bridge, motors, etc.,. A lot of thought is going into this part, because the decisions made now will affect the the design of the rest of the body and it’s capabilities. Something tells me that I am either going to go through a lot of electrical tape or heat shrink(which I’m sure it’s not the size that I have). The good news is that it will all fit, and that there will be no laws of physics or even bent to get it all in there(fingers crossed, cuz the fine for trying to break the laws of physics is failure). Time just has to be set aside to finish the designs and the last unopened spool of orange PLA loaded onto the Creality Ender 3, so that the idea of the chassis is made physical.

So there is a completely finished track, pic below:

<insert here>>>>>

2nd Level Robot, or Taking It to the Next Level

I was looking at the specifications of the ultrasonic range sensors in the SR-04 family, and yes they wide cone that can detect an object at a good range, it initially seemed to create some issues. I was thinking of making the bot body taller so that it wouldn’t be creating false triggers, and thought of putting the receiver module part of it in a tube so that it wouldn’t receive pings of the bot body and a few other off the wall ideas that probably wouldn’t work, anyways. So the final solution that got the go ahead to be designed for was…..wait…..dun dun dunn!….Put two sonar modules and get the twice the data to sort!! What does this solve? A lot really, if you mount at 90 degrees apart of each other then they will be closer to the outer perimeter of the bot body, which means it can be shorter, the servo doesn’t have to make a full sweep for the sensors to get enough data for the micro controller to form a map for the main micro controller to decide how to proceed and if the robot is following the plotted course.

The Pic as Promised

Mr. Robot Gets His Own Post

Strategy to Start With

Since vision, multiple motor control, internal state management and environment awareness are all resource intensive tasks and are all taking place in real time, and are somewhat interdependent on each other. This is why a fairly complex strategy is needed to with the main variables that the limited reality that the robot will experience. Since most resources are limited, mainly space, time and money, a plan that uses those wisely is best and not necessarily balanced. While, it would be cheaper and use less space inside the robot to just use one micro controller, but then a lot of time would be used to program some sort of multitasking system into the main program and that has it’s own inherent problems. Discussing all the different strategies would not be the best use of one particular resource which is time, it’s the one resource that we never have enough of, cannot store and are literally losing it second by second. Skipping to the best solution, in my opinion at least, is to divide the tasks up by area of the robot and have the appropriate sized or easiest procured micro controller take care of those tasks, report sensor readings and task status to the main controller. This frees up programming time and clock cycles for more complex problems such vision and human interaction. Once the base micro controllers are programmed well enough to do their tasks adequately or better, they can just do their tasks like a well coded sub routine. Just think of the various micro controllers as physical sub routines in a box that can do a set number of tasks when called by the main controller.

You could say that this is Physical Object Oriented Programming or POOP for short. Go ahead and put that on a resume’. *smiles*

Now the Plan!

Here is a plan in place for the bot, it has three layers, and while each layers has it’s own sensor and working payload, it is governed by the one above it in some way. The working plan for the layers are:

  • Bottom layer; battery storage, locomotion and base sensors
  • Mid layer; secondary micro controller storage, some advanced sensors
  • Top layer; main micro controller, manipulator and probable payload area

The bottom layer is the base, which will be really quite stuffed with batteries, a gearbox, tachometers, line following hardware, and charging contacts. Trying to put most of the weight in the bottom of the bot and lower than the axles of the gear box. This will help lower the center of gravity and hopefully the need of heat dissipation

That leaves, the secondary micro controller, power management micro controller, charging circuits and anti-collision sensors for the middle layer. The secondary micro controller captures all the sensor information and reports it the main controller, while getting heading and distance parameters from the main controller, as well.

The top layer has the main micro controller, some sort of vision sensor and possibly a manipulator. This layer cannot be really planned in depth till the lower layers are complete and working. I’m hoping by offloading most of the tasks to other micro controllers that such problems such as vision and human interaction can solved and implemented easier.

It’s generally easier to break things into basic blocks, solve the simpler problems first, integrate the parts back into the equation that the problem is represented by and that is left to do is solve the last few variables.

Implementation!

Will be discussed in future posts.

Another update: Slow Progress

This week is proving to be a week of slow progress, a couple of key orders were cancelled by the sellers and a key component is taking a tour of the U.S. On a personal note, been dealing with a migraine, as well.

I had tried to initially go through Amazon, but due to the fact that what I require is considered non-essential parts there was a probable delay well into May which is like ordering from China. So I went on eBay and basically did that, still to no avail since both sellers have cancelled and refunded my order. Though, most people would be jealous of one order, because it’s travelling about the Lower 48 like a tourist, I’m expecting post cards from it, any day now.

Plus, I have been dealing with a migraine since Sunday and sudden storm Tuesday night, that wasn’t in the forecast, only encouraged it to continue to take up residence in my head. On the upside of things, I have had time to brainstorm, to figure out some designs and to think of other projects and devices to make. Even when down, I try to make positive progress.

Besides the some delays in procurement and an annoying health issue, the plans are moving along at a decent pace.

Hydroponics Update

Trying my hand at actually growing something the past few weeks, some mint and an onion, and have been working on the design of the connectors for the PVC frame, as well.

About a month ago, I found a few mint seedlings at a big box store and by the time I got it home it had gone into shock. I gave it some water and a bit of plant food with plenty of light after deciding to try to bring it back. That’s been somewhat successful, half of the seedlings survived and their roots are bunched up, so going to try make cuttings out of the surviving plants. So will be trimming them off at the base with sharp scissors and pinching the tops, before putting the cut ends in water to try to encourage new roots to grow. Pinching the tops discourages growth on that end so most of the plants’ energy will be used to grow out the root system. The plants that look like they have the best chance to live will be planted in pods and given beneficial fungi treatment. I feel for the plants, because they got a bad start and I’m very much a novice at this.

Speaking of moments of spontaneity, I was fixing some Frito pie and was chopping an onion and decided to try to regrow the onion for chives and eventually the onion back, in less than a week it’s root system is developing rather nicely. I’m giving it plenty of light and once the roots start really developing, I will cut the center part and plant them in soil pods and given the beneficial fungi treatment. Best of luck to it!

3D printers are amazing machines to have and use, that being said, you can find what your current limits on designing objects and just being patient while waiting for it make an object is not the only test of your patience that you will find. It takes patience and skill to design objects that are worth your time, money for electricity and consumables such as filament that are not just functional, worth using a lot and joyfully claiming that you made it. Which why I’m probably on my 5th maybe 7th version of the connectors before finally printing them. Anything worth doing, is worth doing well.

Cyclone PCB, a Mini Update

Going to have to find new suppliers for the smooth rods and threaded rod for the Cyclone PCB cloner, but the good news is that a complete refund for all that was not delivered. I do try to go with U.S. based sellers if possible, but quite a few have shut down or on staycation. I have been researching different modifications and upgrades, but really want to get it working first. From personal experience, it’s easier to start with a basic and functional project to build off of, than it is to troubleshoot something that should work in theory. I’m going to be printing the rest of the parts and assembling what I can by the end of this weekend

Robot Tracks and Power Management

I haven’t been printing at night, mainly due to the frequent storms that we have been having, therefore there have been power outages and brown outs. Since filament is neither easy nor cheap to procure, I’ve been playing it safe in order to not waste filament. There are still lots of tracks to print and assemble before the fun parts of this particular project can have a chance at having it’s own posts in the robotics category. I have purchased a smallish battery back up to put between the surge protector and the electrical outlet that they are on, so over night printing may continue.

I was planning out and procuring the basic parts for the power subsystem such as charging circuit boards, battery springs, etc. The springs might come in next week, or next month. I’m not entirely sure of how I am going to do power management, so I’m not going to solder bars of metal across the battery terminals just, yet. Power management is a big challenge, because a robot can only go as far as it’s batteries can take it and hopefully there is a plan for it to be able to recharge.

Some Goals for This Weekend

Goals for this weekend;

  • Print all connectors for the hydroponics and assemble
  • Separate the mint and start their rooting process
  • Solve and implement how to hang the Mylar sheets
  • Monitor the onion and decide when to take it to the next stage
  • Get as much as the PCB Cyclone built as I can
  • Print and assemble at least 40 treads

Updates

Got a few more things in the mail, today. The package contained mostly robot parts and the mycorrhizal fungi for the hydroponic system. Lots of research going on multiple subjects, I found that changing the subject that I’m researching helps me focus better and lets the information organize and take root in my brain better and faster. It also allows for time for more questions to form and answers to questions on other subjects to form.

Hydroponics or just more research

I’ve been researching indoor grow tents, and it seems that the main advantages for an indoor garden are:

  • Maximize Light Efficiency
  • Local Environment control such ambient temperature and humidity
  • Keeping pests out
  • Controlling smells
  • Containing allergens

The main factors that a grow tent needs to have is a reflective inner surface that is non-porous that is supported by a rigid frame. Yes, there are lots of commercially available choices to choose from, but this is not a commercial venture and is being done on a budget, rather severely limited at the moment at that.

My idea is to use PVC pipe for the frame and solar blankets for the covering. The PVC should be rigid enough to hold up the Mylar sheets and provide a stable enough frame to hold the LED lamp. The Mylar sheeting that the solar blankets are made out of is very light and highly reflective on one side as far as light and heat go, I have used them while camping in the Spring and Fall when night time temperatures can change dramatically and they don’t add much weight or bulk to a pack. Solar blankets are super cheap, so it fits within the budget constraints, as well. I did a bit of research on the price of the connectors for the PVC pipes and they would cost more than a roll of filament, even during this pandemic crisis. So oh deary me, what’s a geek to do?(This is blatant sarcasm) So, I will have to design and print out connectors for the grow tent, good thing I have a functional 3D printer.(Not so blatant sarcasm) It has been printing ‘bot parts and pieces for the Cyclone PCB factory of late, so a change in tasks would be a good thing.

Robotics for the win!

Speaking of ‘bots, I’ve been printing out and assembling treads, a lot of late. Yes, wheels are simpler and have the advantage of cost over treads, but treads are easier to control, compensate for and last way longer than wheels, plus are way cooler. I did find an early copy of my robot control library for the Arduino, so that is a boon in of itself. Treads also allow you to keep a lower center of gravity, thus making a very stable platform that increases the reach of a robot’s arm or other mechanical appendages. Platform stability is very important for most robots, it not only allows you to pack electronics, actuators and batteries into them, but you have less code dealing with how to get the robot back on it’s means of locomotion. Speaking of electronics, let’s move on to the PCB mini factory.

Cyclone PCB maker to the rescue!

Well, actually not yet and maybe not for awhile. It is coming along quite well, though. It’s at the point that I am going to start putting it together so that I can figure out what I am missing and also can get ideas of what I want to add to it or change. I really should go through the parts bins to see what I already have, because I know that I have lead screws, smooth rods, bearings and a RAMPS kit 1.4 in there that can be used for the PCB maker. It’s a good thing that I usually salvage dead projects and pick up useful items when I find them for a good price.

Some notes on creativity

I’d like to take some time and write a few things about being creative. It may seem a bit disjointed, but each part is a thought and therefore complete in of itself.

I really don’t like reinventing the wheel for every project, it becomes tedious and does suck the joy out of me to do that over and over, plus it’s truly a waste of time that could be used to create more advanced and quality code and better physical designs. This makes more time for other projects or time to do things such as improvements and decorative work.

Grander objects tend to impress others way easier and give a greater amount of accomplishment to the creator. By making something grander than it has to be, doesn’t have to be about scale, but can be a better design, higher quality materials or even just adding some flourishes to an object to make it more appealing to the eye.

Work on projects even if you don’t have all the parts. Parts can found or bought later, and you may find a better part than the one that you thought that project required. For the PCB factory, I was going to use a Dremel like a lot of people who have made such, but I found an actual spindle that was designed for use in a CNC machine for etching and carving a variety of materials. It will be way easier to control since it’s a DC brushed motor and is the correct tool necessary to do the job.

Choose your projects wisely, keep the number of what you are working small, but greater than one. Don’t hoard projects for some day, because the best day to work on things is today for tomorrow never comes.

There is a huge difference in buying parts and tools for future projects and buying such to just have them for the purpose of merely possessing them. The former is planning for the future, the latter is merely hoarding. If you know that you use certain things a lot and find them for a great price, if you have the means than purchase them at that time. Already having the parts makes shopping for what you need easier, makes projects come together faster and sometimes depending on your network of people you can trade for things that you need from your own stock of parts.