code.py
 1  # SPDX-FileCopyrightText: 2019 John Edgar Park for Adafruit Industries
 2  #
 3  # SPDX-License-Identifier: MIT
 4  
 5  # Turtle Gizmo Snowflakes
 6  #==| Turtle Gizmo Setup start |========================================
 7  import time
 8  from random import randint
 9  import board
10  import busio
11  import displayio
12  from adafruit_st7789 import ST7789
13  from adafruit_turtle import turtle
14  displayio.release_displays()
15  spi = busio.SPI(board.SCL, MOSI=board.SDA)
16  display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
17  display = ST7789(display_bus, width=240, height=240, rowstart=80,
18                   backlight_pin=board.A3, rotation=180)
19  turtle = turtle(display)
20  #==| Turtle Gizmo Setup end |=========================================
21  
22  def draw_arm():
23      turtle.pendown()
24      for angle, length in arm_data:
25          turtle.forward(length)
26          turtle.left(angle)
27          turtle.forward(length)
28          turtle.backward(length)
29          turtle.right(2*angle)
30          turtle.forward(length)
31          turtle.backward(length)
32          turtle.left(angle)
33      turtle.penup()
34  
35  def draw_flake(arms):
36      turtle.penup()
37      turtle.home()
38      turtle.clear()
39      angle = 0
40      delta_angle = 360 // arms
41      for _ in range(arms):
42          turtle.home()
43          turtle.setheading(angle)
44          draw_arm()
45          angle += delta_angle
46      turtle.penup()
47      turtle.home()
48  
49  while True:
50      arm_data = [(randint(30, 80), randint(10, 40)) for _ in range(5)]
51      draw_flake(randint(5, 8)) #adjust number of arms here
52      time.sleep(5)