Deprecated: Required parameter $query follows optional parameter $post in /var/www/html/wp-content/plugins/elementor-extras/modules/breadcrumbs/widgets/breadcrumbs.php on line 1215
Physics Engine - Blocks, Python Functions, Projects | PictoBlox Extension
[PictoBloxExtension]

Physics Engine

physics
Extension Description
Add physics to simulate the real-life simulation.

Introduction

What is Physics Engine?

Physics Engine is a 2D rigid body simulation library for making games and animations. Programmers can use it in their games to make objects move in realistic ways and make the projects more interactive. From the game engine’s point of view, the physics engine is just a system for procedural animation.

Accessing Physics Engine in Block Coding

Following is the process to add Physics Engine capability to the PictoBlox Project.

  1. Open PictoBlox and create a new file.
  2. Select the coding environment as Block Coding.
  3. Next, click on the Add Extension button and add the Physics Engine extension.
  4. You can find the Physics Engine blocks available in the project.

Core Concepts

Physics Engine works with several fundamental concepts and objects. We briefly define these objects here and more details are given later in the block definitions and examples.

  1. Shape: A shape is a 2D geometrical sprite, such as a circle or polygon or the sprite shape.
  2. Rigid body: A chunk of matter that is so strong that the distance between any two bits of matter on the chunk is constant. They are hard like a diamond. In the following discussion, we use body interchangeably with rigid body.
  3. Fixture: A fixture binds a shape to a body and adds material properties such as density, friction, and restitution. A fixture puts a shape into the collision system (broad phase) so that it can collide with other shapes.
  4. Constraint: A constraint is a physical connection that removes degrees of freedom from bodies. A 2D body has 3 degrees of freedom (two translation coordinates and one rotation coordinate). If we take a body and pin it to the wall (like a pendulum) we have constrained the body to the wall. At this point the body can only rotate about the pin, so the constraint has removed 2 degrees of freedom.
  5. Contact constraint: A special constraint designed to prevent penetration of rigid bodies and to simulate friction and restitution. You do not create contact constraints; they are created automatically by Physics Engine.
  6. World: A physics world is a collection of bodies, fixtures, and constraints that interact together. Box2D supports the creation of multiple worlds, but this is usually not necessary or desirable.
  7. Solver: The physics world has a solver that is used to advance time and resolve contact and joint constraints. The Box2D solver is a high-performance iterative solver that operates in order N time, where N is the number of constraints.
  8. Continuous collision: The solver advances bodies in time using discrete time steps.
Read More

PictoBlox Blocks

The block enables or disables the automatic display of the box on the QR code on the stage. This is useful when you want to see if the detection happens or not.
The function returns the temperature, minimum, and maximum temperature of the location.
The block pauses its script for the specified amount of beats, which can be a fraction.
The block gets values of the video, either motion (on a scale of 1 to 100) or direction (which way the detected motion is going, measured on the same plane as sprite direction), on either the Stage or the current sprite. If there is no video, the block will return -1. It calculates the values based on “optical flow”.
The block removes all marks made by the pen or stamping. It is the only pen block that the Stage can use.
The block reads the digital value of the sensors connected to the specified pin. The block returns True or False.
The block moves the Quarky robot in the specified direction for the specified time. The direction can be “FORWARD”, “BACKWARD”, “LEFT”, and “RIGHT”.
The block returns the state of the specified push button. If the button is pressed it returns True or else False.
The block plays the specified audio on the Quarky speaker. The block has a callback, so other blocks will be executed after the audio is played.
The turn () video on stage with () % transparency block controls the control the camera feed on the stage.
This block should be included with the Mars Rover for the first time as it calibrates the angles of all five servo motors and saves the angles in the memory of Quarky.
Once the input is given the value using the set () as () block, the analyse numbers block runs the inputs through the ML model and stores the output values in PictoBlox.
The block checks if the currently recognized class from the recognition window is the selected class or not.
The block sets the gravity for the physics engine in the defined x and y directions.
The block activates the sprite under this hat block when the sensor connected to the selected pin becomes HIGH (or 3.3V). The block is used for digital sensors like PIR Sensor, Flame Sensor, or the IR Sensor.
The block sets the servo motor connected to the specified servo pin of the Quarky Expansion board to the specified angle. The expansion board can control 8 servos at a time.
The block set up the API connection between the PictoBlox and the Adafruit server with the specified username and AIO key. 
The block sets the defined value 1, 2, or 3 in the body of the IFTTT request to the specified value.
This block should be included every time you work with the quadruped as this block calibrates the angles of the servo motors and saves it in the memory of Quarky. Due to some mechanical assembly errors, there may be some misalignment of the servos which can be handled with this block.
The block is used for creating the data row for the CSV file. The data number specifies the column for the data value.
This block calibrates the angles of the hip and foot servo motors and saves it in the memory of Quarky. Due to some mechanical assembly errors, there may be some misalignment of the servos which can be handled with this block.
The block makes the robot move in the specified direction at the specified speed.
The maximum length in ChatGPT is the maximum number of words that can be used in a single message. This is usually set by the users and can vary depending on the use case. It is usually set to prevent messages from becoming too long and cluttered.
This block reads the value from the analog pins of boards such as Arduino Uno, Arduino Mega, or Arduino Nano. It returns the 10-bit resolution of the analog pin, with a range of 0 – 1023, which is mapped to the voltage of the pin (usually 0 – 5V). For example, if the value received is 512, then the voltage is roughly 2.5V.
This block of code is setting up an I2C LCD module by initializing it with an address code.
This block is a calibration process for the robotic arm. It is used to measure and save the offset angle of the servo motors in the memory of the Quarky.
Starts the script when you click on the sprite.
Moves the sprite a specified number of steps backward.
Makes the sprite appear as if fully visible.
Runs the blocks inside a specified of times.
All articles loaded
No more articles to load

Block Coding Examples

All articles loaded
No more articles to load
Table of Contents