No, you needn't pass your variable in using echo. The thing is, awk must take an input from somewhere, so why not use echo? Awk doesn't have to work with, or output what you input but it does need something (otherwise it will expect you to enter input at the command line). You can get round this by doing your processing in a BEGIN block which includes an exit...
awk -v i=5 -v y=2 'BEGIN {print i/y; exit}'
The -v flag here is declaring variables to be used in the awk processing.
HTH