C :: Making Self Balancing Robot - Using PID Loops

Oct 20, 2013

As the title says im trying to make a self balancing robot.

I am using an accelerometer and a gyro as sensors.

I am just really confused when it comes to programming in a PID loop to actually use feedback from the sensors to control the motors.

I sort of understand what needs to be done concering PID loops, just i dont know how to do it.

View 9 Replies


ADVERTISEMENT

C :: Self Balancing Robot / PID Terms?

Oct 23, 2013

Im trying to tune my PID loop to make my robot balance but i dont know if im using the right terms for my robot? Im implementing a contemporary filter for my Gyro(98%) and Acc(2%).Is the following right?

output=(Kp*error)+(Ki*(error*dt))+(Kd*((error-prev_error)/dt))
error=robot angle --Balance point at 0deg
prev_error=--Previous error
dt=0.01 --10ms delay

View 2 Replies View Related

C++ :: Calculating Interest And Making Nested Loops Not Working

Feb 4, 2013

For each quarter, calculate and display the beginning principal balance, the interest earned, and the final principal balance for the quarter.For example: The user entered 1000.00 for the beginning principal balance, 5.25 for the interest rate, and 8 for the number of quarters. The output from this part of the program should be similar to the following:

Q| Beginning Principle| Interest Earned| End Principle
1| $1,000.00 | $13.13 | $1,013.13
2| $1,013.13 | $13.30 | $1,026.42
3| $1,026.42 | $13.47 | $1,039.89
etc

Here is the code I have so far, and I just am not quite sure where to go next.

Code:

{
cout << "Quarters" << " " << "Beginning Principles" << " " <<"Interest Earned" << " " <<"End Principal" << endl;
endprin = balance + (quarter * interest);
interest = quarter * interest;
cout << endprin << endl;

}

View 2 Replies View Related

C :: Reading Pseudo Code For Car Robot?

Sep 12, 2014

I'm doing a practice problem where I need to read pseudo code and understand what it does.

For this code, I believe it will move the robot forward while i<650, so it moves it forward for 650 steps in total. Then it sets the motors to 0 when it's finished.

Code:
while(i<650)
{ rotateCW(2);
rotateCCW(1);
Delay1KTCYx(50);
i++;
LATD=0x00; //Set all Port D to 0
}

This code I'm having the most trouble with. So while(1) the pot(potentiometer) read's the ADC. Then it scales the adc, not 100% sure what the +20 and *.22 mean, I think it has to do with binary conversions?

Now it sets pin 1 of port 1 to 0, delays based on pot above, and sets it back to 1, and delays again. I assume something to do with controlling motor speed based on the potentiometer.

Code:
void main(void){TRISD = 0x00; // Setting port D to outputs
LATDbits.LATD0 = 1; // Setting bit 0 of port D to 1
while(1) {
pot = readADC();
pot = pot * 0.2297 + 20;

[Code] ......

My best guess is: The car moves forward 400 steps, stop, turn right for 230 steps, stop. At this point it would begin moving straight, and it would turn left/right as needed to keep the robot in the center of the track.

Code:
void main(void) {
for(i=0;i<400;i++) {
rotateCW(2,motor); //Rotate motor two (one step)
rotateCCW(1,motor); //Rotate motor one (one step)
Delay1KTCYx(50);

[Code].....

View 5 Replies View Related

C/C++ :: Array Incrementation Of 3PI Robot Program?

Sep 25, 2014

I am attempting to write a simple program and compile it onto a 3pi robot. My problem lies with my array, i need the array to increment by one every time through and whenever i run the code the print out reads "ROOM 0" every time.

#include <pololu/3pi.h> /* allow use of 3pi robot functions */
#include <avr/pgmspace.h> /* allow use of program space */
#include <stdio.h> /* for printf() */
#define NUM_ROOMS 11 /* the number of study rooms */
/* function prototype for battery check */
void bat_check( void );

[code].....

View 4 Replies View Related

C++ :: Arduino Robot - Virtual Controller And Path Map

Jul 14, 2014

I know how to create your basic programm that compiles as a CLI or exports and/or saves data to a .txt file... But how does one build a GUI?

I ask because I am currently working on a programm for my Arduino controlled robot, in which I want to have a virtual on screen controller next to a map of my bots path.

View 4 Replies View Related

C/C++ :: Path Finding For Weighted Cyclic Directed Graph For Robot

Mar 14, 2015

I've been trying to make a program to return node values for the shortest path from one node to another. I've searched up several algorithms like the Bellman Ford, A*, or Dijkstra and tried to think of ways to implement them if I store my map as a matrix. I've considered using a hash table, but since I am only a beginner, I am having trouble trying to understand how the concepts would translate into C.

View 1 Replies View Related

C++ :: For And Do While Loops

May 10, 2014

I this notation:
for (; *strings[i]; i++)

the same as:
do {
i++
} while(*strings[i]);

?

View 2 Replies View Related

C :: Integer Sum Using For And While Loops

Mar 6, 2015

I have an assignment that calls for a C program using a for loop AND a while loop that will receive an integer (called daNumba) and double it -- Using the integer the program will call the sumFor function and then the sumWhile function. These functions will both sum the values from daNumba to (daNumba * 2) ifdaNumba is positive. If daNumba is not positive it will add the values from (daNumba*2) to daNumba. Both functions will receive the value of daNumba and return a summed value. The only difference between the 2 functions is that sumFor will only use for loops and sumWhile will only use while loops. We are not to use arrays.

The program compiles without error. So far my while loop works for positive integers, but not with a negative integer (I have it commented out) I cannot get the for loop to work properly This is what I have so far -- I am stuck....

Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main () {

[Code] ....

View 12 Replies View Related

C :: Why Keep Getting Infinite Loops

May 30, 2014

See code below:

#include <stdlib.h>
#include <stdio.h>

int main ( int argc, char *argv[] ) {
int P[150] = {}, i, j;
for ( i = 2; i <= 150; i++ ) {

[Code] .....

Using gdb, I noticed that the variable j keep going back to initial value after the interior for loop condition returns false. Why doesn't this for loop terminate right away?

View 6 Replies View Related

C :: IF Statements Within Loops

Jan 29, 2014

I've just started learning the C language, and I'm stuck on something that is probably quite simple.how to get IF statements working within WHILE loops. My code is below. I am trying to write a program to count the number of words in a sentence, and obviously stop counting after a full stop has been entered. I created a variable called 'spaces' which will increase by one after the user enters a space. However, when the IF statement is in place, the loop never terminates, even if I enter a full stop. When I delete the IF statement, the loop functions correctly.

Code:

#include <stdio.h>
int main()
{
char x;
char a;
char y;
int spaces = 0;
}

[code]....

View 4 Replies View Related

C :: Nested For Loops

Jun 1, 2013

What output would you expect from this program?" The output was not what I expected. I've psuedo-coded this out and I'm still missing something.

Code:

#include <stdio.h>
int main () {
int numbers[10] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int i, j;
}

[code]....

The output: Code: 1 1 2 4 8 16 32 64 128 256 So when I look at this first loop I see that j = 0, which is less than 10, so then the program statement should commence, which is another for loop. So in this inner for loop I see that i = 0, which is not less than j, so this loop should terminate. Then the value of j increments by 1 and the first go around of the loop has completed.

Now I see that j = 1, so this is less than 10, and the inner for loop commences once again. This time though, i actually is less than j, so numbers[1] = numbers[1] + numbers [0], or numbers[1] = 0 + 1. Now the value of i is incremented by 1 and the first go around of this inner loop has completed. Then the value of j increments by 1 and another go around of that loop has completed.

So now j = 2, i = 1, and numbers[2] ( which is 0 ) = numbers[2] + numbers[1], or numbers[2] = 0 + 1. I was expecting the output to be an array full of 1's. However this is not the case..

View 6 Replies View Related

C++ :: Squaring In For Loops

Feb 9, 2014

I need to make a for loop without: using the math functions like pow, sqrt, etc. or an if-statement.I can only use the basic arithmetic functions like +,-,*, and.The for loop needs to display: 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192 as the result

How do I make it so my loop works? This is what I have and it doesn't work...and I have no clue how to continue...

k = 0; //k is an int and I have declared it in the beginning of my code
for( k = 0; k < 13; k++ ) {
printf ( "%d, ",k );
k = k * 2;
}
printf("%d", x);

View 1 Replies View Related

C# :: Using If Statement And Loops?

Nov 28, 2014

I just want to say that I just started learning the language and this is my very first shot at writing a simple program that is not "Hello World" So I recently learnt the basics of the if statement and how to loop in a console application, here's what it looks like:

namespace Testing_IF_Statement
{
class Program
{

[Code].....

And again, this is just what I wrote in a few minutes without putting any thought into it.

Questions:
1)I have heard that the way I'm looping by using the goto statement is considered quite ancient, why is this and how else could I loop the program?

2)I declared a as an integer and asked the user to type 1,2,3,4 to perform mathematical functions, but when I tried declaring a as a string and searching if a == "PLUS" etc it would throw an error. Is there any mistake in how I approached this?

3)I know this is a bit premature to ask, but instead of writing _________ in the console to separate the loop is there any professional way to add a separator?

4)In general how can I improve the code?

View 9 Replies View Related

C# :: How To Read The Key In Loops

Mar 18, 2015

im trying to make a program which will tell which key i pressed and then it will print in msgbox, but i cant figure out how to read the key in loops, like i tried getasynkey (imported to my c# console app) with value around -32676 or -32767 i ( i found it on internet) and it only shows the key once, i want to do like while my key is pressed, then it will spam my console with key pressed, is there any way to do it?

View 6 Replies View Related

C++ :: Making A Game With GUI

Feb 27, 2015

Here's my game, what do I need to learn to make a basic GUI? (Easiest way possible for now).

--NOTE, the code was a bit too long for me to post. I can add it if it is necessary. Basically all I want are 4 buttons on the main screen, one that says "Arena," "Store," "Stats," and "Exit."

There will of course be sub menus to each option, but we will get to that later.

View 1 Replies View Related

C++ :: Making DLL Of EXE Project

May 28, 2013

I have project that is on c++. it runs fine. i want to use it in my C# application as a dll. i have created its dll and but firing exception of "interprocess communication".

Is this a doable task that creating dll of an exe project and using it in C# application?

View 1 Replies View Related

C++ :: Error While Making DLL

Dec 17, 2013

So I tried to find some youtube videos on how to make a DLL, I found one, I also found several topics (like on msdn and stuff), but I have this code

header

#include <WinSock2.h>
#include <WS2tcpip.h>
#include <Windows.h>
#include <string>
using namespace std;

#pragma comment(lib, "ws2_32.lib")

[Code] ....

And I'm getting these errors:

1>error LNK2001: unresolved external symbol "private: static char * PathSocket::cBuffer" (?cBuffer@PathSocket@@0PADA)
error LNK2001: unresolved external symbol "private: static unsigned int * PathSocket::socket" (?socket@PathSocket@@0PAIA)
error LNK2001: unresolved external symbol "private: static void * PathSocket::hIDTask" (?hIDTask@PathSocket@@0PAXA)

WHY is there static, and what does dllimport/dllexport does? also there are NO tutorials with variables inside dll >.<

I've been following this [URL] ..... and the video I already lost, however there's no

#ifdef MATHFUNCSDLL_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport)
#else
#define MATHFUNCSDLL_API __declspec(dllimport)
#endif

in the video, why do we have to use that? [URL] .....

View 19 Replies View Related

C/C++ :: Making Tic Tac Toe Without Arrays?

Nov 13, 2014

I am trying to get this to work without arrays. At the moment all I am trying to do is allow it so that when the user presses 1 the board prints with 1 replaced by X, tell me where am i going wrong. I know its not finished.

#include <stdio.h>
#include <stdbool.h>
char a = '1';
char b = '2';
char c = '3';

[code]....

View 3 Replies View Related

C++ :: Increment And Decrement - No Loops

Sep 29, 2014

Parts of this program are missing. The last few lines are confusing, since the variable 'a' gets incremented then decremented. But there are no loops. I understand that the value of 'a' is passed to 'c' before 'a' is changed in both cases.

But where, and when, do the changes take place? Is the decrement ever processed? Is there a better way to write these lines?

Code:
main(){ int a = 21;int b = 10;int c ;
c = a++;
cout << "Line 6 - Value of c is :" << c << endl ;
c = a--;
cout << "Line 7 - Value of c is :" << c << endl ;
return 0;}

View 5 Replies View Related

C++ :: Linking / Mixing For Loops?

Mar 8, 2013

i am trying to write program that prints out full lyrics to 99 bear song. Hoping for explanation or anything

The output would have to look like:

99 bottles of beer on the wall, 99 bottles of beer.

Take one down and pass it around, 98 bottles of beer on the wall.

My try below:

Code: #include <iostream>
using namespace std;
int main()
{
for(int i=99; i>=0 ;i--)
cout << i <<""<< " bottles of beer on the wall, "<<i<<" bottles of beer."<<endl;
for(int j=98; j>=0 ;j--){
cout <<endl;
cout << "Take one down and pass it around," <<j<<" bottles of beer on the wall."<<endl;
}
return 0;
}

View 3 Replies View Related

C :: Printing A Rectangle Using For Loops?

Jan 27, 2015

I'm trying to make a program that prints a rectangle using "*" asterisks. I am only allowed to use "for loops" and I simply cannot get this to work properly. Here is my code so far...

Code:
int main(void)
{
//RectangleSize represents the area of the rectangle(width*length)
int length, width, RectangleSize;

[Code].....

View 5 Replies View Related

C :: How To Print Out Structures Using Loops

Jun 23, 2013

How to print out these structures using loops.. printing out these outputs using loops..

View 5 Replies View Related

C :: How To Make Nested Loops

Dec 7, 2013

Howi can made nested loops?

Code:

for (yax=0; yax<10; yax=yax+1) {
for (xax=0; xax<100; xax=xax+1) {
printf("%d
",yax);
}
}

way what i tired dont work. or maybe works but why this prints only zeros ?

View 8 Replies View Related

C :: Loops That Would Generate Same Results

Nov 20, 2013

Using loops that would generate the same results. I need to use a loop that would make the syntax less lengthy ....

Code:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>

float check(float s);
void load(float*);

[Code] .....

View 2 Replies View Related

C :: Printing A Hexagon Using Loops?

Feb 3, 2015

getting my program to print a hexagon made of asterisks. I can get the program to print a solid hexagon, but I need a hollow hexagon.

Code:

#include<stdio.h>
int main(void) {
int length, i=0, j=0, k, l;

[Code].....

View 12 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved