i am coming from a background of PIC mcu and arduino.  i have a BBB and a 
Raspberry PI.  i prefer the BBB because of the amount of gpios.  i have 
some coding experience using C and the arduino programming language.  so i 
am used to using that structure.

headers and include files

declare Variables

do you set up of ports, pin modes, and/or peripherals.

main loop

user defined functions

My question is what is the structure of a program when using 
javascript/bonescript to program the BBB.  I have read and watched videos 
of derek molloy that i can just write C or C++ code on the BBB, which 
requires me to understand the file system and the exporting of the gpios 
and all that.  i am not ready to do that just yet.  i have also seen that 
python is a good option for both the BBB and the raspberry pi, but i want 
to try the bonescript/javascript first and try writing some code to control 
a robot.  right now i am working out some code to check the number of 
rotations using disk wheel encoders, so that i can calibrate my motors.  i 
have included the code i am trying to work out.  so far this works to count 
the rotations and output the information to the console, but from here i 
get stuck.

if i was doing this on a mcu:
1) i would create variable and configure my interrupt on change pins
2) write the isr's to check and do the math, when an interrupt occured
3) configure a timer interrupt to check every 1 second then reset the timer
4) write a "main loop" program to control the motors and make adjustments 
to the pwm until all rotation variables are equal in value
or something like that.
with this code i tried to do what i listed above, and like i said i have 
some success, but after this how would i make a loop for the motors do i 
need to make a loop for the motors?  do i just write what i want the motors 
to do?  is there a structure to follow?


//calling bonescript library
var b = require('bonescript');

//variables used for interrupts and counting
var motor1 = 'P9_15';
var motor2 = 'P9_17';
var motor3 = 'P8_16';
var motor4 = 'P8_18';

var counter1 = 0;
var counter2 = 0;
var counter3 = 0;
var counter4 = 0;

var diskslots = 20;

//Setting all motor pins as inputs
b.pinMode(motor1, b.INPUT);
b.pinMode(motor2, b.INPUT);
b.pinMode(motor3, b.INPUT);
b.pinMode(motor4, b.INPUT);

//Interrupt Service Routines
function ISR_Count1()
{
counter1++;
}
function ISR_Count2()
{
        counter2++;
}
function ISR_Count3()
{
        counter3++;
}
function ISR_Count4()
{
        counter4++;
}

//make motor pins external interrupts
b.attachInterrupt(motor1, true, b.CHANGE, ISR_Count1);
b.attachInterrupt(motor2, true, b.CHANGE, ISR_Count2);
b.attachInterrupt(motor3, true, b.CHANGE, ISR_Count3);
b.attachInterrupt(motor4, true, b.CHANGE, ISR_Count4);



//Function to count the rotaions and output data to console log

function motorOut()
{
b.detachInterrupt(motor1);
        var rotation1 = counter1/20;
        console.log("Motor 1: ", rotation1);
counter1 = 0;
b.detachInterrupt(motor2);
        var rotation2 = counter2/20;
        console.log("Motor 2: ", rotation2);
counter2 = 0;
        b.detachInterrupt(motor3);
        var rotation3 = counter3/20;
        console.log("Motor 3: ", rotation3);
counter3 = 0;
        b.detachInterrupt(motor4);
        var rotation4 = counter4/20;
        console.log("Motor 4: ", rotation4);
counter4 = 0;
}


setInterval(motorOut,1000); 
   
sorry for the unorganizedness of this post.  its midnight where im at and 
sleep may 5 hrs a night for the last eight months.  

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/a5bee2ac-829b-46d2-b0f4-7983e06898b0%40googlegroups.com.

Reply via email to