while the making and using of various embodiments of the present invention are discussed in detail below , it should be appreciated that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts . the specific embodiments discussed herein are merely illustrative of specific ways to make and use the invention and do not delimit the scope of the invention . to facilitate the understanding of this invention , a number of terms are defined below . terms defined herein have meanings as commonly understood by a person of ordinary skill in the areas relevant to the present invention . terms such as “ a ”, “ an ” and “ the ” are not intended to refer to only a singular entity , but include the general class of which a specific example may be used for illustration . the terminology herein is used to describe specific embodiments of the invention , but their usage does not delimit the invention , except as outlined in the claims . the word fungo is defined by haney &# 39 ; s book of reference as “[ a ] preliminary practice game in which one player takes the bat and , tossing the ball up , hits it as it falls , and if the ball is caught in the field on the fly , the player catching it takes the bat . it is useless as practice in batting , but good for taking fly balls . . . .” as used herein , the term “ fungo ” or “ fungoman ” are used to describe an apparatus and system that , unlike conventional baseball pitching machines that are only able deliver a ball to a two - dimensional target ( i . e ., the strike zone ), is able to deliver any object to a three dimensional zone , area or landscape . the fungo may be fully - automated and / or used in manual mode . fungoman is best described as a programmable ball throwing machine that is able to eject hardballs or softballs to preset positions with programmable projection characteristics . in one embodiment , the machine is set - up at home plate on a baseball or softball field and through the use of the machine , a coach is able to train players by launching balls that simulate balls batted to them during regular play . a standard set of ball launching wheels have been mounted on a base with horizontal and vertical displacement capabilities that allow the ejection of a ball with the simulated characteristics of a baseball batted in the traditional manner of a batter using a baseball or softball bat . closed loop positioning controls have been combined in a unique fashion that enables the launching of a series of balls to preprogrammed positions with launch characteristics that provides an entire baseball team or an individual with a meaningful practice session . fungoman is a complete , automated coaching machine . in order to train a baseball team , a coach must posses the ability to hit a ball that simulates a ball being hit by a batter during regular play . a special bat called a “ fungo ” bat has been developed for that specific purpose . however , use of a fungo bat requires a considerable amount of training and concentration on the part of the coach . this detracts from his ability to concentrate on coaching the player he is batting to . once the problem of launching precisely placed balls with the desired launch characteristics have been overcome , a meaningful launch sequence must be developed into a realistic routine that leads to the enhancement of the ball player &# 39 ; s skills . the coach needs to be free to analyze each player &# 39 ; s reaction and fielding technique to each ball as it is hit to him . the coach also needs the ability to interrupt the launch sequence , give timely , specific instructions to a player and repeat the launch several times if necessary before resuming the practice session . the apparatus and system of the present invention has the ability to precisely place objects , e . g ., a baseball , with realistic characteristics such as top spin , back spin , single hop , multi - hop , line drive , fly ball or pop ups , in a programmed sequence interactive with and controlled by a coach to produce a meaningful ball catching practice session . to this end state - of - the - art motor drives with the ability to accelerate rapidly or decelerate from one speed and type launch profile to another have been used . feedback provides closed loop position control and a programmable logic controller connected to a user - friendly man - machine interface that allows the user to call up pre - designated practice sessions or develop new routines based on specific player or team needs . fungoman can simulate previously played games enabling coaches to review errors or reinforce outstanding plays the team or individual performed in the simulated game . for impromptu practice sessions , a manual mode has been incorporated into the design to allow the coach to launch a ball to an individual at a specific location with specific launch characteristics . there is also a manual mode where the coach sets up the machine for back - hand field practice , for example , then selects which position the ball is to be thrown to and easily moves from position to position launching back - hand balls to each . the following is an itemized list of some of the major distinguishing features of the machine : 1 . custom routines for individual or team training sessions . 2 . programmable launch sequences or routines for entire team training sessions . 3 . single position routines for specific position training . 4 . control of the ball speed appropriate to each player &# 39 ; s skill level . 5 . precise , repeatable placement of the launched balls . 6 . ability to impart a realistic launch characteristic on the ball . 7 . position / launch combinations for specific skill development . 8 . motor drives with acceleration and deceleration abilities . 9 . independent speed control of the launch wheels . 10 . safety - enable switch with automatic shut - off when released . 11 . user - friendly man / machine interface . 12 . ability to interrupt a training session and repeat a launch for timely coaching . 13 . use of programmable logic controller for dependable operation . 14 . unique positive stop , ball release mechanism . 15 . portability for ease of storage and relocation . referring initially to fig1 in one embodiment the ball throwing apparatus of the present invention is generally illustrated by reference numeral 1 and includes a ball - ejecting mechanism 22 , typically mounted on a utility box 12 , which may be seated on a base or frame 2 . the frame 2 may include wheels 3 to render the ball throwing apparatus 1 portable . vertically - adjustable stabilizers 4 may also be provided on one end of the frame 2 and may be slidably seated in a handle frame 5 a that mounts vertical elements of a handle 5 to engage the ground and facilitate stabilizing the ball throwing apparatus 1 in a particular location . a control mount pedestal 6 is typically provided on the end of the frame 2 opposite the handle 5 , and serves to mount a control box 7 fitted with box controls 8 for operating the ball throwing apparatus 1 , as hereinafter further described . a controller 75 is typically removably seated on a pin or bracket 8 a , which extends from fixed attachment to the control box 7 , as further illustrated in fig1 . in some embodiments , the controller 75 may be wireless , wired or even a touch screen display . as illustrated in fig4 , the controller 75 may includes a handle 76 , and hand control wiring 10 a ( fig1 ) extends from the controller 75 to the control box 7 for manually operating the ball throwing apparatus 1 by manipulation of various buttons on the controller 75 . in other embodiments the controller 75 may be wireless and linked to the apparatus 1 ( e . g ., bluetooth , wi - fi , frequencies in the 2 . 4 ghz range , frequencies in the 5 . 8 ghz range frequencies in the 900 mhz range , frequencies in the 40 mhz range or combinations thereof ). a mount pedestal 13 is journalled for rotation in a pedestal bottom bearing 15 attached to the bottom of the utility box 12 , and a pedestal gear 14 is fixed to the mount pedestal 13 above the pedestal bottom bearing 15 , as illustrated . a pedestal drive motor 17 is also fixed to the bottom of the utility box 12 and is fitted with a drive motor gear 18 that receives a pedestal drive belt 19 . the pedestal drive belt 19 is also connected to the pedestal gear 14 in driving relationship such that operation of the pedestal drive motor 17 causes the mount pedestal 13 to rotate in the counterclockwise or clockwise direction in the pedestal bottom bearing 15 and in a corresponding top bearing 16 located in the top of the utility box 12 . operation of the pedestal drive motor 17 in rotating the mount pedestal 13 is facilitated by operation of the box controls 8 or the controller 75 at the control box 7 , as further illustrated in fig1 of the drawings . referring to fig1 of the drawings , the mount pedestal 13 extends upwardly from the utility box 12 , through the pedestal top bearing 16 and terminates at a horizontal offset plate 21 that mounts a ball feed frame support mount 34 which also extends upwardly to receive a ball feed frame support 33 . the ball ejection mechanism 22 is mounted on the ball feed frame support mount 34 . a mount clamp plate 62 of the ball ejection mechanism 22 is fixed to the top end of the ball feed frame support mount 34 and may include a rotatable clamp lever 63 that may be adjusted to pivot the ball ejection mechanism 22 in the vertical plane , as hereinafter further described . this adjustment is facilitated , for example , by means of a vertical pivot mount plate 61 mounted to a wheel mount frame 23 of the ball ejection mechanism 22 , which vertical pivot mount plate 61 is pivotally attached to the mount clamp plate 62 . in one embodiment , pivotal adjustment of the ball ejection mechanism 22 in a vertical plane is facilitated by means of an elevation motor 72 that is mounted on the ball feed frame support mount 34 or other element of the apparatus 1 and is operably connected to the wheel mount frame 23 , according to the knowledge of those skilled in the art . as further illustrated in fig1 of the drawings , the wheel mount frame 23 is characterized by an elongated mount frame plate 24 extending from the vertical pivot mount plate 61 and fitted at each end with a wheel guard bracket 25 and corresponding wheel motor 29 for mounting the two counter - rotating wheels 27 on the wheel mount frame 23 . each of the counter - rotating wheels 27 is provided with a peripheral ball - contact surface 28 for contacting and expelling a baseball , softball or other ball from the ball ejection mechanism 22 due to the counter - rotating operation of the counter - rotating wheels 27 by operation of the respective wheel motors 29 , as hereinafter further described . horizontal positioning or aiming of the ball ejection mechanism 22 is facilitated by operation of the pedestal drive motor 17 , which rotates the mount pedestal 13 . the offset plate 21 translates the rotating motion of the mount pedestal 13 to the ball feed frame support mount 34 , which moves the ball ejection mechanism 22 mounted thereon in the horizontal plane . referring again to fig1 of the drawings , the ball feed frame 32 , mounted on the extending upper end of the ball feed frame support 33 , supports a spirally - mounted ball feed tube 35 by means of tube clamps 35 a . the ball feed tube 35 includes a feed tube inlet 36 at the extending top end thereof and a feed tube outlet 37 at the bottom end thereof . a ball feed arm 38 is attached to the lower end of the ball feed tube 35 at the feed tube outlet 37 and includes feed arm slots 38 a . a feed arm outlet 39 terminates the opposite end of the ball feed arm 38 and is aligned with the space between the counter - rotating wheels 27 to facilitate feeding of baseball , softball or other balls through the ball feeder tube 35 and the ball feed arm 38 and between the counter - rotating wheels 27 for ejection , respectively . referring to fig1 of the drawings , a feed arm lip 40 is typically provided at the outlet or ejection end of the feed arm outlet 39 to support the balls 70 as they are sequentially fed from the feed arm outlet 39 to the space between the counter - rotating wheels 27 for ejection . as illustrated in fig1 , a feed arm bracket 41 is also provided on the feed arm outlet 39 to securely mount the feed arm outlet 39 to the wheel mount frame 23 of the ball ejection mechanism 22 . a first ball feed trigger 43 , from which extends a first ball contact finger 49 , is pivotally secured to the ball feed arm 38 at a first trigger pivot pin 46 . the first ball feed trigger 43 is connected to a first trigger pivot spring 44 , which is pivotally secured to the ball feed arm 38 at a first trigger pivot spring mount 45 . first trigger wiring 48 extends from a ball feed trigger control box 59 , secured typically to the feed arm bracket 41 , and is attached to the first ball feed trigger 43 to pivot the first ball feed trigger 43 between the ball - blocking position , with the first ball contact finger 49 projecting into the ball feed arm 38 through the feed arm slot 38 a , and the ball - release position , where the first ball contact finger 49 clears the interior of the ball feed arm 38 against the bias exerted by the first trigger pivot spring 44 . referring now to fig2 and 3 , another embodiment the ball delivering apparatus of the present invention is generally illustrated by reference numeral 1 and includes a ball - ejecting mechanism 22 , typically mounted on a utility box 12 , which may be seated on a base or frame 2 . the wireless control ( not pictured ) links to the to the wireless control box ( not shown ) for manually operating the ball throwing apparatus 1 by manipulation of various buttons on the wireless control box ( not pictured ), as further hereinafter described . the wireless link may be made through bluetooth , wi - fi , frequencies in the 2 . 4 ghz range , frequencies in the 5 . 8 ghz range frequencies in the 900 mhz range , frequencies in the 40 mhz range or combinations thereof . a pedestal drive motor 17 is fixed to the utility box 12 and is also connected to the pedestal 13 such that operation of the pedestal drive motor 17 causes the mount pedestal 13 to rotate in the counterclockwise or clockwise direction in the pedestal . operation of the pedestal drive motor 17 in rotating the mount pedestal 13 is facilitated by operation of the wireless control ( not shown ). referring again to fig2 and 3 of the drawings , the ball ejection mechanism 22 a wheel mount frame 23 , which is mounted on the pedestal 13 . a vertical pivot mount plate ( not shown ) mounted to a wheel mount frame 23 may be adjusted to pivot the ball ejection mechanism 22 in the vertical plane . in one embodiment , pivotal adjustment of the ball ejection mechanism 22 in a vertical plane is facilitated by the use of an elevation motor 72 that is mounted on the ball feed frame support mount 34 or other element of the apparatus 1 and is operably connected to the wheel mount frame 23 , according to the knowledge of those skilled in the art . as further illustrated in fig2 and 3 of the drawings , the wheel mount frame 23 is characterized by an elongated mount frame plate 24 and fitted at each end with a corresponding wheel motor 29 for mounting the two counter - rotating wheels 27 on the wheel mount frame 23 . each of the counter - rotating wheels 27 is provided with a peripheral ball - contact surface 28 for contacting and expelling a baseball , softball or other ball from the ball ejection mechanism 22 due to the counter - rotating operation of the counter - rotating wheels 27 by operation of the respective wheel motors 29 . horizontal positioning or aiming of the ball ejection mechanism 22 is facilitated by operation of the pedestal drive motor 17 , which rotates the mount pedestal 13 in the horizontal plane . this may be accomplished using a wireless controller or a pendant controller . referring again to fig2 and 3 of the drawings , the ball hopper 65 is in connection with utility box 12 and feed tube 35 . the ball hopper 65 is designed to accommodate storage of balls ; however , the size and shape of the ball hopper 65 may be varied as needed for specific application , balls or the like . the ball feed tube 35 includes a feed tube inlet 36 at the utility box 12 and at the top end of the feed tube 35 is the feed tube outlet 37 . a ball feed mechanism may be provided to sequentially feed balls 70 into the feed tube inlet 36 of the ball feed tube 35 . a motor driven ball feed impeller 67 is attached to the lower end of the ball feed tube 35 at the feed tube outlet 36 . the motor driven ball feed impeller 67 propels balls 70 into the ball feed tube 35 through the activation of delivery motor 73 . in one embodiment , a sensor ( not shown ) is placed in feed tube 35 , which is linked to the delivery motor 73 of the motor driven ball feed impeller 67 as to regulate its operation . thus , allowing a continuous flow of balls 70 as long as balls 70 are in the ball hopper 65 . a feed tube outlet 37 is aligned with the space between the counter - rotating wheels 27 to facilitate feeding of baseball , softball or other balls through the ball feeder tube 35 and between the counter - rotating wheels 27 for ejection , respectively . referring next to fig4 and 5 the box controls 8 and the controller 75 are operably connected , through a programmable logic controller 90 , to the pedestal drive motor 17 , the respective wheel motors 29 , the ball feed trigger control box 59 , delivery system motor 73 and the elevation motor 72 to facilitate selected automatic or manual control of those components of the ball throwing apparatus 1 , as hereinafter described . in another embodiment , box controls 8 and the controller 75 are operably connected wirelessly , through a programmable logic controller 90 . accordingly , the programmable ball throwing apparatus 1 can be operated according to an automatic mode , in which the ball ejection mechanism 22 launches each of a succession of balls 70 according to programmed ball launch characteristics , which include skill level , base or field position , range position and elevation . a positioning unit 97 , operably connected to the logic controller 90 , senses the base or field position , range position and elevation position of the ball ejection mechanism 22 with respect to a homing position , which is typically the line drive position at second base . alternatively , the ball throwing apparatus 1 can be operated according to a manual mode , in which the ball ejection mechanism 22 launches each ball 70 according to manually selected skill level , base or field position , range position and elevation ball launch characteristics , using the pendant controller 75 . in either the automatic mode or the manual mode , fielders ( not illustrated ) stand at the left field fielding position , center field fielding position , right field fielding position , first base fielding position , second base fielding position , short stop fielding position and / or third base fielding position in a baseball or softball outfield and attempt to catch the balls 70 launched from the ball ejection mechanism 22 , to hone baseball or softball catching skills . in the automatic mode , the ball ejection mechanism 22 is operated by the programmable logic controller 90 , according to one of multiple programs each having multiple steps . at each step of a particular program , the ball ejection mechanism 22 launches a ball 70 according to the skill level , base or field position , range position , and elevation ball launch characteristics programmed for that step . in each step , the controller 75 is used to launch each ball 70 according to the programmed ball launch characteristics for that step . the ball launch characteristics of each step in a particular program are pre - selected and edited using the various control features of the box controls 8 of the control box 7 , as hereinafter described . in the manual mode , the controller 75 is used both to select the ball launch characteristics for each step , typically with the exception of the skill level , and to launch each ball 70 from the ball ejection mechanism 22 . as illustrated in fig4 and 5 , the box controls 8 of the control box 7 includes a control panel 92 having a left field position button 101 , a center field position button 102 and a right field position button 103 , each of which is typically a push - light button . the field position buttons 101 - 103 are used to program the logic controller 90 ( fig4 ) to position the ball ejection mechanism 22 at the left field fielding position , center field fielding position or right field fielding position , respectively , to launch each ball 70 toward that fielding position at a given step of a particular program . the control panel 92 further includes a first base position button 105 , a second base position button 106 , a shortstop position button 107 and a third base position button 108 , each of which buttons 105 - 108 is typically a push - light button . the base position buttons 105 - 108 are used to program the logic controller 90 to position the ball ejection mechanism 22 at the first base fielding position , second base fielding position , shortstop fielding position or third base fielding position , respectively , to launch each ball 70 toward that selected base or shortstop fielding position at a given step of a particular program . other embodiments may use a touch panel , a computer , a pda , a hand held computer or a palm pilot . in one embodiment of the programmable ball throwing apparatus 1 , one of five different skill levels may be selected . these skill levels are “ pee wee ” ( pw ), corresponding to the slowest ball launch speed ; “ junior ” ( jr ); “ high school ” ( hs ); “ college ” ( col ); and “ pro ” ( pro ), corresponding to the highest ball launch speed . accordingly , as further illustrated in fig4 and 5 , the control panel 92 on the box controls 8 of the control box 7 includes a pro skill level button 110 , a col skill level button 111 , an hs skill level button 112 , a jr skill level button 113 , and a pw skill level button 114 . the skill level buttons 110 - 114 are typically push - light buttons and are used to program the logic controller 90 to operate the launch motors 29 at various speeds , and therefore , launch each ball 70 between the wheels 27 at the speed , which corresponds to the selected skill level at a given step of a particular program . an “ up ” elevation button 116 and a “ down ” elevation button 117 , each of which is typically a push - light button , are provided on the control panel 92 and used to program the logic controller 90 to operate the elevation motor 72 to angle the ball ejection mechanism 22 along a vertical plane in a lowermost (− 2 ) position , in which the ball ejection mechanism 22 launches a ball 70 in a “ multi - hop ” trajectory ; a lower position (− 1 ), in which the ball 70 is launched in a “ one - hop ” trajectory ; a line drive ( ld ) position ; an upper position (+ 1 ), in which the ball 70 is launched in a “ fly ball ” trajectory ; and an uppermost (+ 2 ) position , in which the ball 70 is launched in a “ pop fly ” trajectory , at a given step of a particular program . accordingly , the logic controller 90 is calibrated to initially position the ball ejection mechanism typically in the line drive ( ld ) position . the “ up ” elevation button 116 is pressed once to program the logic controller 90 to position the ball ejection mechanism 22 in the upper (+ 1 ) position and launch a “ fly ball .” the “ up ” elevation button 116 is pressed twice to position the ball ejection mechanism 22 in the uppermost (+ 2 ) position and launch a “ pop fly .” from the line drive ( ld ) position , the “ down ” elevation button 117 is pressed once to program the logic controller 90 to position the ball ejection mechanism 22 in the lower (− 1 ) position and launch a “ one - hop ”, and twice to program the logic controller 90 to position the ball ejection mechanism 22 in the lowermost (− 2 ) position and launch a “ multi - hop ”. a right range button 119 and a left range button 120 , each of which is typically a push - light button , are provided on the control panel 92 to program the logic controller 90 to operate the pedestal drive motor 17 to position the ball ejection mechanism 22 at a direct hit ( 0 ) position ; at a forehand (− 1 ) position , in which a ball 70 is launched to the left of each base or field fielding position ; at a forehand (− 2 ) position , in which a ball 70 is launched to the far left of each base or field fielding position ; at a backhand (+ 1 ) position , in which a ball 70 is launched to the right of each base or field fielding position ; and at a backhand (+ 2 ) position , in which a ball 70 is launched to the far right of each base or field fielding position , at a given step of a particular program . from the direct hit ( 0 ) position , the right range button 119 is pressed once to select the right backhand (+ 1 ) position and twice to select the far right backhand (+ 2 ) position . from the line drive position ( ld ), the left range button 119 is pressed once to select the left forehand (− 1 ) position and twice to select the far left forehand (− 2 ) position . a program mode selector switch 94 and a run mode selector switch 95 are included on the control panel 92 . the program mode selector switch 94 includes a “ program ” setting ( p ), an “ edit ” setting ( e ), and a “ run ” setting ( r ). the program mode selector switch 94 is set to the “ program ” setting ( p ) to select among the multiple ball - launch programs , each including multiple ball launch steps , whereas the program mode selector switch 94 is set to the “ edit ” setting to edit the various ball launch characteristics in a particular step of a given program , using the various control features on the control panel 92 . the program mode selector switch 94 is set to the “ run ” ( r ) setting to run the selected and edited program in the automatic mode or to operate the apparatus 1 in the manual mode , which automatic or manual mode is selected using the run mode selector switch 95 as hereinafter described . the run mode selector switch 95 includes an “ automatic ” setting ( a ), an “ off ” setting ( o ), and a “ manual ” setting ( m ). the switch 95 is set to the “ automatic ” setting ( a ) to run the apparatus 1 in the automatic mode , according to the ball launch program previously selected and edited using the program mode selector switch 94 . the run mode selector switch 95 is set to the “ manual ” setting ( m ) to run the apparatus 1 in the manual mode , using the pendant controller 75 . the program mode selector switch 95 is set to the “ off ” ( o ) position to turn off the apparatus 1 . the control panel 92 further includes a digital display 93 having an “ up ” selector button 93 a and a “ down ” selector button 93 b . when the program mode selector switch 94 is turned to the “ p ” setting to select the desired program to be edited or to be run in the automatic mode , the number of the program selected appears in the digital display 93 . the “ up ” selector button 93 a and the “ down ” selector button 93 b are pressed to scroll through the available programs by number and select the program to be edited and / or run , as indicated by program number in the digital display 93 . when the selected program appears by number in the digital display 93 , the program mode selector switch 94 is next turned to the “ e ” setting to edit the desired step or steps in the selected program , using the various control features on the control panel 92 . the number of the step being edited in the selected program appears in the digital display 93 . the “ up ” selector button 93 a and the “ down ” selector button 93 b are pressed to scroll through the steps by number in the program and individually select each step to be edited , as indicated by number in the digital display 93 . alternatively , in another embodiment the control box 7 may include box controls 8 in the form of a touch screen display . the touch screen display can display different regions of the box controls 8 as active and / or choices depending on the program in operation at the time . for example , the touch screen may display choices for a main menu which allows the selection of the mode of operation of the apparatus 1 by the selection of setup mode , manual mode , program mode , maintenance mode or manual on the fly mode as hereinafter described in fig6 and in fig7 as a screen shot of one embodiment of the touch screen controller . when the apparatus 1 is run in the “ manual ” mode , as hereinafter further described , the controller 75 is used to manually control the various ball launch characteristics of the ball ejection mechanism 22 . the controller 75 includes a first base position button 81 which is pressed to aim the ball ejection mechanism 22 toward the first base fielding position in a baseball or softball outfield , a second base position button 82 which is pressed to aim the ball ejection mechanism 22 toward the second base fielding position , a short - stop position button 83 which is pressed to aim the ball ejection mechanism 22 toward the short - stop fielding position , and a third base position button 84 which is pressed to aim the ball ejection mechanism 22 toward the third base fielding position . accordingly , depression of the base position buttons 81 - 84 energizes the pedestal drive motor 17 to rotate the mount pedestal 13 in a clockwise or counterclockwise direction in order to facilitate proper positioning or aiming of the ball ejection mechanism 22 toward the selected base or shortstop fielding position . a left field position button 78 , a center field position button 79 and a right field position button 80 are provided on the controller 75 . depression of the left field position button 78 , the center field position button 79 or the right field position button 80 energizes the pedestal drive motor 17 to rotate the mount pedestal 13 in order to facilitate proper positioning of the ball ejection mechanism 22 toward the selected left field fielding position , center field fielding position or right field fielding position , respectively , in the outfield . an “ up ” elevation button 85 and a “ down ” elevation button 86 are typically included on the controller 75 to facilitate operation of the elevation motor 72 to pivot the ball ejection mechanism 22 in a vertical plane . accordingly , the elevation motor 72 is calibrated to initially orient the ball ejection mechanism 22 typically in a line drive ( ld ) homing position , in which balls 70 are ejected from the ball ejection mechanism 22 in a generally horizontal , line - drive trajectory . by one depression of the “ up ” elevation button 85 , the elevation motor 72 tilts the ball ejection mechanism 22 upwardly to an upper “ fly ball ” (+ 1 ) elevation position , such that the ball ejection mechanism 22 ejects balls 70 in a fly ball trajectory . by two depressions of the “ up ” elevation button 85 , the elevation motor 72 tilts the ball ejection mechanism 22 upwardly to an uppermost “ pop fly ” (+ 2 ) elevation position , such that the ball ejection mechanism 22 ejects balls 70 in a pop fly trajectory . with the ball ejection mechanism 22 oriented in the line drive homing position , the “ down ” elevation button 86 is pressed once to cause the elevation motor 72 to tilt the ball ejection mechanism 22 downwardly , such that balls 70 are ejected in a “ one hop ” (− 1 ) trajectory . by depression of the “ down ” elevation button 86 twice , the elevation motor 72 tilts the ball ejection mechanism 22 downwardly such that balls 70 are ejected in a “ multi hop ” (− 2 ) trajectory . the controller 75 further includes a right range button 87 and a left range button 88 which can be pressed to actuate the pedestal drive motor 17 to position the ball ejection mechanism 22 toward a far right (+ 2 ) backhand position , a right (+ 1 ) backhand position , a center or direct hit ( 0 ) position , a left (− 1 ) forehand position or a far left (− 2 ) forehand position , respectively , of each first base , second base , short stop or third base fielding position , selected using one of the position buttons , or to the left , far left , right or far right of each left field fielding position , center field fielding position or right field fielding position selected using the left field position button 78 , center field position button 79 or right field position button 80 . for example , the programmable ball throwing apparatus 1 is typically calibrated to aim the ball ejection mechanism 22 toward the center or line - drive ( ld ) position of the selected base or field fielding position . depression of the left range button 88 once facilitates positioning of the ball ejection mechanism 22 toward the left forehand (− 1 ) position , whereas depression of the right range button 87 once facilitates aiming of the ball ejection mechanism 22 toward the right backhand (+ 1 ) position . depression of the left range button 88 twice facilitates positioning of the ball ejection mechanism 22 toward the far left forehand (− 2 ) position , whereas depression of the right range button 87 twice facilitates positioning of the ball ejection mechanism 22 toward the far right backhand (+ 2 ) position . like the base position buttons 81 - 84 and the field position buttons 78 - 80 , the right range button 87 and left range button 88 energize the pedestal drive motor 17 to rotate the mount pedestal 13 in a clockwise or counterclockwise direction in order to facilitate proper positioning of the ball ejection mechanism 22 to the right or left of the selected base or field position . a right position indicator light ( not illustrated ) and a left position indicator light ( not illustrated ) may be further provided on the controller 75 . accordingly , when the ball ejection mechanism 22 is aimed toward the right backhand (+ 1 ) position of one of the base or field positions , the right position indicator light is continuously illuminated . when the ball ejection mechanism 22 is aimed toward the far right backhand (+ 2 ) position of one of the base or field positions , the right position indicator light flashes or blinks . conversely , when the ball ejection mechanism 22 is aimed toward the left forehand (− 1 ) position of a base or field position , the left position indicator light is continuously illuminated . the left position indicator light flashes or blinks when the ball ejection mechanism 22 is aimed toward the far left forehand (− 2 ) position . when the ball ejection mechanism 22 is aimed in the center range or line drive ( ld ) position of one of the base or field positions , neither the right position indicator light nor the left position indicator light is illuminated or flashes . a launch button 77 provided on the controller 75 is pressed to manually launch each ball 70 from the ball ejection mechanism 22 , toward the desired base or field position , range position and elevation position in the baseball or softball outfield previously selected by pressing one of the base position buttons 81 - 84 , range position buttons 87 , 88 , and elevation position buttons 85 , 86 . accordingly , the launch button 77 actuates the release one of the balls 70 between the rotating wheels 27 . referring next to fig6 , the programmable ball throwing apparatus 1 is capable of being operated in an automatic mode or a manual mode , as hereinafter described . as illustrated in fig6 , block 602 displays a main menu which allows the selection of the mode of operation of the apparatus 1 by the selection of block 604 setup mode , block 606 manual mode , block 608 program mode , block 610 maintenance mode or block 700 manual on the fly mode as hereinafter described . for example , fig7 is a screen shot of one embodiment of block 602 displayed on a touch screen controller . the activation of area 1001 , 1002 and 1003 on the controller results in the activation of block 608 , 604 , and 606 respectively . the selection of block 610 maintenance mode from the main menu 602 provides the choice of block 612 , which allows upgrades to the apparatus 1 and selection of block 614 for recalibration of the apparatus 1 . the selection of block 608 initiates the program mode , which allows the selection of block 646 team routines , block 648 individual routines , block 650 custom routines or block 652 return to the main menu . the selection of block 646 team routines allows the selection of block 654 , which includes a variety of routines , which include variations in the sequential delivery of balls having the desired parameters to different positions . block 654 then proceeds to block 656 . the selection of block 648 individual routines allows individual routines to be selected by initiating block 658 , which allow the selection of position by the selection of the blocks 660 to 674 , which correspond to field positions . block 660 corresponds to the pitcher , block 662 corresponds to the first base , block 664 corresponds to the second base , block 666 corresponds to the short stop position , block 668 corresponds to the third base position , block 670 corresponds to the left field position , block 672 corresponds to the center field position and block 674 corresponds to the right field position . once block 660 to 674 has been selected and the position designates the block 676 , the selection of individual routines may be activated . block 678 includes variations to one or more parameters identifying the ball flight and trajectory . in the automatic mode , the ball ejection mechanism 22 is operated by the programmable logic controller 90 , according to one of multiple programs each having multiple steps . at each step of a particular program , the ball ejection mechanism 22 launches a ball 70 according to the skill level , base or field position , range position , and elevation ball launch characteristics programmed for that step . in each step , the controller 75 is used to launch each ball 70 according to the programmed ball launch characteristics for that step . the selection of block 650 custom routines initiates block 678 . block 678 allows the selection of customized routine , which vary the sequential delivery of balls and have different parameters identifying a flight and trajectory having the parameters desired by the user . once the routine is selected block 678 is selected block 656 is initiated . for example , fig8 is a screen shot of one embodiment of block 658 on a touch screen controller . the activation of area 1004 , 1005 , 1006 , 1007 , 1008 , 1009 , 1010 and 1011 on the controller results in the activation of block 660 which corresponds to the pitcher , block 662 which corresponds to the first base , block 664 which corresponds to the second base , block 666 which corresponds to the short stop position , block 668 which corresponds to the third base position , block 670 which corresponds to the left field position , block 672 which corresponds to the center field position and block 674 which corresponds to the right field position respectively . block 656 initiates block 680 the run menu display , which in turn initiates block 682 , which prompts the user to start the routine . if the user elects to start the routine block 684 is initiated and runs the routine , thus , operating the apparatus . block 686 is then activated , which prompts the user to determine if the routine is over . a positive response to block 686 , causes block 680 to be reinitiated . a negative response to block 686 initiates block 688 , which prompts the user to stop the routine . if the routine is stopped then block 680 to be reinitiated . if the routine is not stopped then block 690 is initiated , which prompts the user to cancel the routine . a positive response to block 690 to cancel the routine will reinitiate block 608 and a negative response will reactivate block 684 causing the operation of the apparatus 1 . alternatively , at block 682 if the user elected not to run the routine then block 688 will be initialized . alternatively , at block 602 , block 606 manual mode may be selected . block 606 manual mode allows the selection of block 692 to set the position , block 694 to set the range , block 696 to set the type , block 698 to set the spin and block 700 the fly mode . the selection of block 692 allows the position to be selected by selecting blocks 702 to 716 , which correspond to field positions . block 702 corresponds to the pitcher , block 710 corresponds to the first base , block 706 corresponds to the second base , block 708 corresponds to the short stop position , block 708 corresponds to the third base position , block 712 corresponds to the left field position , block 714 corresponds to the center field position and block 716 corresponds to the right field position . for example , fig9 is a screen shot of one embodiment of block 730 on a touch screen controller . the activation of area 1012 , 1013 , 1014 , 1015 , 1016 , 1017 , 1018 and 1019 on the controller results in the activation of block 702 , 704 , 706 , 708 , 710 , 712 , 714 and 716 respectively . if block 694 was selected then block 718 is initiated , which allows the selection of the range . block 718 defines the range through the selection of blocks 720 - 728 . block 728 extreme right , block 726 right , block 724 direct , block 722 left , block 720 extreme left . for example , fig1 is a screen shot of one embodiment of block 718 on a touch screen controller . the activation of area 1020 , 1021 , 1022 , 1023 and 1024 on the controller results in the activation of block 720 , 722 , 724 , 726 and 728 respectively . if block 696 was selected then block 730 is initiated , which allows the selection of the characteristics of ball to be delivered block 732 to 747 . the characteristic ( e . g ., groundball , line drive or fly ball ) of the ball may be selected : block 732 soft groundball , block 734 medium groundball , block 736 hard groundball , block 738 soft line drive , block 740 medium line drive , block 742 hard line drive , block 744 soft fly ball , block 746 medium fly ball or block 747 hard fly ball . for example , fig1 is a screen shot of one embodiment of block 718 on a touch screen controller . the activation of area 1025 , 1026 , 1027 , 1028 , 1029 , 1030 , 1031 , 1032 and 1033 on the controller results in the activation of block 732 , 734 , 736 , 738 , 740 , 742 , 744 , 746 and 748 respectively . if block 698 was selected then block 790 is initiated , which allows the selection of the spin of the ball through the selection of block 792 extreme back spin , block 794 backspin , block 796 normal spin , block 798 topspin or block 800 extreme top spin . the selection of block 700 on the fly mode allows the selection of block 606 or block 802 . for example , fig1 is a screen shot of one embodiment of block 790 on a touch screen controller . the activation of area 1034 , 1035 , 1036 , 1037 and 1038 on the controller results in the activation of block 792 , 794 , 796 , 798 , and 800 respectively . initiation of block 802 initiates block 804 on the fly manual menu . block 806 is initiated as a result of block 804 and prompts the user to change ball attributes . if the user elects to change the ball attributes then block 808 is initiated , however if the user elects not to change the ball attributes then block 814 is initiated . block 808 allows the selection of the parameters that control the characteristics of the ball , e . g ., spin , type , and range . in the automatic mode , the ball ejection mechanism 22 is operated by the programmable logic controller 90 , according to one of multiple programs each having multiple steps . at each step of a particular program , the ball ejection mechanism 22 launches a ball 70 according to the skill level , base or field position , range position , and elevation ball launch characteristics programmed for that step . in each step , the controller 75 is used to launch each ball 70 according to the programmed ball launch characteristics for that step . block 814 prompts the user to end manual mode . if the user responds positively then block 606 is reinitiated , however if the user responds negatively then block 810 is initiated . block 810 serves to initiate the firing of the ball and initiation of block 812 . block 812 prompts the user to fire another ball . if the user responds positively to block 812 then block 806 is reinitiated , however a negative response results in block 606 being reactivated . if block 604 setup was selected from the main menu 602 , block 814 is initiated which prompts the user for a password . block 816 is then initiated which prompts the user to select the level by selecting blocks 820 - 828 , pro block 820 , college block 822 , high school block 824 , junior block 826 and peewee block 828 . block 818 is then initiated and the user prompted to set the dimension of the field using blocks 832 - 840 , left field position block 832 , the left center field position block 834 , the center field position block 836 , the right center field position block 838 and the right field position block 840 . the user is then prompted to set the time by block 842 , followed by initiation of block 644 , which prompts the user to return to the main menu . if the user responds positively to block 644 , then block 606 is reinitiated , however it the user responds negatively block 604 is reinitiated . referring next to fig1 - 16 , the programmable ball throwing apparatus 1 is capable of being operated in an automatic mode or a manual mode , as hereinafter described . as illustrated in step s 1 of fig1 , the apparatus 1 is initially placed at home plate on a baseball or softball field , with the ball ejection mechanism 22 aimed toward second base , and then turned on , typically by actuation of a power switch ( not shown ) which may be provided on the control box 7 . as indicated in step s 2 , by operation of the positioning unit 97 , the apparatus 1 self - calibrates such that the ball ejection mechanism 22 is positioned in the direct hit ( 0 ) position at second base . next , from the main menu s 3 , the apparatus 1 can be operated in the program mode s 4 or the run mode s 13 , as hereinafter described , using the program mode selector switch 94 and the run mode selector switch 95 . the program mode s 4 is used to select a desired ball launch program by which to operate the apparatus 1 , as well as to edit the ball launch characteristics of one or more steps in the selected program . the run mode s 13 is used to operate the apparatus 1 in either the automatic mode or the manual mode . as illustrated in fig1 , the program mode s 4 is selected by turning the program mode selector switch 94 to the “ program ” ( p ) position on the control panel 92 , with the run mode selector switch 95 typically turned to the “ off ” ( o ) position . accordingly , as the program mode selector switch 94 remains at the “ p ” position , the first of multiple , typically 99 , programs that are programmed into the logic controller 90 is initially indicated by the numeral “ 1 ” in the digital display 93 . the programs vary from each other according to the multiple steps ( typically 10 ) each contains , and the steps in a given program vary according to the ball launch characteristics of each step . typically , one or multiple programs are selected by a baseball or softball coach to train a baseball or softball team during one practice session . as indicated in step s 5 of fig1 , the desired program to be used is selected by pressing the “ up ” selector button 93 a and / or the “ down ” selector button 93 b on the control panel 92 , and the program numbers of the scrolled programs successively appear in the digital display 93 . when the desired program to be used has been selected , as indicated by program number in the digital display 93 , the program mode selector switch 94 may then be turned to the “ edit ” setting ( e ) on the control panel 92 to edit a step or steps in the selected program , as indicated in step s 6 of fig1 . the steps of the program selected in step s 6 are indicated by number in the digital display 93 , and the step or steps to be edited are individually selected by scrolling the steps , by number , using the “ up ” selector button 93 a and / or the “ down ” selector button 93 b . when the number of the desired step appears in the digital display 93 , the ball launch characteristics of that step can be edited , as desired and as indicated in steps s 7 - s 11 of fig1 . for example , the skill level s 7 for the step is selected by pushing the “ pro ” skill level button 110 , “ col ” skill level button 111 , “ hs ” skill level button 112 , “ jr ” skill level button 113 or “ pw ” skill level button 114 on the control panel 92 to operate the apparatus 1 at the selected skill level at that step . the pressed button is illuminated to indicate the skill level for the step . for example , if the “ pro ” skill level button 110 is pressed for a particular step in a program , then the “ pro ” skill level button 110 is illuminated and remains illuminated as long as the digital display 93 displays the number of that step . this selected skill level for that particular step is automatically saved in the memory of the programmable controller 90 . the range position for the selected step , as indicated in step s 8 , is programmed by pressing the right range button 119 and / or the left range button 120 on the control panel 92 . since the apparatus 1 is calibrated to initially position the ball ejection mechanism 22 at the direct hit ( 0 ) position at second base , the right range button 119 is pressed once ( and is continuously illuminated ) to select the right (+ 1 ) backhand position and twice ( and flashes ) to select the far right (+ 2 ) backhand position . the left range button 120 is pressed once ( and is continuously illuminated ) to select the left (− 1 ) forehand position and twice ( and flashes ) to select the far left (− 2 ) forehand position . the selected range position for the step is automatically saved in the memory of the programmable controller 90 . the base or field position of the selected step , as indicated in step s 9 , is programmed by pressing the first base position button 105 , the second base position button 106 , the short stop position button 107 , the third base position button 108 , the left field position button 101 , the center field position button 102 or the right field position button 103 on the control panel 92 . when the desired position button 105 , 106 , 107 , 108 or field position button 101 , 102 or 103 is pressed , that button is illuminated and remains illuminated to indicate the base or field position selected for that step . the selected skill level for the step can be saved in the memory of the programmable controller 90 . the elevation position of the selected step , as indicated in step s 10 , is programmed by pressing the “ up ” elevation button 116 and / or the “ down ” elevation button 117 on the control panel 92 . from the line drive ( ld ) position of the ball ejection mechanism 22 , the “ up ” elevation button 116 is pressed once ( and is continuously illuminated ) to select the upper (+ 1 ) or “ fly ball ” elevation position and twice ( and flashes ) to select the uppermost (+ 2 ) or “ pop fly ” elevation position . the “ down ” elevation button 117 is pressed once ( and is continuously illuminated ) to select the lower (− 1 ) or “ one - hop ” elevation position and twice ( and flashes ) to select the lowermost (− 2 ) or “ multi - hop ” elevation position . the selected skill level for the step is automatically saved in the memory of the programmable controller 90 . the ball spin may be selected , as indicated in step s 11 , is programmed by selecting the desired ball spin from the menu including extreme back spin , back spin , normal , top spin or extreme topspin . the selected ball spin for the step can be saved in the memory of the programmable controller 90 . after the skill level , range position , base or field position and elevation position have been selected for a particular step in a program , as indicated in steps s 7 - s 11 and heretofore described , the next or previous step in the program to be edited can be selected by pressing the “ up ” selector button 93 a and / or the “ down ” selector button 93 b on the control panel 92 . that step is then edited in similar fashion . after all of the steps for the program or programs to be used in a practice session have been edited as desired , and the ball launch characteristics for each step of each program saved into the memory of the logic controller 90 , the program mode selector switch 94 is turned to the “ run ” ( r ) setting on the control panel 92 to operate the apparatus 1 in either the automatic mode or the manual mode , as hereinafter described . the ball launch characteristics programmed into the logic controller 90 for each step of a given program remain unchanged unless and until the ball launch characteristics are subsequently edited in the manner heretofore described with respect to steps s 7 - s 11 of fig1 . the apparatus 1 is operated in the automatic mode , as indicated in step s 14 , by turning the program mode selector switch 94 to the “ run ” ( r ) setting and the run mode selector switch 95 to the “ automatic ” ( a ) setting on the control panel 92 . next , as indicated in step s 15 of fig1 , the controller 75 is used to launch each ball 70 from the ball ejection mechanism 22 , as indicated in step s 16 . this is accomplished by depression of the launch button 77 on the pendant controller 75 . accordingly , the ball ejection mechanism 22 ejects each ball 70 according to the ball launch characteristics of each step in the program previously selected using the program mode selector switch 94 and the “ up ” selector button 93 a and / or the “ down ” selector button 93 b . beginning with the first step in the selected program , the ball ejection mechanism 22 successively ejects balls 70 according to the ball launch characteristics programmed into the logic controller 90 for the respective steps of the program , by successive pressing of the launch button 77 . the ball 70 launched at a given step in the program has the combination of ball launch characteristics previously programmed for that step . these ball launch characteristics include the skill level ; the base or field position , which corresponds to which of the left field , center field or right field fielding position , or which of the first base , second base , short stop or third base fielding position , the ball 70 is launched toward ; the range position ; and the elevation position . for example , at a given step in the program , the ball ejection mechanism 22 may launch a ball 70 toward a fielder standing at the center field fielding position . the other launch characteristics of the ball 70 may include a high school ( hs ) skill level ; a back hand (+ 1 ) range position ; and a fly ball (+ 1 ) elevation position . accordingly , the center field fielder attempts to catch the ball 70 after the ball is launched from the ball ejection mechanism 22 . the next ball 70 launched from the ball ejection mechanism 22 at a subsequent step in the program may have the same or different ball launch characteristics for the same or a different fielder , depending on the particular ball launch characteristics of the ball 70 programmed for that particular step in the program . accordingly , the ball launch characteristics of the balls 70 launched in a particular program can be edited to provide the desired workout for any and all fielding positions in the baseball or softball outfield . after a ball 70 is ejected from the ball ejection mechanism 22 according to the ball launch characteristics of the first step , for example , the logic controller 90 automatically selects the ball launch characteristics of the second step in the program , as indicated in step s 18 , and launches the next ball 70 accordingly , until each step in the program has been completed . the ball launch characteristics of the previous step in the program may be selected , as desired , as indicated in step s 19 , by pressing the “ down ” selector button 93 b on the control panel 92 . as indicated in step s 17 , therefore , the ball launch characteristics of the next step in the program are selected and implemented in the next launching of the ball from the ball ejection mechanism 22 by simply pressing the launch button 77 on the pendant controller 75 . conversely , the ball launch characteristics of a previous step in the program are selected by pressing the “ down ” selector button 93 b on the control panel 92 , and then implemented by pressing the launch button 77 on the pendant controller 75 . as illustrated in fig1 , the apparatus 1 is operated in the manual mode , as indicated in step s 21 , by turning the run mode selector switch 95 to the “ manual ” ( m ) setting on the control panel 92 while the program mode selector switch 94 remains at the “ run ” ( r ) setting . the ball ejection mechanism 22 is then manually operated using the pendant controller 75 , as indicated in step s 22 . accordingly , the skill level for a particular ball launch step , indicated in step s 23 , is selected by pressing a selected one of the skill level buttons 110 - 114 on the control panel 92 . the range position for the step , indicated in step s 24 , is selected by pressing the right range button 87 or left range button 88 . from the direct hit ( 0 ) position the right range button 87 is pressed once to select the right (+ 1 ) backhand position and twice to select the far right (+ 2 ) backhand position . the left range button 88 is pressed once to select the left (− 1 ) forehand position and twice to select the far left (− 2 ) forehand position . the base or field position for the ball launch step , indicated in step s 25 , is selected by pressing a selected one of the left field position button 78 , center field position button 79 , right field position button 80 , first base position button 81 , second base position button 82 , short - stop position button 83 or third base position button 84 on the pendant controller 75 . as indicated in step s 26 , the elevation position for the ball launch step is selected to choose a multi - hop , one - hop , line drive , fly ball or pop fly ball trajectory for the ball launch step . from the line drive ( ld ) position , the upper (+ 1 ) “ fly ball ” position is selected by pressing the “ up ” elevation button 85 once . the “ up ” elevation button 85 is pressed twice to select the uppermost (+ 2 ) “ pop fly ” position . the lower (− 1 ) “ one - hop ” position is selected by pressing the “ down ” elevation button 86 , whereas the “ down ” elevation button 86 is pressed twice to select the lowermost (− 2 ) “ multi - hop ” position . finally , after the skill level , range position , base or field position and elevation position have been selected , as indicated in steps s 23 - s 26 , a ball 70 is launched from the ball ejection mechanism 22 according to the selected ball launch characteristics , as indicated in step s 27 , by pressing the launch button 77 on the pendant controller 75 . another ball 70 having the same ball launch characteristics can then be launched from the ball ejection mechanism 22 by again pressing the launch button 77 . alternatively , the ball launch characteristics can be changed , according to any or all of steps s 23 - s 26 , to launch a ball or balls 70 having the manually - selected ball launch characteristics . it will be understood that particular embodiments described herein are shown by way of illustration and not as limitations of the invention . the principal features of this invention can be employed in various embodiments without departing from the scope of the invention . those skilled in the art will recognize , or be able to ascertain using no more than routine experimentation , numerous equivalents to the specific procedures described herein . such equivalents are considered to be within the scope of this invention and are covered by the claims .
the present invention includes programs , devices and methods for a programmable ball throwing machine that is able to eject balls to preset , programmed or manually - selected positions with programmable projection and travel characteristics . the present invention includes a computer implemented method for controlling the parameters of a ball flight and trajectory in three dimensions including one or more parameters to identify a flight and trajectory of a ball in three dimensions for one or more player positions and a processor to control one or more motors in response to the one or more parameters .