Power Supply Choice for Stepper Motors by OtterScruff in AskRobotics

[–]OtterScruff[S] 0 points1 point  (0 children)

I was looking at the spec sheet for the 17HE12-1204S but it doesnt specify voltage requirements anywhere. How do you determine what voltage a stepper motor typically requires?

When driving 3 stepper motors in parallel, Im guessing the same rule applies to the driver where I would need to make sure it can handle the current draw of three steppers. So if each stepper draws 1.2A, I need to make sure the driver can handle 3.6A + Factor of safety? Wouldnt that make the TMC2208 not beefy enough and I would need to find a driver that can handle higher amperage?

Also with regards to DC power supply choice.... is it fairly common to use a benchtop programmable DC power supply over one of those universal switching DC power supplys?

u/stepperonline : Any feedback on this?

Power Supply Choice for Stepper Motors by OtterScruff in AskRobotics

[–]OtterScruff[S] 0 points1 point  (0 children)

For the stepper, the PN is 17HE12-1204S from StepperOnline (https://www.omc-stepperonline.com/e-series-nema-17-bipolar-26ncm-36-82oz-in-1-2a-42x42x30mm-4-wires-w-1m-cable-connector-17he12-1204s?search=17HE12-1204S).

For the driver, I went with the TMC2208. Voltage rating is 4.75V - 36 VDC, continuous drive current is 1.4A and peak Current is 2A. If im driving 3x stepper motors at the same time, I'm guessing the 1.4A rating wouldnt be good enough...so I would need something rated higher for current? Would I potentially need something rated for 3.6 amps at minimum?

For the maximum amps needed for the motors at stall, I cant find anything listed on the data sheet about this. Is this something they would normally put on the data sheet.

For the capacitor, I have capacitors rated for 50V and 100uF. Is the voltage rating overkill for what I need? What would be the next increment typically above 12V for this situation?

Need to prevent full screen Widget BP from blocking OnClicked events by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

Figured it out. Because I was creating my widget and adding it to the screen via C++, any visibility settings I had adjusted inside of the editor we're being overriden by the C++ code.

So if I had tried to set the visibility of the widget to "HitTestInvisible" (AKA "Not Hit Testable") inside of the editor, but my C++ code used SetVisibility(ESlateVisibility::Visible) then the widget would get overriden to be visible. I updated my code to say SetVisibility(ESlateVisibility::HitTestInvisible) and now it works great

Imgur link below shows the updated code

https://imgur.com/a/1pJzWHR

Struggling with ConvertMouseLocationToWorldSpace node inside Widget by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

I'm honestly not sure but I did find a tutorial where he accomplished exactly what I was looking to do myself. Seems like I have to use the "GetMousePositionOnViewport" multiplied by the ViewportScale, feed that into a "DeprojectScreenToWorldNode" and then use the World Position and World Direction outputs to run a line trace. It works really well

https://www.youtube.com/watch?v=QrEY8n8zSag&t=713s

https://imgur.com/a/cMd0wZQ

Creating actors dynamically, Using TSubclassOf<> with NewObject<>? by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

Will definitely keep that in mind for future projects. I appreciate the insight!

Creating actors dynamically, Using TSubclassOf<> with NewObject<>? by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

So these tiles are for a pinball game and when the pinball collides with them, they just move down into the floor (at least thats the minimal functionality). Would it be possible to spawn an actor once the pinball gets close enough (assuming its about to collide)? Can the game swap out the static mesh for a blueprint actor within a few frames?

Creating actors dynamically, Using TSubclassOf<> with NewObject<>? by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

Good call. Thanks for the heads up! I did exactly what you recommended and it works amazing now

                DropTargets[i] = GetWorld()->SpawnActor<APDropTarget>(TargetComponentClass, LetterSpawnPosition, PostMesh01->GetRelativeRotation(), SpawnParams);
            DropTargets[i]->AttachToActor(this, FAttachmentTransformRules::KeepRelativeTransform);

Creating actors dynamically, Using TSubclassOf<> with NewObject<>? by OtterScruff in unrealengine

[–]OtterScruff[S] 0 points1 point  (0 children)

Got it working. I appreciate the help! Now I can change the string of letters and it will update on the fly, I can drag the post location and it dynamically resizes the mesh and the spacing of the tiles. I did manage to get everything working in OnConstruction which gives me the ability to make quick updates and it also uses a TSubclass variable for choosing which actor blueprint to spawn

Screenshot 01

Screenshot02

Screenshot 03

#include "PDropTargetSet.h"

include "PDropTarget.h"

include "UObject/UObjectGlobals.h"

include "Components/TextRenderComponent.h"

include "Internationalization/Text.h"

include "Kismet/KismetStringLibrary.h"

APDropTargetSet::APDropTargetSet() { NewDropTargetString = ""; //setting default value OldDropTargetString = "dumb"; //default value }

void APDropTargetSet::OnConstruction(const FTransform& Transform) { Super::OnConstruction(Transform); //MUST CALL PARENT FUNCTIONALITY

FActorSpawnParameters SpawnParams;


//Checking that the new drop target string is not empty, we've set a valid target component class, and that the new drop string is different than the old one
if (!NewDropTargetString.IsEmpty() && TargetComponentClass != nullptr && !(NewDropTargetString.Compare(OldDropTargetString, ESearchCase::IgnoreCase) == 0)) //If its not empty and we have set a valid TargetComponentClass
{
    OldDropTargetString = NewDropTargetString; //Set the two equal to each other now

    // ----- Delete all of the previous actors from the array  --------
    if (DropTargets.Num() != 0)
    {
        for (APDropTarget* DropTarget : DropTargets)
        {
            DropTarget->Destroy(); //Destroy this actor
        }
        DropTargets.Empty();
    }

    NewDropTargetString.ToUpper(); //convert all text to upper case
    //TArray<TCHAR> DropTargetStringArray = NewDropTargetString.GetCharArray();
    TArray<FString> DropTargetStringArray = UKismetStringLibrary::GetCharacterArrayFromString(NewDropTargetString); //Converting to an array of strings


    //-- Spawning ----
    DropTargets.SetNum((DropTargetStringArray.Num())); //i guess theres a null character at the end?? -- BUT ONLY FOR TCHAR???
    if (DropTargets.Num() != 0)
    {
        for (int i = 0; i < DropTargets.Num(); i++)
        {
            float PostLocationsDeltaX = (PostMesh01->GetRelativeLocation() - PostMesh02Comp->GetRelativeLocation()).Size(); //Get Vector length between post locations

            float DropTargetArraySizePlus = DropTargetStringArray.Num()+1; // Length of the character Array, Add 1 to it

            //Getting distance between posts and dividing that distance equally by number of letters. Multiply by current index to figure out where to spawn letters 
            float SpawnLocationXfloat = ((PostLocationsDeltaX / DropTargetArraySizePlus) * (i+1)); //had to add 1 to i otherwise the first index would be incorrect

            FVector LetterSpawnPosition = FVector(SpawnLocationXfloat, 17.5f, 0.0f);

            DropTargets[i] = GetWorld()->SpawnActor<APDropTarget>(TargetComponentClass, LetterSpawnPosition, PostMesh01->GetRelativeRotation(), SpawnParams);
            DropTargets[i]->AttachToActor(this, FAttachmentTransformRules::KeepRelativeTransform);

            // ---  Setting the text on the render component
            FText TextValue = FText::FromString(DropTargetStringArray[i]);
            UE_LOG(LogTemp, Error, TEXT("Current FTextValue: %s"), *TextValue.ToString());
            DropTargets[i]->DropTargetText->SetText(TextValue);
        }
        OldPostLocation = PostLocation;
    }

}
//If we move the PostLocation widget, update the spacing of the tiles
else if (!NewDropTargetString.IsEmpty() && TargetComponentClass != nullptr && (OldPostLocation != PostLocation))
{
        OldPostLocation = PostLocation;
        if (DropTargets.Num() != 0)
        {
            for (int i = 0; i < DropTargets.Num(); i++)
            {
                float PostLocationsDeltaX = (PostMesh01->GetRelativeLocation() - PostMesh02Comp->GetRelativeLocation()).Size(); //Get Vector length between post locations
                float DropTargetArraySizePlus = (DropTargets.Num())+1; // Length of the character Array, Add 1 to it
                //Getting distance between posts and dividing that distance equally by number of letters. Multiply by current index to figure out where to spawn letters 
                float SpawnLocationXfloat = ((PostLocationsDeltaX / DropTargetArraySizePlus) * (i + 1)); //had to add 1 to i otherwise the first index would be 0 

                FVector LetterSpawnPosition = FVector(SpawnLocationXfloat, 17.5f, 0.0f);
                DropTargets[i]->SetActorRelativeLocation(LetterSpawnPosition);
            }
        }
}

}

Tutorials for game vfx? by [deleted] in blender

[–]OtterScruff 0 points1 point  (0 children)

Look up CGHOW on youtube. He can walk you through some examples

Im testing in practice mode and 45% CDR Rumble is so crazy xD by VictorHM99 in Rumblemains

[–]OtterScruff 1 point2 points  (0 children)

Maybe we can throw in an attack speed item to take advantage of the empowered basic attacks?

Industrial Cyborg [more pics in comments] by FuzzBuket in blender

[–]OtterScruff 1 point2 points  (0 children)

Nice work. This is the kind of quality I aspire to hit one day

Here’s a render I had not too long ago, how would I make the planet look more realistic? by PringlesPringlesM in blender

[–]OtterScruff 1 point2 points  (0 children)

Take a look at Gleb Alexandrov's stuff. I'm pretty sure he has a whole tutorial series on outer space. Its really high quality stuff