Hi David,
I understand your confussion: there are 2 application talking to eachother:
ANVIL --> Raspberry Pi (Microcontroller). With the Raspberry Pi, I’ll control a stepper motor!
This is the code from the Raspberry Pi:
#Running a NEMA17 stepper motor with a TB6600 driver
import RPi.GPIO as GPIO
import time
import anvil.server
#from anvil.tables import app_tables
GPIO.setmode(GPIO.BOARD) #read the pin as board instead of BCM pin
anvil.server.connect("XXXXX")
DIR = 33 # Direction of the stepper motor
PUL = 35 # Pulses send to the stepper motor
ENA = 36 # ON/OFF stepper motor
GPIO.setwarnings(False)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(PUL, GPIO.OUT)
GPIO.setup(ENA, GPIO.OUT)
steps = 1000
statusRasp = False
GPIO.output(ENA, True)
@anvil.server.callable
def motor_aan_cb(direction,speed,motor_aan_cb):
direction_Rasp = direction
speed_Rasp = speed
cb_status_motor = motor_aan_cb
print("Speed of motor:",speed)
print("Direction of motor: ",direction)
print("Status of motor: ",cb_status_motor)
if cb_status_motor == True:
for x in range(steps):
GPIO.output(ENA, False)
GPIO.output(DIR, direction_Rasp)
GPIO.output(PUL, 1)
time.sleep(speed_Rasp)
GPIO.output(PUL, 0)
time.sleep(speed_Rasp)
statusRasp = anvil.server.call('get_motor_status',status)
print("StatusRasp:",statusRasp)
if statusRasp == False:
break
else:
print('Wait on cb_status_motor to become 1')
GPIO.output(ENA, True)
anvil.server.wait_forever()