Skip to content
Snippets Groups Projects
Commit 78fda989 authored by ft-Demo's avatar ft-Demo
Browse files

commit by robo pro coding

parent 88f731a6
No related branches found
No related tags found
No related merge requests found
<xml version="16"/>
\ No newline at end of file
<xml xmlns="https://developers.google.com/blockly/xml" version="16">
<block type="rx_controller" id="rLS72=DDo(lk9vtgvJe?" x="81" y="37">
<mutation>
<arg type="Input" name="Input-0" value="-"/>
<arg type="Output" name="Output-0" value="-"/>
<arg type="Motor" name="Motor-0" value="-"/>
<arg type="I2C" name="I2C-0" value="-"/>
</mutation>
<field name="controller_name">RX</field>
<field name="Input-0">-</field>
<field name="Output-0">-</field>
<field name="Motor-0">-</field>
<field name="I2C-0">-</field>
</block>
</xml>
\ No newline at end of file
import asyncio
import fischertechnik.factories as rx_factory
from fischertechnik.logging import log as print
async def init(controller):
rx_factory.init_controller_factory()
<xml xmlns="https://developers.google.com/blockly/xml" version="16">
<variables>
<variable id="n2SGp16#,I]y2/U]liN[">i2c</variable>
</variables>
<block type="util_python_imports" id="BuNdg{crGi4?b.2~{7~v" x="0" y="0">
<field name="value">import board&amp;#10;import busio&amp;#10;from adafruit_bus_device.i2c_device import I2CDevice</field>
</block>
<block type="start_block" id="7s|$pr*xo|Z,AfuHs:~," deletable="false" x="0" y="143">
<statement name="statement">
<block type="procedures_callnoreturn" id="crzWC5CXWlbK^p5G]#,a">
<mutation name="i2c_init"/>
<block type="variables_set" id="I$xU*U=+seXj5btUzmU/">
<field name="VAR" id="n2SGp16#,I]y2/U]liN[">i2c</field>
<value name="VALUE">
<block type="procedures_callreturn" id="]RMM6lFOwRHw(iRo2eXm">
<mutation name="i2c_init"/>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="e$BLx-`|mVa3,^Uv$:lu">
<block type="procedures_callnoreturn" id="e$BLx-`|mVa3,^Uv$:lu" inline="true">
<mutation name="i2c_scan"/>
<next>
<block type="util_python" id="1Ih*vWYKj$v__eB9t[Fm" inline="true">
<field name="value">device = I2CDevice(i2c, 0x39)&amp;#10;with device:&amp;#10; device.write(bytes([0x80,0x07]))</field>
<block type="util_python" id="1Ih*vWYKj$v__eB9t[Fm">
<field name="value">i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)&amp;#10;device = I2CDevice(i2c, 0x39)&amp;#10;with device:&amp;#10; device.write(bytes([0x80,0x07]))&amp;#10;i2c.deinit()</field>
<next>
<block type="loop_endless" id="^x^S51cswn:O`*PQ]4y`">
<statement name="DO">
<block type="util_python" id="||FIP;f:l$]7l1hJl*?#" inline="true">
<field name="value">with device:&amp;#10; device.write(bytes([0x94]))&amp;#10; result = bytearray(2)&amp;#10; device.readinto(result)&amp;#10; print(result)</field>
<block type="util_python" id="||FIP;f:l$]7l1hJl*?#">
<field name="value">i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)&amp;#10;device = I2CDevice(i2c, 0x39)&amp;#10;with device:&amp;#10; device.write(bytes([0x94]))&amp;#10; result = bytearray(2)&amp;#10; device.readinto(result)&amp;#10; print(result)&amp;#10;i2c.deinit()</field>
<next>
<block type="util_wait_for" id="LOxBp4_n{-EMeuwk)[rN">
<field name="format">s</field>
......@@ -38,19 +46,24 @@
</block>
</statement>
</block>
<block type="procedures_defnoreturn" id="Su;!2aN^UiUr2iaXX;R;" x="0" y="544">
<block type="procedures_defreturn" id="W_w0vKA!C1LkeU|*,52:" x="0" y="705">
<field name="NAME">i2c_init</field>
<statement name="STACK">
<block type="util_python" id=")px9GxFT)zf|]UgfXzO{" inline="true">
<field name="value">#https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c&amp;#10;i2c = busio.I2C(board.SCL1, board.SDA1)</field>
<block type="util_python" id=")px9GxFT)zf|]UgfXzO{">
<field name="value">#https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c&amp;#10;try:&amp;#10; i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)&amp;#10; i2c.deinit()&amp;#10;except ValueError:&amp;#10; print("ValueError")&amp;#10;except RuntimeError:&amp;#10; print("RuntimeError")</field>
</block>
</statement>
<value name="RETURN">
<block type="variables_get" id="qM%[#Qw`I4;Y|4XtrG,e">
<field name="VAR" id="n2SGp16#,I]y2/U]liN[">i2c</field>
</block>
</value>
</block>
<block type="procedures_defnoreturn" id="TfZ3.Sj$25j_S7bIjpY)" x="0" y="680">
<block type="procedures_defnoreturn" id="TfZ3.Sj$25j_S7bIjpY)" x="0" y="1013">
<field name="NAME">i2c_scan</field>
<statement name="STACK">
<block type="util_python" id="PA6U?60_eWc?*acT.2%4" inline="true">
<field name="value">while not i2c.try_lock():&amp;#10; pass&amp;#10;try:&amp;#10; print("I2C addresses found:", [hex(device_address) for device_address in i2c.scan()],)&amp;#10;finally: # unlock the i2c bus&amp;#10; i2c.unlock()</field>
<block type="util_python" id="PA6U?60_eWc?*acT.2%4">
<field name="value">i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)&amp;#10;while not i2c.try_lock():&amp;#10; pass&amp;#10;try:&amp;#10; print("I2C addresses found:", [hex(device_address) for device_address in i2c.scan()],)&amp;#10;finally: # unlock the i2c bus&amp;#10; i2c.unlock()&amp;#10;i2c.deinit()</field>
</block>
</statement>
</block>
......
import asyncio
import board
import busio
import user.lib.controller as controller
from adafruit_bus_device.i2c_device import I2CDevice
from fischertechnik.logging import log as print
i2c = None
async def i2c_init():
global i2c
#https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c
i2c = busio.I2C(board.SCL1, board.SDA1)
try:
i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)
i2c.deinit()
except ValueError:
print("ValueError")
except RuntimeError:
print("RuntimeError")
return i2c
async def i2c_scan():
global i2c
i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)
while not i2c.try_lock():
pass
try:
print("I2C addresses found:", [hex(device_address) for device_address in i2c.scan()],)
finally: # unlock the i2c bus
i2c.unlock()
i2c.deinit()
async def run(instance):
await i2c_init()
global i2c
await controller.init(instance)
i2c = await i2c_init()
await i2c_scan()
i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)
device = I2CDevice(i2c, 0x39)
with device:
device.write(bytes([0x80,0x07]))
i2c.deinit()
while True:
i2c =busio.I2C(board.SCL1, board.SDA1, frequency=400000)
device = I2CDevice(i2c, 0x39)
with device:
device.write(bytes([0x94]))
result = bytearray(2)
device.readinto(result)
print(result)
i2c.deinit()
await asyncio.sleep(1)
await asyncio.sleep(0.01)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment