Linux - cheat sheet
DOWNLOAD CHEAT SHEET PDF
Data struktur

Math:
import math
top
Objekter og klasser
# Static class
class Person(): # altid med stort forbogstav
	
	name_var = "Paul" # name_var er her en attribute (en variable i en class)
	def print_name():
		print(Person.name_var)
Person.print_name()


# dynamic class - en klasse som kan bruges til at lave flere objekter med hver deres data i
class Person():
    def __init__(self, name, age): #construct'er obejktet med attibute'er: "name" og "age"
  
        self.name = name
        self.age = age
        
    def print_me(self): #function i klasser hede methods
        print("name : ", self.name, ". Age: " , self.age)

new_person_1 = Person("Hans",24)
new_person_2 = Person("Kurt",22)

new_person_1.print_me()
new_person_2.print_me()
top
Loops
# for-loop i python, tæller i op til 10
for i in range(10): 
	print("I is now: ", i)


# for-loop, tæller i fra 5 og op til 10	
for i in range(5, 10):
	print("I is now: ", i)


# for-loop, tæller op til 100, men i intervaler af 10 (0, 10, 20, 30...)	
for i in range(0, 100, 10):
	print(i) 


# for-loop med liste 
animals = ["dog", "cat", "monster"]
for x in animals:
	print(x)	

	
# for each loop
cars = ["BMW","Volvo","Ford"]	

for car in cars:
	print(car)

	
# while loop
number = 2  
while number < 5:  
	print("compute me!")
	number = number+1


# while loop med else!
counter = 0
while counter < 5: 
    counter = counter + 1
    print("I'm wild in a while loop") 
else: 
    print("I'm done!") 	
	
top
Pin
from mashine import Pin
led1 = Pin(12, Pin.OUT)
led1.on() #tænder LED
led1.off() #slukker LED

top
Toggle funktioner
# toggle function 
def toggle(pin_obj):
	led1.value(not led1.value())
top
ADC
from machine import ADC, Pin
adc_variable = ADC(Pin(34))
#ADC sættes ved brug af Pin klassen


adc_variable.atten(ADC.ATTN_11DB)


# Atten() sætter range på volt værdien vi læser fra ADC.
# Default er sat til 11DB
#
# ADC.ATTN_0DB — the full range voltage: 1.2V
# ADC.ATTN_2_5DB — the full range voltage: 1.5V
# ADC.ATTN_6DB — the full range voltage: 2.0V
# ADC.ATTN_11DB — the full range voltage: 3.3V

adc_variable.width(ADC.WIDTH_10BIT)

# 12-bit resolution er default (giver range mellem: 0 - 4095)
# Man kan ændre bit resolution: (2^x) - 1
# ex. 10-bit: (2^10) - 1, hvilket ville give range mellem: 0 - 1023
#
# ADC.WIDTH_9BIT: range 0 to 511
# ADC.WIDTH_10BIT: range 0 to 1023
# ADC.WIDTH_11BIT: range 0 to 2047
# ADC.WIDTH_12BIT: range 0 to 4095


print(adc_variable.read())
top
PWM
from machine import Pin, PWM
freq = 1023 #frequency, har en range 10Hz - 40MHz (0 - 1023)
led1 = PWM(Pin(26), freq)

# frequency kan også sættes således: led1.freq( værdi )
led1.duty(400)
#duty cycle, den aktive periode.
0 (0%, always off) – 255 (100%, always on)
top
Blocking og none-blocking delays
#Sleep
from time import sleep
sleep(1)

#Non-blocking 1
from machine import Timer
def timer(t): print("test") do_timer = Timer(1) do_timer.init(period=10000, mode=Timer.PERIODIC, callback=timer) #none-blocking 2 import time timeLastToggle = 0 while True: time.ticks_diff(time.ticks_ms(), timeLastToggle) > 1000: # dine kode... timeLastToggle = time.ticks_ms()
top
Potmeter
from machine import Pin, ADC

potmeter = ADC(Pin(34))

print(potmeter.read())
top
Knapper
from machine import Pin

btn_1 = Pin(4, Pin.IN)
btn_2 = Pin(0, Pin.IN)
if btn_1.value() == 0:
	# do something

if btn_2.value() == 0:
	# do something


button_interrupt_flag = 0

button = Pin(0,Pin.IN,Pin.PULL_UP)

def CallBackFunction(button):
    global button_interrupt_flag #sætter den til global 
    button_interrupt_flag = 1

button.irq(trigger=Pin.IRQ_FALLING, handler=CallBackFunction)
# IRQ_FALLING = stigene lav aktiv
# IRQ_RISING = stigene høj aktiv
# IRQ_LOW_LEVEL = lav aktiv
# IRQ_HIGH_LEVEL = lav aktiv

while True:
    if button_interrupt is 1:
        print("Interrupt has occured")
        button_interrupt = 0	
top
UART
from machine import UART

port = 2 # på ESP32 er UART porten default: 2
speed = 9600 # Baud værdi
uart = UART(gps_port, gps_speed) # UART objekt

uart_data = uart.read().decode()
print(uart_data)

# uart kan bruges eksempelvis med GPS modulet: gps = GPS_Minimum(uart)
# uart.read() til at hente data
# uart.write() til at sende data
top
I2C
from machine import I2C, Pin

i2c = I2C(scl=Pin(5), sda=Pin(4)) # scl er Clock sinalet fra Masteren, sda data linjen fra i2c enheden
# Man kan scanne for I2C enheder med "i2c.Scan":


devices = i2c.scan()
for device in devices:  
	print("Address: ",device," and hexa Adr: ",hex(device))

# for at indlæse data skal man bruge i2c adressen, memory addressen og byte længde.
# memory addressen er hexa tal mellem 8 - 123, som angiver hvor dataen bliver gemt.
data = i2c.readfrom_mem(address, memory, bytes) # ex. readfrom_mem(0x68, 0x3B, 14)
top