Exemplo n.º 1
0
def deal_with_command(s):
    if s[0] != ID:
        return 0

    if s[1] != ord(b'S') and s[1] != ord(b'R') and s[1] != ord(b'Q'):
        return 0

    if s[1] == ord(b'S'):
        for i in range(4, 8, 1):
            speed[i - 4] = s[i]
        set_car_speed()

    st = struct.pack('4s4B6i', s[0:4], speed[0], speed[1], speed[2], speed[3],
                     compass.get_x(), compass.get_y(), compass.get_z(),
                     accelerometer.get_x(), accelerometer.get_y(),
                     accelerometer.get_z())
    uart.write(st)

    sleep(20)

    if s[1] == ord(b'R'):
        display.show(Image.SAD)
        uart.write('+++')
        for i in range(4, 8, 1):
            speed[i - 4] = 0
        set_car_speed()
        sleep(1000)
        reset()
    return 1
    def sleep():
        power_data = [0x8D, 0x3E, 0x11, 0x01, 0x13, 0x01, 0x00]
        power_data.extend([~((sum(power_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(power_data))

        return
    def reset_yaw():
        drive_data = [0x8D, 0x3E, 0x12, 0x01, 0x16, 0x06, 0x00]

        drive_data.extend([~((sum(drive_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(drive_data))

        return
Exemplo n.º 4
0
    def send_telegram(self, BotApiKey, MyChannelName, message):
	#publish a message to Bot on telegram
	uart.write("\r")
	self.__readUntil(uart, '\r')
	uart.write("|3|1|https://api.telegram.org/bot", BotApiKey, "/sendMessage?chat_id=",MyChannelName,"&text=" message, "\r")
	self.__readUntil(uart, '3')
        result = self.__readUntil(uart, '\r')
	return True
Exemplo n.º 5
0
    def publish(self, topicName, message):
	#publish a message to Broker on topic
	uart.write("\r")
	__readUntil(uart, '\r')
	uart.write("|4|1|3|", topicName, "|", message, "|\r")
	self.__readUntil(uart, '4')
	self.__readUntil(uart, '1')
	self.__readUntil(uart, '3')
	self.__readUntil(uart, '1')
	return True
Exemplo n.º 6
0
    def subscribe(self, topicName):
	#subscribe on topic
	uart.write("\r")
	self.__readUntil(uart, '\r')
	uart.write("|4|1|2|", topicName, "|\r")
	self.__readUntil(uart, '4')
	self.__readUntil(uart, '1')
	self.__readUntil(uart, '2')
	self.__readUntil(uart, '1')
	return True
    def set_rgb_led_by_index(index, red, green, blue):
        led_data = [0x8D, 0x3E, 0x11, 0x01, 0x1A, 0x1A, 0x00]

        led_data.extend(index)
        led_data.extend([red, green, blue])
        led_data.extend([~((sum(led_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(led_data))

        return
Exemplo n.º 8
0
def send_AT(mSend, mRec1, mRec2=b""):
    while True:
        uart.write(mSend)
        sleep(100)
        if uart.any():
            s = uart.readall()
            if s == mRec1 or s == mRec2:
                break
    display.show(Image.HAPPY)
    sleep(200)
Exemplo n.º 9
0
    def connect_wifi(self, yourSSID,yourPASSWORD):
	#connect to WIFI
	uart.init(baudrate=9600, tx = pin0, rx = pin1)
	uart.write("\r")
	self.__readUntil(uart, '\r')
	uart.write("|2|1|", yourSSID, ",", yourPASSWORD, "|\r")
	self.__readUntil(uart, '3')
	ipadress = self.__readUntil(uart, '\r')
	uart.init(baudrate=115200)
	print(ipadress)
        return True
Exemplo n.º 10
0
def	hdr_bb( cnt, limit) :

	if limit == cnt :
		cnt	= 0
	else :
		cnt	= cnt + 1

	uart.write( str( cnt))
	dp.scroll( str( cnt), delay = 80)

	return	cnt
Exemplo n.º 11
0
    def set_all_leds(red, green, blue):
        led_data = [
            0x8D, 0x3E, 0x11, 0x01, 0x1A, 0x1A, 0x00, 0x3F, 0xFF, 0xFF, 0xFF
        ]

        for _ in range(10):
            led_data.extend([red, green, blue])

        led_data.extend([~((sum(led_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(led_data))

        return
Exemplo n.º 12
0
    def connect_iot_cloud(self, server,port,user,password):
	#connect to MQTT Broker server
	'''Thingspeak; server="api.thingspeak.com";port="80"
	   Blynk; server="blynk-cloud.com" ;http port="8080"; https port="9443"
	exemple:
	'''
	uart.write("\r")
	self.__readUntil(uart, '\r')
	uart.write("|4|1|1|", server,"|", port, "|", user, "|", password, "|\r")
	self.__readUntil(uart, '4')
	self.__readUntil(uart, '1')
	self.__readUntil(uart, '1')
	self.__readUntil(uart, '1')
	return True
Exemplo n.º 13
0
def	loop() :

#	words	= uart.readline()
	word	= uart.read()

	if word is None :
		return

#	uart.write( str( len( word)))
#	uart.write( str( type( word)))
#	uart.write( str( int.from_bytes( word, 'big')))
	uart.write( word)

	if int.from_bytes( word, 'big') == 0x0D :
		uart.write( '\n')
Exemplo n.º 14
0
 def temperature(self):
         try:
             uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=self.tx_pin, rx=self.rx_pin)
             sleep(1)
             uart.write(b'\x50')
             t = 0
             buf = bytearray(1)
             while not uart.any() and t < 1000:
                 t = t + 1
                 sleep(5)
             if t < 1000:
                 uart.readinto(buf, 1)
             uart.init(115200)
             return(buf[0] - 45)
         except Exception as exc:
             uart.init(115200)
             print_exception(exc)
Exemplo n.º 15
0
    def set_raw_motors(left_mode, left_speed, right_mode, right_speed):
        if left_mode < 0 or left_mode > 2:
            left_mode = 0

        if right_mode < 0 or right_mode > 2:
            right_mode = 0

        raw_motor_data = [
            0x8D, 0x3E, 0x12, 0x01, 0x16, 0x01, 0x00, left_mode, left_speed,
            right_mode, right_speed
        ]

        raw_motor_data.extend(
            [~((sum(raw_motor_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(raw_motor_data))

        return
Exemplo n.º 16
0
    def drive(speed, heading):
        flags = 0x00

        if speed < 0:
            speed *= -1
            heading += 180
            heading %= 360
            flags = 0x01

        drive_data = [
            0x8D, 0x3E, 0x12, 0x01, 0x16, 0x07, 0x00, speed, heading >> 8,
            heading & 0xFF, flags
        ]

        drive_data.extend([~((sum(drive_data) - 0x8D) % 256) & 0x00FF, 0xD8])

        uart.write(bytearray(drive_data))

        return
Exemplo n.º 17
0
 def distance_mm(self):
     try:
         uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=self.tx_pin, rx=self.rx_pin)
         sleep(1)
         uart.write(b'\x55')
         t = 0
         buf = bytearray(2)
         while not uart.any() and t < 1000:
             t = t + 1
             sleep(5)
         if t < 1000:
             uart.readinto(buf, 2)
         uart.init(115200)
         dist = buf[0] * 256 + buf[1]
         if dist > 1100:
             dist = -1
         return dist
     except Exception as exc:
         uart.init(115200)
         print_exception(exc)
def main():
	data_received = 0
	display.show(Image.HAPPY)
	while True:
		response = radio.receive()
		if response is not None:							# Some data received
			uart.write(response+"\n")						# Write received data with line break on serial bus
			if data_received == 0:
				display.clear()								# Clear Microbit LEDs
			if "," in response:								# "(x,y,z)" data received
				cy, cx = divmod(data_received, 5)
				display.set_pixel(cx, cy, 9)
				# Increase and limit data_received value within 0-24 range
				data_received = 0 if data_received >= 24 else data_received+1
			elif response == "done":
				data_received = 0
				display.show(Image.YES)
			elif response == "exit":
				display.show(Image.HAPPY)
				sleep(2000)
				display.clear()
				break
        else:
			sleep(100)
Exemplo n.º 19
0
# Shove accelerometer data through the uart.
from microbit import accelerometer, sleep, uart, pin0, pin1
uart.init(rx=pin0, tx=pin1)

while True:
    uart.write(
        bytes(','.join([str(v)
                        for v in accelerometer.get_values()]), 'ascii') + '\n')
    sleep(20000)
 def move_relative(self, x_pixels=1, y_pixels=1):
     uart.write("|@s-m-mr@|{} {}|@e@|\n".format(x_pixels, y_pixels))
Exemplo n.º 21
0
 def _send_byte(self, byte):
     uart.write(byte)
Exemplo n.º 22
0
        Power = str(msg_uart[7:-1], 'UTF-8')
        DF_NO = 0
        STATE = "Send_Msg"

    elif STATE == "Process_Received_Data_Frame":

        msg_decoded = Decoded_Data(msg_receive)
        if msg_decoded[0:2] == "N1":

            if msg_decoded[3:] == "#":
                RDF_NO = 1
                N1_Msg = "#" + msg_decoded[0:2] + ":"

            elif (msg_decoded[3:] == "$") and (int(msg_decoded[2]) == RDF_NO):
                N1_Msg += "$"
                uart.write(N1_Msg)
                RDF_NO += 1

            elif int(msg_decoded[2]) == RDF_NO:
                N1_Msg += msg_decoded[3:]
                RDF_NO += 1

            STATE = "Send_Ack"

        elif msg_decoded[0:2] == "N2":
            if msg_decoded[3:] == "#":
                RDF_NO = 1
                N1_Msg = "#" + msg_decoded[0:2] + ":"

            elif (msg_decoded[3:] == "$") and (int(msg_decoded[2]) == RDF_NO):
                N1_Msg += "$"
 def press(self, key):
     uart.write("|@s-k-prs@|{}|@e@|\n".format(key))
Exemplo n.º 24
0
YELLOW = b'Y'
GREEN = b'G'
TRIGGER = b'T'
CLEAR = b'C'
UNKNOWN = b'U'

dim_value = 9  # value 1-9 for dimming the display

NEUTRAL = Image('00000:09090:00000:99999:00000:')

display.show(Image.GHOST / 9 * dim_value)

while True:
    if uart.any():
        data = uart.read()
        if RED in data:
            display.show(Image.SAD / 9 * dim_value)
        elif YELLOW in data:
            display.show(NEUTRAL / 9 * dim_value)
        elif GREEN in data:
            display.show(Image.HAPPY / 9 * dim_value)
        elif CLEAR in data:
            display.clear()
        elif UNKNOWN in data:
            display.show(Image("?") / 9 * dim_value)

    if button_b.is_pressed():
        uart.write(TRIGGER)
        display.show([clk / 9 * dim_value for clk in Image.ALL_CLOCKS],
                     delay=100)
        display.show(Image.CLOCK12 / 9 * dim_value)
 def scroll(self, steps=1):
     uart.write("|@s-m-scr@|{}|@e@|\n".format(steps))
 def write(self, text):
     uart.write("|@s-k-txt@|{}|@e@|\n".format(text))
 def left_click(self):
     uart.write("|@s-m-ckl@||@e@|\n")
 def right_click(self):
     uart.write("|@s-m-ckr@||@e@|\n")
Exemplo n.º 29
0
def	init() :

	uart.init( baudrate = 115200)

	uart.write( "Hello World !\r\n")
 def move_horizontal(self, pixels=1):
     uart.write("|@s-m-mh@|{}|@e@|\n".format(pixels))
 def move_vertical(self, pixels=1):
     uart.write("|@s-m-mv@|{}|@e@|\n".format(pixels))
 def move_right(self, pixels=1):
     uart.write("|@s-m-mr@|{}|@e@|\n".format(pixels))
 def move_left(self, pixels=1):
     uart.write("|@s-m-ml@|{}|@e@|\n".format(pixels))