2021年1月底的时候,树莓派基金会发布了一个重磅消息,推出了进军微控制器领域的树莓派Pico。
功能强劲,价格便宜的特性让Pico受到了全世界创客们的关注,这篇文章就来给大家介绍一下Pico这个小玩意儿。
文章原文来自DroneBot Workshop,负责人是一个非常和蔼的老爷爷。有条件的小伙伴可以去油管关注一下他。
这篇文章使用MicroPython在树莓派 Pico上编程,一起来看看三十块的微控制器究竟能做些什么。
介绍
树莓派基金会发布微控制器本身就是一个大消息,毕竟在这之前,这个世界上最流行的单板电脑的制造商从来没有表示过对微控制器的兴趣。
不仅仅是树莓派Pico的公布让人感到意外,这次树莓派还自己打造了一款新的芯片。他们没有在现有代码的基础上,支持基于ESP32或SAMD21的设计,而是选择创建自己的微控制器。
所以谈到Pico时,我们都是新手。
树莓派也在官网发布了一大堆技术文档,还有一本名为《Get Started with MicroPython on Raspberry Pi Pico》的说明书。它有纸质版,也有PDF版下载。
除此之外,目前还没有关于Pico更深入的资料。不过随着时间的推移,这种情况很快就会改变,树莓派已经授权包括Adafruit在内的其他厂商在自己的设计中使用RP2040芯片。假以时日,就会给我们带来更多的代码和开发工具。
我们先来尝试一下,给Pico连接上一堆东西,会发生什么有趣的事情吧!
树莓派 Pico
Pico是一块小小的板子,大小和Arduino Nano差不多。和所有树莓派一样,包装非常简陋,只是一个塑料包装内的Pico,而塑料包装本身就是从一条条的包装上剪下来的,非常像小时候吃的咪咪虾条或者是糖果的包装。
看看Pico的板子
四刀买到的就仅仅是这么一款裸板,没有多的,就是这么环保。
裸板不带针脚,需要自己焊。这是一块做工精良的电路板,也可以作为SMD元件,直接焊接到印刷电路板上。
俯视图
从顶部看,Pico是这样的。
板上最主要的功能是一端的microUSB连接器。它既用于通信,也用于给Pico供电。
在microUSB连接器旁边安装了一个板载LED,它内部连接到GPIO针脚25。
值得注意的是,这是整个Pico板上唯一的LED。
开机按钮安装在离LED稍低一点的地方,它可以让你改变Pico的启动模式,这样你就可以在上面加载MicroPython,进行拖拽式编程。
在板子的底部,你会看到三个连接点,这些连接点是用于串行Debug选项的,我们今天是入门,暂时不探讨这个问题,高级开发者会比较感兴趣。
在板子的中央是整个板子的“大脑”——RP2040 MCU,我们一会儿就会研究它的功能。
接地引脚
板子上有好几个地线,8个地线加上3针Debug连接器上的一个附加地线。
这些引脚很容易发现,它们是均匀的,而且是方形的,而不是像其他连接的圆形。
其中一个位于33号针脚的地线也被指定为模拟地线。
电源引脚
Pico是一个3.3V的逻辑器件,但由于内置了电压转换器和稳压器,它可以用一系列电源供电。
所有与电源相关的引脚都被安排在了一起,靠近microUSB连接器。
VBUS - 这是来自 microUSB 总线的电源,5 V。如果Pico不是由microUSB连接器供电,那么这里将没有输出。
VSYS - 这是输入电压,范围为 2 至 5 V。板载电压转换器将为 Pico 将其改为 3.3 V。
3V3 - 这是 Pico 内部调节器的 3.3 伏输出。只要将负载保持在 300ma 以下,它就可用于为其他组件供电。
还有几个输入可以让你控制 Pico 的电源。
3V3_EN - 你可以使用此输入禁用 Pico 的内部电压调节器,从而关闭 Pico 和由其供电的任何组件。
RUN - 可以启用或禁用 RP2040 微控制器,也可以将其复位。
GPIO引脚
树莓派 Pico板上有26个裸露的GPIO连接。
它们的排列顺序很好,在GPIO 22和GPIO 26之间有一个 "空隙"(这些 "缺失 "的引脚在内部使用)。
这些引脚都有多种功能,你可以为PWM配置多达16个引脚。
有两个I2C总线,两个UART和两个SPI总线,这些可以配置使用多种GPIO引脚。
模拟引脚
Pico有三个模数转换器,还有一个内部用于板载温度传感器的转换器。
ADC的分辨率为12位。
你也可以在ADC_VREF
引脚上提供一个外部精密电压参考。其中一个接地点,即33脚上的ADC_GND被用作该参考点的接地点。
RP2040微控制器
树莓派 Pico是围绕基金会的新芯片RP2040微控制器而设计的。下面是它的参数:
双核32位ARM Cortex -M0+处理器
运行在48MHz,但可以超频到133MHz。
30个GPIO引脚(26个暴露)
可支持USB主机或设备模式
8 可编程I/O(PIO)状态机
RP2040能够支持高达16MB的片外闪存,不过在Pico中只有4MB。
树莓派基金会对这款芯片有很多计划,也已经授权给了很多其他厂商。
对Pico进行编程
你可以使用两种编程语言之一开始使用 Pico。
MicroPython - 一种专门为微控制器制作的解释语言。
C++ - 许多微控制器用户都熟悉C++,因为它被用于Arduino和ESP32板上。
虽然我急于将C++与Pico一起使用,以榨取它的每一克性能,但还是决定与大多数人一样,使用MicroPython。在这个早期的开发阶段,C++的工具还在进行最后的开发,期待着Pico成为PlatformIO和Arduino IDE板系列的一部分。
开始使用Pico
当我们拿到Pico板时,它被包装在一个塑料载体中,没有额外的零件。
除非你有计划将 Pico 表面贴装,或者你的唯一目的是只是点个灯,否则我们都需要一些引脚。
Pico 有 40 个引脚,每侧 20 个。另外三个针脚用于调试端口。
标准的公头针脚有 40 个针脚带,因此可以将其中一个针脚带减半,作为 Pico 的针脚使用。如果你想在 Debug 连接器上安装针脚,你需要另一个 3 针的公头,可以是直的或 90 度的。
焊接一个Pico
在开始对 Pico 进行编程之前,我们需要进行一些焊接工作!除了杜邦公头引脚之外,我们还需要合适的烙铁和一些焊料。
电烙铁的头需要精细一点,我们还需要一块清洁海绵和一个支架。
此外,我们还需要想办法在焊接Pico引脚时把它固定住,因为它们需要以精确的90度角安装到电路板上,这样才能装入无焊料面包板。
许多实验都使用无焊面包板来固定引脚,虽然这种方法可行,但有可能因热力或焊料飞溅而损坏面包板。
所以最好的解决方法是,你有一块老旧的面包板,用它作为针座。
我个人喜欢用几块便宜的灌注板、打孔实验板。我说的 "便宜 "是指单面的东西,没有排孔,只有一面是裸铜的。
两片这种东西很适合固定引脚,每当要焊接一个小模块或者单片机的时候,我就经常用这个。
把电烙铁加热到一定温度,然后加热引脚与焊盘的连接处,在另一面涂上焊料,千万不要直接涂到电烙铁上。加热零件,而不是焊料。
如果你想焊接Debug的3个引脚连接器(这是可选的),你可能应该先做。这些引脚的方向与GPIO引脚的方向相反。我用了一个小的便签垫来固定电路板,因为Debug连接器与GPIO引脚在网格上并不一致。
之后就是焊接40个引脚了,一次20个! 真的不需要太长的时间,只需要用尽可能多的焊料,避免出现焊桥,完成后再检查一下。
焊接后清理Pico
我喜欢在焊接完我的PCB后清洗它们,以去除焊料核心中的助焊剂和树脂。它表现为焊接连接处周围的褐色污渍。
这一步完全是可有可无的,因为助焊剂和树脂对元件的运行或寿命没有任何不利影响。它只是看起来更好看!
如果你想克隆你的板子,你需要一些PCB板清洗剂或Flus Remover。由于它也往往会留下一点残留物,我用异丙醇来清理。
PCB板清洗剂可以到网上购买。异丙醇可以在当地药店找到,一定要买纯酒精和水的混合物(70%),不要买有香味的。
我用一把旧牙刷和一些塑料容器,在一个盆子里进行工作。记得最好要准备好口罩、手套和护目镜。
我用牙刷蘸PCB清洁剂擦洗引脚,然后用牙刷蘸异丙醇冲洗。
让板子自然风干,也可以使用空气软管,这样之后,我们将拥有一个闪闪发光的新Pico!
Pico 和Thonny IDE
现在Pico的引脚已经连接好了,我们可以开始对它进行实验了。
建议你把它放在一个无焊的面包板上,以迎接我们即将到来的实验。
虽然有许多IDE可以让我们选择与我们的新Pico一起工作,但我的建议是使用树莓派推荐的Thonny IDE。
Thonny IDE
Thonny自称是 "Python IDE for Beginners",它适用于Windows、Mac OSX和Linux。
它也是树莓派操作系统(以前的Raspbian)的一部分。
我将在树莓派操作系统上使用Thonny IDE,运行在8GB的树莓派 4上,作为我今天实验的开发平台。当然,你可以使用任何你能运行Thonny的平台,但我想让它在树莓派家族中运行--另外,由于Thonny已经安装在新构建的树莓派操作系统上,所以上手非常简单。
启动和安装MicroPython
我们需要做的第一件事是将MicroPython安装到Pico上。
将microUSB连接到Pico上,并准备将另一端插入电脑。在插入之前,先按下Pico上的Boot Select(开关)按钮。
按住BOOTSEL键,将Pico插入电脑的USB端口。按住BOOTSEL键几秒钟,然后松开。
你应该会看到一个新的驱动器在你的电脑上可用,信息看起来会有所不同,这取决于你所使用的操作系统,但它类似于你将U盘插入电脑时得到的信息。
打开新的 "驱动器",你会看到一个名为 RPI-RP2
的文件夹。在这个驱动器里,你会看到几个文件,其中一个是网页文档index.htm
。
点击该网页文件,浏览器就会打开,你会被重定向到树莓派 Pico入门页面。
点击MicroPython入门的标签。你会看到一个链接来下载一个UF2文件,这就是可下载的MicroPython文件。把这个文件下载到你的电脑上。
现在将下载的文件拖到Pico的RPI-RP2文件夹中。一旦这样做了,文件夹就会消失,Pico将以MicroPython模式启动。
配置 Thonny IDE
在Pico仍然被连接的情况下,打开Thonny IDE,如果你和我一样使用树莓派操作系统,你会在编程工具菜单下找到Thonny。
一旦Thonny打开,请看右下角的状态栏,它可能会显示一个Python的版本。这是当前在你的计算机上运行的Python版本,对于我们的实验来说,这一点并不重要。
点击该消息,应该会出现一个下拉菜单,还有其他环境可以选择。其中一个应该是MicroPython (树莓派 Pico)。选择那一个。
你会注意到底部打开了一个新的Shell,在这个Shell中,你应该会看到一些文字,表明你已经连接到Pico。
是时候开始编程了!
Shell测试
Shell是Pico的 "命令行",你可以直接在这里执行代码。
一个简单的测试是输入以下内容(这也是查看你是否正确连接到 Pico 的好方法),然后按 Enter 键。
print(“Hello World”)
你应该在shell中看到 "Hello World "被打印出来了,当然这是你告诉Pico要做的。
脚本测试
当然,你不会直接在shell中输入你的程序,一来,一旦你执行了程序,它们就会消失,二来,对于任何相当大的程序来说,也是不方便的。
你要用编辑器来输入你的程序,也就是shell上面的大文本区域,在Thonny IDE的屏幕上占主导地位。
进入这个编辑器,输入和刚才一样的文字,用一个漂亮的 "你好 "来迎接编程世界。
点击 "运行 "按钮(绿色带箭头的那个),系统会提示你先保存程序。你可以选择将其保存在本地电脑或Pico上,尝试保存在Pico上。给你的程序起个带".py "后缀的名字,比如 "hello.py"。
程序将被保存并运行,你将在shell中看到 "Hello World "的问候语。你可以按 "运行 "按钮再次看到它,再按一次。
所以,现在你知道了如何编写和保存MicroPython程序,我们就可以开始我们的实验了!
使用LED和开关
基本的数字I/O功能可以很容易地用LED和开关来说明,这正是我们开始Pico冒险的方式。
但请注意我们如何给开关布线,我们将以不同的方式进行操作。
RGB LED
最简单的输出设备可能是LED。当在正确的方向上施加足够的电流时,这种输出设备就会工作。虽然简单,但它可以用来说明I/O技术,这些技术可以应用于其他设备,如继电器或晶体管。
我将使用一个Common-Cathode RGB LED,但你也可以使用三个分立的LED来代替。无论哪种方式,你都还需要三个降压电阻,我在实验中使用了330欧姆的电阻。
如果你选择像我这样使用RGB LED,一定要买一个标准的RGB LED,而不是一个可编程的。
按钮开关
这是最简单的输入设备。我用的是一对瞬时常开按钮开关
一个红色和一个黑色,但在其他方面是相同的。
我们再次使用一个简单的输入设备来测试我们的小Pico的I/O能力。我们将以不同的方式为两个开关布线,使其更加有趣,而且我们也不会使用任何上拉或下拉电阻。
LED和开关的连接
这里是我们的LED和开关的连接图,请记住,如果你没有共阴极RGB LED,你可以使用三个独立的LED。
请注意,这两个开关的接线方式不同。
黑色按钮开关的一侧连接到Pico的GPIO引脚,另一侧连接到地。
红色开关则相反,它的一侧连接到GPIO引脚,另一侧连接到3.3伏,这是Pico的工作电压和逻辑电压。
经典项目——点灯
我们要做的第一个实验是我们自己的Arduino "Blink "草图的变体。是的,从技术上讲,我们已经看到了如何闪烁板载LED,但由于我们现在有一个RGB LED在我们的支配下,我们当然可以找到另一种方法来点灯!
在Thonny中打开以下代码。
- # 树莓派 Pico RGB Blink
- # rgb-blink.py
-
- # RED LED - Pico GPIO 10 - Pin 14
- # GREEN LED - Pico GPIO 11 - Pin 15
- # BLUE LED - Pico GPIO 14 - Pin 19
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
-
- import machine
- import utime
-
- led_red = machine.Pin(10, machine.Pin.OUT)
- led_green = machine.Pin(11, machine.Pin.OUT)
- led_blue = machine.Pin(14, machine.Pin.OUT)
-
-
- while True:
-
- led_red.value(1)
- led_green.value(0)
- led_blue.value(0)
- utime.sleep(2)
-
- led_red.value(0)
- led_green.value(1)
- led_blue.value(0)
- utime.sleep(2)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(1)
- utime.sleep(2)
-
- led_red.value(1)
- led_green.value(1)
- led_blue.value(0)
- utime.sleep(2)
-
- led_red.value(1)
- led_green.value(0)
- led_blue.value(1)
- utime.sleep(2)
-
- led_red.value(0)
- led_green.value(1)
- led_blue.value(1)
- utime.sleep(3)
-
- led_red.value(1)
- led_green.value(1)
- led_blue.value(1)
- utime.sleep(2)
-
- print("End of Loop")
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(0)
- utime.sleep(2)
这是一个简单的脚本,肯定可以改进,但它可以很好地说明我们的观点。
我们先导入 machine 和 utime 库。你会发现,任何涉及I/O端口的活动都需要用到machine,而只要我们想使用时间函数,就需要用到utime。
然后,我们定义三个 LED 元件的连接,请注意,它们是以 GPIO 编号而非 Pico 上的物理引脚编号来表示的。我们将所有这些引脚定义为 machinePin.OUT,这意味着这些引脚现在被设置为输出引脚。
while True条件类似于Arduino草图中的Loop,这里的代码是连续执行的。
在本节中,我们对LED进行寻址,并将它们设置为开(值为1)或关(值为0)。我们通过一个序列,在最后一个序列,我们打印到控制台。
然后我们再做一遍。
将脚本加载到Pico上,然后观察LED,你应该会看到一个彩色的闪烁。
开关测试
我们接下来的脚本是对两个开关进行一个非常基本的测试,我们用这样一个奇怪的方式来接线。
你会观察到的第一件奇怪的事情是它们的接线不同,黑色的开关将输入端连接到地,而红色的开关将输入端连接到3.3伏,用于逻辑HIGH。
另一个有趣的事情是,这两个开关都没有采用上拉或下拉电阻,它们显然需要这些电阻,黑色开关需要上拉,红色开关需要下拉才能正常工作。
我们将在代码中加入所需的电阻!
- # 树莓派 Pico Switch Test
- # switchtest.py
-
- # RED BUTTON - Pico GPIO 15 - Pin 20
- # BLACK BUTTON - Pico GPIO 2 - Pin 4
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- button_red = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
- button_black = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
-
-
- while True:
-
- if button_red.value() == 1:
- print("Red")
-
- if button_black.value() == 0:
- print("Black")
-
- utime.sleep(0.25)
请注意定义按钮的行的语法,你会看到它们是如何被定义为Inputs的,以及如何添加了下拉和上拉电阻。
在while True: 循环中,你还会注意到我们是在监测不同的条件,红色的开关触发了一个HIGH输入,而黑色的开关触发了一个LOW。
最后的微小时间延迟是一种简单的debouncing形式,如果你喜欢,你可以实验一下这个值。
这个脚本会在控制台中打印所有的结果,所以在你按下按钮的时候要注意。
中断和切换
接下来的实验引入了几个有用的概念。第一个,也可以说是这两个概念中最重要的,就是 "中断"。
中断
中断就像它的声音一样,是一个 "中断 "程序正常流程的事件。在我们的情况下,我们处理的是外部硬件中断,这意味着在程序继续运行之前,需要处理一个信号或状态变化。
在Pico上,我们按照以下方式创建一个中断。
我们将一个引脚定义为 "中断输入", 我们定义该点上的状态变化被认为是一个中断。在 Pico 上,我们可以使用任何 GPIO 引脚来实现这一点,而且我们可以定义多个引脚。
我们创建了一个 "中断处理程序 "函数,我们希望在检测到中断时运行该函数。
我们将 "中断处理程序 "与 "中断输入 "配对。
现在,每当中断输入条件发生时,Pico 将停止它正在做的任何事情,并执行 "中断处理程序"。然后它将恢复到原来的位置。
切换
虽然不像中断那样基本,但仍然非常有用。“切换”只是将 Pico 上的输出状态反转。
因此,如果输出为高电平,而我们应用 "切换",它就会变为低电平。
我们不需要知道输出的当前状态,我们只需要知道当我们应用一个切换器时,它将变为相反的状态。
自然,这是写另一个Blink程序的理想函数,所以我们会这么做。只有我们的Blink程序才会有被中断的风险!
- # 树莓派 Pico Interrupt & Toggle Demo
- # interrrupt-toggle-demo.py
-
- # RED LED - Pico GPIO 10 - Pin 14
- # GREEN LED - Pico GPIO 11 - Pin 15
-
- # RED BUTTON - Pico GPIO 15 - Pin 20
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- led_red = machine.Pin(10, machine.Pin.OUT)
- led_green = machine.Pin(11, machine.Pin.OUT)
-
- led_red.value(0)
- led_green.value(0)
-
- button_red = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
-
- def int_handler(pin):
- button_red.irq(handler=None)
- print("Interrupt Detected!")
- led_red.value(1)
- led_green.value(0)
- utime.sleep(4)
- led_red.value(0)
- button_red.irq(handler=int_handler)
-
- button_red.irq(trigger=machine.Pin.IRQ_RISING, handler=int_handler)
-
- while True:
-
- led_green.toggle()
- utime.sleep(2)
在这个MicroPython脚本中,我们将闪烁我们的RGB LED的绿色部分,使用一个切换器来改变它的状态。在正常的操作下,LED状态将每两秒钟切换一次。
然而,我们可以通过按下红色按钮来中断闪烁。这将导致一个中断,这将关闭绿色的LED,然后打开红色的。它将保持四秒,之后程序控制权将被恢复,因此我们可以继续进行绿色闪烁。
我们通过导入machine
和utime
库来开始我们的脚本,就像我们之前一样。
LED段和红色按钮的定义和之前的脚本一样。LED在程序启动时被关闭。
然后我们定义一个函数,这是我们的中断处理程序,叫做 "int_handler"。在这个函数中,我们做了以下工作。
关闭中断,这样我们就不会有多个中断了。
将 "中断检测 "打印到Shell上
打开红色LED段。
关闭绿色LED段。
睡眠四秒。
关闭红色段。
重新建立中断
退出
处理函数后的那一行将中断 "粘 "到我们定义为红色按钮输入的引脚上。需要注意的是,它指定了 "IRQ_RISING",这意味着如果输入从0(地)上升到1(3.3伏),它将触发一个中断。这与我们红色按钮的接线方式一致。
在True循环中,我们只需使用定义为输出的任何GPIO引脚可用的 "toggle "功能来闪烁LED。
将它发送到Pico上,观察RGB LED,它应该开始闪烁绿色。观察一段时间,然后按下红色按钮。LED应该变成红色,Shell应该显示 "Interrupt Detected"。四秒钟后,绿色闪烁将重新开始。
开关和LED演示
既然我们一直在研究开关和LED,我们不妨把它们结合起来,再编写一个简单的脚本。
- # 树莓派 Pico Switch & RGB LED Demo
- # switch-led-demo.py
-
- # RED LED - Pico GPIO 10 - Pin 14
- # GREEN LED - Pico GPIO 11 - Pin 15
- # BLUE LED - Pico GPIO 14 - Pin 19
-
- # BLACK BUTTON - Pico GPIO 2 - Pin 4
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- led_red = machine.Pin(10, machine.Pin.OUT)
- led_green = machine.Pin(11, machine.Pin.OUT)
- led_blue = machine.Pin(14, machine.Pin.OUT)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(0)
-
- button_black = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
-
- while True:
-
- if button_black.value() == 0:
-
- led_red.value(1)
- led_green.value(0)
- led_blue.value(0)
- utime.sleep(1)
-
- led_red.value(0)
- led_green.value(1)
- led_blue.value(0)
- utime.sleep(1)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(1)
- utime.sleep(1)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(0)
这个很简单,现在大家应该对它的操作很熟悉了。我们用machine
库函数定义RGB LED和黑色按钮。
记住,黑色按钮是由我们定义的上拉保持HIGH的,当按钮被按下时,它就会变LOW,因为另一边是接地线的。
所以在True循环中,我们寻找一个 "0 "的值,以表示按钮被按下。一旦我们检测到这个条件,我们就会通过它们的颜色循环LED段。
正如我所说,很简单的东西。
模拟输入测试
现在我们来谈谈模拟输入。
树莓派 Pico有三个模拟输入,它们都有12位的分辨率。
这三个输入端如下。
GPIO 26 - ADC0 (31针)
GPIO 27 - ADC1 (针脚 32)
GPIO 28 - ADC2 (针脚34)
还有第四个ADC用于内部温度传感器。
电位计的连接
在我们的测试中,我们将使用一个电位器在模拟输入端呈现一个可变电压,然后我们将读取该电压。我们将使用ADC0作为我们的电位计输入,但你也可以使用其他两个中的一个。
请注意,虽然我将23号针脚显示为地线,这只是为了方便,但你可以使用任何Pico地线针脚。在33号针脚处还有一个特殊的模拟地,你可以使用。在我的面包板上,我将33号针脚与其他一些地线相连。
电位计读数
我们要做的第一个实验是简单地读取我们在模拟输入端得到的值,这个值应该根据我们电位器的位置而波动。
- # 树莓派 Pico Analog Input Test
- # analog-input.py
-
- # POT - Pico GPIO 26 ADC0 - Pin 32
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
-
- import machine
- import utime
-
- potentiometer = machine.ADC(26)
-
- while True:
- print(potentiometer.read_u16())
- utime.sleep(2)
这是一个简单的脚本,像往常一样,首先导入用于GPIO操作的machine
库和用于时间函数的utime
库。
然后我们定义我们的电位器连接。请注意我们如何使用 "ADC "来表示我们要将GPIO 26针作为模拟输入。当然这只适用于具有模拟输入能力的三个GPIO引脚。
在True循环中,我们只需打印从电位器上得到的值,然后延迟几秒钟再做一次。
需要注意的是,我们用 "read_u16 "函数得到的值的类型是一个无符号的16位整数。这意味着它将在0和65,535之间变化,而不是你可能期望从12位ADC中得到的4095。
这可能看起来很奇怪,但正如我们将在下一个脚本中看到的那样,能够传递具有相同数值数据类型的值实际上是有用的。
运行脚本并观察Shell,你应该会看到那里的数值随着你移动电位器轴而改变。
LED PWM控制
让我们在之前的脚本基础上进行扩展,使用电位器的输出来控制LED的亮度。
当然,我们将使用PWM进行控制,这个任务在MicroPython中非常简单。
- # 树莓派 Pico LED PWM Test
- # led-pwm.py
-
- # POT - Pico GPIO 26 ADC0 - Pin 32
-
- # RED LED - Pico GPIO 10 - Pin 14
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
-
- import machine
- import utime
-
- led_red = machine.PWM(machine.Pin(10))
- potentiometer = machine.ADC(26)
-
- led_red.freq(1000)
-
- while True:
- led_red.duty_u16(potentiometer.read_u16())
在这个脚本中需要注意的一个关键项目是我们定义 "led_red "的方式。我们将其定义为 "PWM",而不是输出。
电位器的定义与上一个脚本中的方式完全相同。
现在我们已经给输出赋予了 "PWM "的属性,它继承了许多其他参数。其中之一是PWM频率,我们将其设置为1000 Hz。
在true循环中,我们不断地从电位器中获取无符号的16位值,并将其传递给LEDs占空比,也方便地指定为无符号的16位整数。
这就说明了两者保持相同的编号方案的价值,不需要将模拟值,真的是0到4095,映射到占空比,真的是0到100。
运行程序,你应该可以顺利地控制红色LED段的亮度。
添加显示屏
我们将进行的下一个实验是将一个OLED显示器连接到我们的Pico上,当然,也可以在上面打印一些东西。
我们将使用 I2C 显示屏,因此我们也将看到 Pico 如何使用 I2C 连接工作。记住,Pico有两条I2C总线。
我们的OLED是标准的1602型OLED显示器,到处都有。如果你愿意,也可以使用与我的显示屏尺寸不同的显示屏,只需在代码中更改尺寸即可。
这是我们如何把这些东西都挂起来的,只有四根线。
我们的显示器需要一个库,我们可以使用Thonny ID安装。你可能会发现在全菜单模式下比在基本模式下更容易,但这两种方式都可以。
点击 "工具 "菜单
点击 "管理包"
搜索 "ssd1306"
找到 "ssd1306.py "并安装它。
现在我们已经安装了库,我们可以看一下演示OLED显示屏的脚本。
- # 树莓派 Pico OLED Display Test
- # Uses ssd1306 module
- # display-ssd1306-test.py
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- sda=machine.Pin(20)
- scl=machine.Pin(21)
-
- i2c=machine.I2C(0, sda=sda, scl=scl, freq=400000)
-
- from ssd1306 import SSD1306_I2C
- oled = SSD1306_I2C(128, 32, i2c)
-
-
- print(i2c.scan())
-
- oled.text('Welcome to the', 0, 0)
- oled.text('Pi Pico', 0, 10)
- oled.text('Display Demo', 0, 20)
- oled.show()
- utime.sleep(4)
-
- oled.fill(1)
- oled.show()
- utime.sleep(2)
- oled.fill(0)
- oled.show()
-
- while True:
- oled.text("Hello World",0,0)
- for i in range (0, 164):
- oled.scroll(1,0)
- oled.show()
- utime.sleep(0.01)
我们的 OLED 显示屏是一个 I2C 设备,所以你会注意到,在脚本的开头,我们将两个 GPIO 引脚定义为 SDA (GPIO 20) 和 SCL (GPIO 21)。
Pico有两条I2C总线,你可以使用几种不同的GPIO引脚来连接它们。但它们并不是随便的引脚,例如某些引脚被指定为总线0的SDA,只有它们才能用于SDA总线0。
然后我们使用机器库的I2C函数定义一个I2C连接。我们需要给它提供以下参数。
I2C总线号,在我们的例子中是0。
SDA引脚
SCL引脚
I2C总线频率--在我们的例子中是400KHz。
然后我们添加OLED库,并创建一个I2C OLED对象。我们将大小参数和I2C连接信息传递给它。
注意,我们没有传递I2C地址。SD1306 OLED显示器有一个固定的I2C地址,所以我们不需要指定它。
不过,我在这里添加了一行与显示器无关的内容,但可以让你扫描I2C总线,并打印出它发现占用的地址。请注意,在Shell中打印出来的是十进制,而不是你更可能习惯看到的十六进制。
回到OLED脚本!
我们开始在显示屏上打印,几行文字。注意我们如何指定每行开始的像素位置。
实际上,我们并没有直接打印到显示屏上,而是将数据发送到一个缓冲区。oled.show()
这一行将把该缓冲区的数据传输到显示器上。
在打印完欢迎信息并按住它四秒钟后,我们再执行oled.fill(1)
。这将打开显示器中的每一个像素,或者更准确地说,是缓冲区中的每一个像素。然后我们做一个oled.show()
来显示填充。
我们将填充物保持在显示屏上两秒钟,然后执行oled.fill(0)
,当我们显示它时,它将关闭显示屏中的每个像素。
现在进入True循环。
我们再次输入一些文本,经典的 "Hello World"。但我们没有进行 "显示 "来显示它,而是开始一个for-loop。在这个循环中,我们使用led.scroll(1,0)将显示水平移动1像素(垂直移动0像素,这就是另一个参数)。
然后我们在屏幕上显示,然后休眠一段很短的时间。然后我们再做一次。
结果将是显示屏在屏幕上滚动。你可以在for-loop中使用参数来改变它。
将脚本加载到你的Pico上,然后观看显示。你应该看到欢迎文字,然后是显示填充,然后是空。之后,只要你让实验运行,滚动的 "Hello World "就会继续。
驱动电机
微控制器比较流行的应用之一是驱动一个或几个直流电动机。
这是通过使用H-Bridge来实现的,H-Bridge是一种功率晶体管或MOSFET的排列方式,可以处理电机电流,同时允许你控制电机的方向和速度。
我们将只用一个电机来实现这一点。我们将使用TB6612FNG H-Bridge和树莓派 Pico来控制一个小型直流电机。
TB6612FNG H-Bridge
TB6612FNG H-Bridge是我们之前使用过的,一款基于MOSFET的H-Bridge,相比老款备用的L-298N有很多性能上的优势。
该设备其实有两个通道,我们只用通道A来演示。
通道A有三个输入。
AI1 - 方向和模式
AI2 - 方向和模式
PWMA - 一个PWM输入,用于控制电机速度。
在它们之间,AI1和AI2引脚控制电机方向和模式。模式包括短制动和停止模式。在我们的简单演示中,我们将只处理方向模式。
TB6612FNG H-Bridge在板子的另一侧还有电源和电机的连接。
下面是我们将使用TB6612FNG H-Bridge和树莓Pico的连接方式。
请注意,由于我使用的是6V电机,我已经为它提供了一个6V电源。不要试图使用Pico的输出电压来为你的电机供电,单独的电源是必要的。我使用了四节AA型电池,这是一种简单而安全的安排。
电机的极性其实并不重要,它只是决定了哪条路是向前的,哪条路是向后的。
一旦它被全部连接起来,我们就需要一些代码来运行它。我建议这样做。
- # 树莓派 Pico Motor Test
- # motor-test.py
-
- # POT - Pico GPIO 26 ADC0 - Pin 32
-
- # RED BUTTON - Pico GPIO 15 - Pin 20
- # BLACK BUTTON - Pico GPIO 2 - Pin 4
-
- # RED LED - Pico GPIO 10 - Pin 14
- # GREEN LED - Pico GPIO 11 - Pin 15
- # BLUE LED - Pico GPIO 14 - Pin 19
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- potentiometer = machine.ADC(26)
-
- mtr_AI1 = machine.Pin(8, machine.Pin.OUT)
- mtr_AI2 = machine.Pin(7, machine.Pin.OUT)
- mtr_PWMa = machine.PWM(machine.Pin(6))
-
- button_red = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
- button_black = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
-
- led_red = machine.Pin(10, machine.Pin.OUT)
- led_green = machine.Pin(11, machine.Pin.OUT)
- led_blue = machine.Pin(14, machine.Pin.OUT)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(1)
-
- mtr_PWMa.freq(50)
- mtr_AI1.value(1)
- mtr_AI2.value(0)
-
- while True:
-
- mtr_PWMa.duty_u16(potentiometer.read_u16())
-
- if button_red.value() == 1:
- mtr_AI1.value(0)
- mtr_AI2.value(1)
- led_red.value(1)
- led_green.value(0)
- led_blue.value(0)
-
- if button_black.value() == 0:
- mtr_AI1.value(1)
- mtr_AI2.value(0)
- led_red.value(0)
- led_green.value(1)
- led_blue.value(0)
-
- utime.sleep(0.25)
我们要利用电位器、两个开关和RGB LED,以及电机控制器。电位器将控制电机的速度,开关将控制电机的方向,而LED将用彩色指示灯显示当前的方向。
我们使用我们的之前的两个库,并像以前一样设置电位器。
接下来,我们将Pico与TB6612FNG H-Bridge的连接定义为输出。GPIO 6上的PWMA输出被定义为PWM,它将控制电机速度。
LED和按钮的设置与之前相同。
PWM频率设置为50Hz,这是一个任意的选择。随意实验一下,看看是否能提高电机性能。
电机AI1和AI2输入被设置为正向旋转,所以电机将以正向启动。请注意,当我们启动时,RGB LED的蓝段也会被打开。
在True循环中,我们读取电位器的值,并将其传递给电机PWM信号,以控制电机的速度。我们还要看按钮的状态。
如果红色按钮被按下,我们设置AI1和AI2信号,使电机反转。我们也会点亮红色LED段。
如果黑色按钮被按下,我们设置电机方向正向,并打开绿色LED段。
加载、检查代码。它应该用一个蓝色的LED启动,你应该能够控制电机的速度。按下按钮可以控制方向,还可以改变 LED 的颜色。
Pico Everything 演示
剩下的就是把所有的东西放在一起做一个大的最终演示。这一点我们已经做得不远了,因为在上一个脚本中,我们使用了所有的东西,除了OLED显示屏。
所以让我们把OLED显示屏添加到这个组合中。下面是我们需要做的代码。
- # 树莓派 Everything Test
- # everything.py
-
- # POT - Pico GPIO 26 ADC0 - Pin 32
-
- # RED BUTTON - Pico GPIO 15 - Pin 20
- # BLACK BUTTON - Pico GPIO 2 - Pin 4
-
- # RED LED - Pico GPIO 10 - Pin 14
- # GREEN LED - Pico GPIO 11 - Pin 15
- # BLUE LED - Pico GPIO 14 - Pin 19
-
- # DroneBot Workshop 2021
- # https://dronebotworkshop.com
-
- import machine
- import utime
-
- potentiometer = machine.ADC(26)
-
- mtr_AI1 = machine.Pin(8, machine.Pin.OUT)
- mtr_AI2 = machine.Pin(7, machine.Pin.OUT)
- mtr_PWMa = machine.PWM(machine.Pin(6))
-
- button_red = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
- button_black = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
-
- led_red = machine.Pin(10, machine.Pin.OUT)
- led_green = machine.Pin(11, machine.Pin.OUT)
- led_blue = machine.Pin(14, machine.Pin.OUT)
-
- sda=machine.Pin(20)
- scl=machine.Pin(21)
-
- i2c=machine.I2C(0, sda=sda, scl=scl, freq=400000)
-
- from ssd1306 import SSD1306_I2C
- oled = SSD1306_I2C(128, 32, i2c)
-
- oled.text('Pico Motor Test', 0, 0)
- oled.show()
- utime.sleep(2)
-
- led_red.value(1)
- led_green.value(0)
- led_blue.value(0)
- utime.sleep(2)
-
- led_red.value(0)
- led_green.value(1)
- led_blue.value(0)
- utime.sleep(2)
-
- led_red.value(0)
- led_green.value(0)
- led_blue.value(1)
-
- mtr_PWMa.freq(50)
- mtr_AI1.value(1)
- mtr_AI2.value(0)
-
- while True:
-
- speedvalue = int((potentiometer.read_u16())/500)
-
- mtr_PWMa.duty_u16(potentiometer.read_u16())
-
- if button_red.value() == 1:
- mtr_AI1.value(0)
- mtr_AI2.value(1)
- led_red.value(1)
- led_green.value(0)
- led_blue.value(0)
-
- if button_black.value() == 0:
- mtr_AI1.value(1)
- mtr_AI2.value(0)
- led_red.value(0)
- led_green.value(1)
- led_blue.value(0)
-
- oled.fill_rect(1,15,speedvalue,25,1)
- oled.show()
- oled.fill_rect(1,15,speedvalue,25,0)
- utime.sleep(0.25)
现在你应该能认出这段代码的大部分内容了,基本上就是之前的脚本,加上了I2C OLED显示屏的库和设置。除此之外,前几行都是一样的,都是LED颜色的序列,一切设置好后,会有一个Display print。
在True循环中,我们看到正在计算一个名为 "speedvalue "的整数。这个变量将用于设置OLED上条形图显示的大小。
红色和黑色的按钮和之前的操作完全一样。
然后,OLED在其标题线下画一个矩形,并填入矩形。矩形的长度由 "speedvalue "决定,所以随着速度的增加,矩形会变长。
从某种意义上说,我们是把OLED当做一个粗略的速度指示器,或者说是一个速度表!
装上所有的东西,看演示效果。它的操作应该和之前的实验一样,只是这次我们除了有一个显示电机速度的显示器外,还有一个指示其方向的RGB LED。
在没有主机的情况下运行
到目前为止,我们所做的一切都是从 Thonny IDE 将程序加载到 Pico 上运行的。
但是,一旦你开发了程序,你就会希望它能够独立运行,由 microUSB 端口或通过 Pico VSYS 电源输入供电。
你的程序或程序已经存储在 Pico 上。那么我们如何让它在开机时运行程序呢?
答案是,我们更改程序名称!
主程序main.py
当 Pico 启动时,它会查找名为 main.py 的程序。如果它找到了它,就会加载它并在启动时运行它。
因此,如果你想让你的程序在无人看管的情况下运行,你需要将其保存为main.py。稍后,如果你愿意,你可以将main.py改成其他程序,或者完全删除它。
首先将你希望在启动时运行的程序加载到Thonny IDE中。现在点击 "文件",然后选择 "另存为"。
你会被问到是否要保存在本地计算机上或Pico上,你肯定要保存在Pico上。
现在把你的程序保存为 "main.py"。就像这样,全部用小写。
现在从电脑上拔下 Pico 的插头,并将其插入合适的电源,如 USB 适配器。你会看到Pico重新开机,并运行你保存为 "main.py "的程序。
结束语
这显然只是树莓派Pico的开始。
我很希望看到PlatformIO和Arduino IDE能够为树莓派 Pico提供支持,因为目前为Pico创建C++程序的方法有些繁琐,特别是对于初学者来说。
但它是进入MicroPython的一个很好且廉价的入口,你会在这里看到更多的东西。
所以尽快拿起Pico开始实验吧!
资源简介
Pico代码[1] - 本文中使用的所有MicroPython代码,放在一个方便的ZIP文件中。
树莓派 Pico[2] - 树莓派 Pico的官方公告页面。
Pico Pinout[3] - Pico Pinout的树莓派 PDF文件。
Pico Datasheet[4] - 包含Pico技术规格和评级的PDF文档。
RP2040 Datasheet[5] - 包含RP2040微控制器所有规格的PDF文件。警告,这是一个非常大的文档
Pico MicroPython SDK[6] - 在树莓派Pico上使用MicroPython的良好PDF指南。
Pico C++ SDK[7] - Pico上的C++的PDF指南。这也是一个非常大的文档。
转载请注明出处与作者信息文中所有的PDF文档获取方式:直接复制下方参考资料内的链接,粘贴到浏览器下载.
参考资料
[1]
Pico代码: http://dbot.ws/picocode
[2]树莓派 Pico: https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale/
[3]Pico Pinout: https://datasheets.raspberrypi.org/pico/Pico-R3-A4-Pinout.pdf
[4]Pico Datasheet: https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
[5]RP2040 Datasheet: https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf
[6]Pico MicroPython SDK: https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-python-sdk.pdf
[7]Pico C++ SDK: https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf
文章评论
May I simply just say what a relief to find someone who truly understands what they are discussing on the web. You definitely understand how to bring a problem to light and make it important. More and more people ought to check this out and understand this side of your story. Its surprising you arent more popular because you definitely have the gift.
Itís hard to come by knowledgeable people for this subject, but you seem like you know what youíre talking about! Thanks
Greetings! Very useful advice in this particular post! Its the little changes that will make the most significant changes. Thanks for sharing!
Good post. I learn something totally new and challenging on websites I stumbleupon on a daily basis. It will always be useful to read content from other authors and use something from their websites.
Thanks for your blog, nice to read. Do not stop.
Very nice work with your entry. Many readers may view it in the same light for sure and wholly agree with your idea. Levi Aylsworth
You need to be a part of a contest for one of the greatest websites on the internet. Im going to recommend this site!
Can I simply say what a relief to uncover somebody that truly understands what they are discussing over the internet. You certainly know how to bring an issue to light and make it important. A lot more people must look at this and understand this side of your story. I was surprised that you are not more popular given that you most certainly have the gift.
Particularly by: (A) figuring ouut the simplest mixture of
massage parameters (0.25 or 0.5 Hz, 5 or 10N, 15 or 30
min), (B) quantifying muscle membrane disruption and myofiber harm, and (C) utilizing the quasi-linear
viscoelasticity (QLV) model tto cheeck passive time-dependent responses of skeletal muscle to repeated therapeutic massage-like compressive loading (MLL) following
damaginng eccentric train. Subjects and Method: This examine was
a qualitative analytical research using a phenomenological
research method in Mamba Community Health Center.
In the meantime I wish you continued exccellent health. The endless health
benefits of massage gkve you innumerable reasons to go
for it in the present day. Based on the Northwestern Health Science
University, massage therapy is defined by the manipulation oof comftortable body tissues, such because the muscle, connective tissue, tendons, and ligaments, tto hasten an individual's
health and well-being. This massagge promotes the penetration of
oil deep into the body tissues, softening, lubricating and selling flexibility of the muscles and joints.
Dry or Cracked Lips - Many lip balms include cocont oil ass
a staple ingredient.
Alsoo visit my web blog: <a href="https://jhahanadas.com/categor/Discreet-apartments-in-Ashdod.php">דירה דיסקרטית באשדוד</a>
The composition of this massage lubricant generlly combines
natural ingredients and provides its aroma, such as coffee, yam, chocolate, or honey.
Starting frdom thhe fragrant vanilla, green tea,
chocolate, fruits, cherry blossoms, or supervisor that feels conventional.
The skin feels more moist and supple after the gel is rubbed.
The texture of the lotion thus makes the therapist simpler to therapeutic massage as a result of it feels right when the ttherapeutic massage
is finished: not too sticky and never too slippery.
The lotion is extra liquid than cream and it is less complicated to rub on the pores and skin. Another benefit, utilizing lotion can also bee relatively straightforwsard too scrub, but still in a
position to nourish the skin. Still others wish to get riid of thee fixed
ache with this method. In actual fact, massage as a remedy for pain relief continues
to be uncommon aand unpopular. A lowedr agaiin massage caan ease these muscle spasms and supply important relief from pain. • Boody to body Massage- This type is quite famous and
very demanding amongst individuals because it helps inn providing immediate relief from physique ache, lower again pain, stress, depressikon or any kind
of muscle's tension. Padabhyangam: Aside from the whole body massage, the foot therapeutic massage additionally helps in stimulating the various pressure
points that control emotion.
Feel free to surf tto my web site :: <a href="https://karolinemontreal.com/region/Discreet-apartments-in-Ramat-Gan.php">https://karolinemontreal.com/region/Discreet-apartments-in-Ramat-Gan.php</a>
It's impressive that you are getting ideas from this post as well
as from our discussion made at this time.
It's the best time to make some plans for the future and it's time to be happy.
I have read this post and if I could I desire to suggest you few interesting things
or tips. Maybe you can write next articles referring to this article.
I want to read even more things about it!
I've learn several excellent stuff here. Certainly price bookmarking for revisiting.
I wonder how so much effort you put to create the sort of magnificent informative web site.
Informative article, totally what I needed.
Hello just wanted to give you a quick heads up. The text in your content seem to be running off the screen in Chrome.
I'm not sure if this is a format issue or something to do with internet browser compatibility but I thought I'd post to let you know.
The design and style look great though! Hope you get the problem solved soon. Cheers
Unquestionably imagine that that you stated. Your favourite justification appeared to be on the internet the easiest factor to have in mind of.
I say to you, I definitely get irked while folks consider issues that they just do not understand
about. You managed to hit the nail upon the highest and outlined out the entire thing without having side-effects , other folks could
take a signal. Will likely be back to get more. Thanks
What's up, yeah this paragraph is truly fastidious and I
have learned lot of things from it on the topic of blogging.
thanks.
Hi there, just wanted to tell you, I loved this post. It was
inspiring. Keep on posting!
Spot lets start on this write-up, I really believe this excellent website requirements a lot more consideration. I’ll more likely once again to learn far more, thank you that info.
kitchen furnitures need to be well maintained that is why we always coat them with clear coat varnishes to protect them from the elements,.
Thank you for any other great article. The place else may just anyone get that type of information in such a perfect method of writing? I’ve a presentation next week, and I’m at the look for such info.
The subsequent time I learn a blog, I hope that it doesnt disappoint me as a lot as this one. I imply, I do know it was my option to read, however I actually thought youd have one thing fascinating to say. All I hear is a bunch of whining about one thing that you could fix when you werent too busy in search of attention.
After i visit a blog, it’s almost guaranteed that We notice that the majority of sites are amateurish. Regarding your website,I have to state that you have done a great job here.
Sorry for that large evaluation, but I am truly caring the brand new Microsoft zune, and hope this, as well as the exceptional reviews some other men and women wrote, will help you determine if it is the proper choice for you.
Throughout the awesome scheme of things you secure a B+ with regard to hard work. Where exactly you lost everybody was in your facts. As as the maxim goes, the devil is in the details… And it couldn’t be much more correct in this article. Having said that, let me say to you just what did work. The authoring is certainly quite persuasive and this is probably the reason why I am taking the effort to comment. I do not make it a regular habit of doing that. Next, even though I can easily see a leaps in reasoning you come up with, I am not really certain of exactly how you seem to unite your points which inturn produce the actual conclusion. For the moment I will, no doubt yield to your point but wish in the future you actually link the dots much better.
I’d must seek advice from you here. Which isn’t some thing It’s my job to do! I spend time reading an article that will make people think. Also, thank you allowing me to comment!
You made some decent points there. I looked over the internet for that problem and located most people may go coupled with with all your site.
Today, with all the fast way of life that everyone leads, credit cards have a big demand throughout the economy. Persons throughout every arena are using the credit card and people who not using the credit cards have arranged to apply for just one. Thanks for revealing your ideas on credit cards.
I am having a weird downside I cannot appear to be ready to link to your rss feed. i am using google reader Fyi.
Great website. You’ll discover several opinions on this matter and also this blog declares the matter quite fantastic.
I discovered your blog site internet site on the search engines and check a few of your early posts. Always keep on the great operate. I simply additional encourage Feed to my MSN News Reader. Seeking forward to reading far more from you down the line!…
when it comes to beautiful smile and beautiful teeth, Rachel McAdams have it all`
I?¦ve read several excellent stuff here. Certainly worth bookmarking for revisiting. I surprise how a lot attempt you set to make this type of great informative website.
Great job, I was doing a google search and your site came up for homes for sale in Altamonte Springs, FL but anyway, I have enjoyed reading it, keep it up!
брилкс казино
<a href="https://brillx-kazino.com">Brillx</a>
Вас ждет огромный выбор игровых аппаратов, способных удовлетворить даже самых изысканных игроков. Брилкс Казино знает, как удивить вас каждым спином. Насладитесь блеском и сиянием наших игр, ведь каждый слот — это как бриллиант, который только ждет своего обладателя. Неважно, играете ли вы ради веселья или стремитесь поймать удачу за хвост и выиграть крупный куш, Brillx сделает все возможное, чтобы удовлетворить ваши азартные желания.Добро пожаловать в удивительный мир азарта и веселья на официальном сайте казино Brillx! Год 2023 принес нам новые горизонты в мире азартных развлечений, и Brillx на переднем крае этой революции. Если вы ищете непередаваемые ощущения и возможность сорвать джекпот, то вы пришли по адресу.
Fantastic piece! This was very enlightening.
Feel free to visit my page ... <a href="https://play.google.com/store/apps/details?id=com.ni.OnlinePaydayLoansCanada">payday loans ei</a>
Лучшие онлайн казино России на рубли
<a href="https://carcam-official.ru/">Лучшие онлайн казино России на рубли</a>
Лучшие онлайн казино России на рубли
<a href="https://carcam-official.ru/">https://carcam-official.ru/</a>
Онлайн казино на реальные деньги для андроид
<a href="https://gozee.ru/">Онлайн казино на реальные деньги для андроид</a>
Онлайн казино на реальные деньги для андроид
<a href="https://gozee.ru/">Онлайн казино на реальные деньги для андроид</a>
Just wish to say your article is as astonishing. The clarity in your post
is just nice and i can assume you are an expert on this subject.
Fine with your permission allow me to grab your RSS feed to keep updated with
forthcoming post. Thanks a million and please carry
on the rewarding work.
Онлайн казино на реальные деньги для андроид
<a href="https://gozee.ru/">https://gozee.ru/</a>
Онлайн казино на реальные деньги для андроид
<a href="https://gozee.ru/">https://gozee.ru/</a>
промокоды Aurora Casino
<a href="https://auroracasino1.com">зеркало Aurora Casino</a>
играть в казино Покердом
<a href="https://pokerdoma.quest">https://pokerdoma.quest</a>
Hello there! This article couldn't be written any better! Looking through
this post reminds me of my previous roommate! He always kept
talking about this. I most certainly will forward
this information to him. Pretty sure he's going to have a good
read. Thanks for sharing!
Great website. Plenty of useful info here. I'm sending it to some buddies ans
also sharing in delicious. And obviously, thank you for
your effort!
играть онлайн в Aurora Casino
<a href="https://auroracasino1.com">Aurora Casino</a>
казино без верификации документов и без паспорт
<a href="https://clickrabota.ru">казино без верификации</a>
freespin nasıl kullanılır
<a href="https://lindenhillsfarmersmarket.com">https://lindenhillsfarmersmarket.com</a>
The First-Time Home Buyer Incentive reduces monthly costs through co-ownership with CMHC.
First-time buyers have access to specialized programs
and incentives to further improve home affordability.
Here is my blog post <a href="http://afcantarelle.org/index.php?title=Why_List_Of_Private_Mortgage_Lenders_Is_Not_Any_Buddy_To_Small_Business">private mortgage lenders</a>
Commercial Mortgages provide financing for apartments or condos,
office towers, hotels, warehouses and retail spaces.
The minimum downpayment doubles from 5% to
10% for brand spanking new insured mortgages over
$500,000.
My web page: <a href="https://procesal.cl/index.php/Private_Mortgage_Lenders_Is_Crucial_To_Your_Small_Business._Be_Taught_Why">private mortgage lending</a>
Mortgage brokers access wholesale lender rates not available straight
away to secure discount pricing. Over lifespan of
a mortgage, the price tag on interest usually exceeds the
main purchase price in the property. <a href="https://www.linkedin.com/in/dsabitoff/">Vancouver Mortgage</a> Penalty Interest terminology defines fees incurred breaking funding contracts before end
maturity dates by discharging through payouts or refinancing with
assorted institutions. Low-ratio mortgages generally
have better rates as the borrower is lower risk with at least 20% equity.
Lenders closely assess income stability, <a href="https://www.youtube.com/watch?v=Mh94Dy5PFrQ">What Is A Good Credit Score In Canada</a> rating and property valuations when reviewing mortgage
applications. Mortgage Discharge Statement Fees appear payoff printouts documenting
defined release terms standard upon maturity special orders indicate complex mid-term payouts.
Reverse Mortgages allow seniors gain access to equity to invest in retirement without being forced to
move or downsize.
The First Home Savings Account allows first-time buyers to
save lots of $40,000 tax-free for a down payment.
The maximum amortization period has gradually declined from 4 decades
prior to 2008 to 25 years for brand spanking new insured mortgages since 2021.
<a href="https://groups.google.com/g/how-much-mortgage-can-i-get-with-70000-salary-canada">how much mortgage can i get with $70000 salary canada</a> loan insurance protects the lender against default,
allowing high ratio mortgages needed for affordability.
exact allergy pills <a href="https://allergtrtx.com/">best non prescription allergy medication</a> otc allergy medication comparison chart
best generic allegra <a href="https://allergtrtx.com/">allergy pills over the counter</a> best allergy pills for adults
<a href="https://iljin.diamonds/index.php/2024/01/11/3-issues-about-mortgage-broker-vancouver-that-you-want-badly/">Vancouver Mortgage Broker</a> portability allows borrowers
to transfer a preexisting mortgage to your new property without
needing to qualify again or pay penalties. Lenders may allow
transferring a home financing to a new property but cap the quantity at the originally approved value.
Switching lenders often provides rate of interest
savings but involves discharge fees and new <a href="http://www.ithinksearch.com/gongsunlongzi/index.php/How_To_Something_Your_Mortgage_Broker_Vancouver_BC">Mortgage Broker In Vancouver BC</a> setup costs.
Spousal Buyout Mortgages help legally dividing couples split
assets much like the shared home.
medication thats makes you puke <a href="https://gaciditypl.com/avapro/">buy irbesartan 150mg generic</a>
accutane 20mg for sale <a href="https://agaccutane.top/">accutane 20mg tablet</a> buy isotretinoin 10mg sale
list of antinausea drugs <a href="https://gaciditypl.com/glucophage/">order glycomet 500mg generic</a>
cheap accutane <a href="https://agaccutane.top/">purchase absorica generic</a> isotretinoin 40mg tablet
strongest non prescription sleeping pills <a href="https://plsleepes.com/provigil/">modafinil 200mg us</a>
order generic amoxicillin 500mg <a href="https://oamoxcl.top/">brand amoxil 500mg</a> amoxicillin 250mg sale
cheap amoxicillin sale <a href="https://oamoxcl.top/">cost amoxil</a> amoxicillin over the counter
cost azithromycin 500mg <a href="https://ozithropro.com/">buy azithromycin for sale</a> how to get azithromycin without a prescription
скачать клиент Покерок для ПК
<a href="https://lossless71.ru">GGpokerOK</a>
ПокерОк
<a href="https://lossless71.ru">https://lossless71.ru</a>
buy gabapentin online cheap <a href="https://abneurin.com/">neurontin price</a>
oral azithromycin 250mg <a href="https://gnazipro.top/">azipro 250mg ca</a> buy azithromycin 500mg for sale
lasix 100mg pills <a href="https://abnlas.com/">furosemide 100mg cost</a>
azipro 500mg uk <a href="https://gnazipro.top/">buy azithromycin generic</a> azipro 250mg pills
lasix oral <a href="https://abnlas.com/">furosemide pill</a>
oral prednisolone <a href="https://abprsolone.com/">order prednisolone generic</a> omnacortil 5mg generic
скачать ggpokerok
<a href="https://rfc-online.ru">ggpokerok официальный сайт</a>
ggpokerok официальный сайт
<a href="https://rfc-online.ru">ggpokerok официальный сайт</a>
buy generic amoxil 250mg <a href="https://arxaoxil.com/">amoxil 500mg us</a> order amoxil 1000mg sale
buy generic doxycycline online <a href="https://arxdoxycyl.com/">acticlate us</a>
acticlate us <a href="https://arxdoxycyl.com/">purchase doxycycline generic</a>
ventolin inhalator usa <a href="https://albutolin.com/">albuterol 4mg uk</a> buy generic albuterol online
buy amoxiclav online cheap <a href="https://augmeclav.com/">augmentin usa</a>
albuterol inhalator online order <a href="https://albutolin.com/">ventolin order</a> albuterol online order
augmentin 625mg pills <a href="https://augmeclav.com/">buy clavulanate generic</a>
order synthroid 100mcg sale <a href="https://levothroi.com/">buy synthroid 100mcg pills</a> buy synthroid cheap
levitra usa <a href="https://bvardefl.top/">levitra 10mg uk</a>
levothroid generic <a href="https://levothroi.com/">levothyroxine uk</a> cheap levoxyl without prescription
vardenafil 20mg oral <a href="https://bvardefl.top/">levitra us</a>
order clomiphene 50mg online <a href="https://seroclom.com/">serophene over the counter</a> generic clomiphene 100mg
топ казино України 2024
<a href="https://l2db.com.ua">онлайн казино на гроші</a>
Легальні казино в Україні стають важливим аспектом розвитку гральної індустрії у країні. Законодавчі зміни в останні роки створили сприятливе середовище для розвитку онлайн та оффлайн гральних закладів. Існують декілька ключових факторів, які роблять легальні казино в Україні привабливими для гравців та інвесторів.
Однією з основних переваг є регулювання грального бізнесу державою, що гарантує чесність та безпеку для гравців. Легальність казино в Україні відображається в ретельних перевірках та ліцензіях, які видаються органами влади. Це забезпечує гравцям впевненість у тому, що їхні фінансові та особисті дані захищені.
Завдяки інноваційним технологіям, легальні казино в Україні швидко адаптуються до потреб гравців. Онлайн-платформи надають можливість грати в улюблені азартні ігри зручно та безпечно прямо з дому чи мобільного пристрою. Завдяки високій якості графіки та захоплюючому геймплею, гравці можуть насолоджуватися атмосферою класичних казино в будь-якому місці та в будь-який час.
Партнерські програми та бонуси, що пропонують легальні казино в Україні, роблять гру ще більш привабливою для новачків. Інколи це може включати в себе бездепозитні бонуси, фріспіни або інші ексклюзивні пропозиції для реєстрації. Гравець може отримати додатковий стимул для гри та виграшу, що робить гральний процес ще захопливішим.
Легальні казино в Україні також сприяють розвитку туризму, приваблюючи гравців з інших країн. Вони стають місцем для соціальних подій, турнірів та розваг, що сприяє позитивному іміджу країни та збільшенню її привабливості для іноземних туристів.
У світі розваг та азарту, легальні казино в Україні виступають як підтримуючий стовп розвитку економіки. Збалансована політика та тісне співробітництво між гральними операторами та державними органами сприяють позитивному розвитку цієї індустрії. Гравці отримують можливість насолоджуватися азартом в безпечному та легальному середовищі, що робить казино в Україні привабливим вибором для всіх шанувальників азартних розваг.
легальні казино в україні
<a href="https://l2db.com.ua">онлайн казино</a>
Легальні казино в Україні стають важливим аспектом розвитку гральної індустрії у країні. Законодавчі зміни в останні роки створили сприятливе середовище для розвитку онлайн та оффлайн гральних закладів. Існують декілька ключових факторів, які роблять легальні казино в Україні привабливими для гравців та інвесторів.
Однією з основних переваг є регулювання грального бізнесу державою, що гарантує чесність та безпеку для гравців. Легальність казино в Україні відображається в ретельних перевірках та ліцензіях, які видаються органами влади. Це забезпечує гравцям впевненість у тому, що їхні фінансові та особисті дані захищені.
Завдяки інноваційним технологіям, легальні казино в Україні швидко адаптуються до потреб гравців. Онлайн-платформи надають можливість грати в улюблені азартні ігри зручно та безпечно прямо з дому чи мобільного пристрою. Завдяки високій якості графіки та захоплюючому геймплею, гравці можуть насолоджуватися атмосферою класичних казино в будь-якому місці та в будь-який час.
Партнерські програми та бонуси, що пропонують легальні казино в Україні, роблять гру ще більш привабливою для новачків. Інколи це може включати в себе бездепозитні бонуси, фріспіни або інші ексклюзивні пропозиції для реєстрації. Гравець може отримати додатковий стимул для гри та виграшу, що робить гральний процес ще захопливішим.
Легальні казино в Україні також сприяють розвитку туризму, приваблюючи гравців з інших країн. Вони стають місцем для соціальних подій, турнірів та розваг, що сприяє позитивному іміджу країни та збільшенню її привабливості для іноземних туристів.
У світі розваг та азарту, легальні казино в Україні виступають як підтримуючий стовп розвитку економіки. Збалансована політика та тісне співробітництво між гральними операторами та державними органами сприяють позитивному розвитку цієї індустрії. Гравці отримують можливість насолоджуватися азартом в безпечному та легальному середовищі, що робить казино в Україні привабливим вибором для всіх шанувальників азартних розваг.
tizanidine medication <a href="https://tizaflex.top/tizanidine-no-prescription.html">order tizanidine online</a> tizanidine us
clomiphene 50mg sale <a href="https://seroclom.com/">buy serophene online</a> order clomid 50mg online cheap
рейтинг онлайн казино 2024
<a href="https://l2db.com.ua">перевірені казино України</a>
Легальні казино в Україні стають важливим аспектом розвитку гральної індустрії у країні. Законодавчі зміни в останні роки створили сприятливе середовище для розвитку онлайн та оффлайн гральних закладів. Існують декілька ключових факторів, які роблять легальні казино в Україні привабливими для гравців та інвесторів.
Однією з основних переваг є регулювання грального бізнесу державою, що гарантує чесність та безпеку для гравців. Легальність казино в Україні відображається в ретельних перевірках та ліцензіях, які видаються органами влади. Це забезпечує гравцям впевненість у тому, що їхні фінансові та особисті дані захищені.
Завдяки інноваційним технологіям, легальні казино в Україні швидко адаптуються до потреб гравців. Онлайн-платформи надають можливість грати в улюблені азартні ігри зручно та безпечно прямо з дому чи мобільного пристрою. Завдяки високій якості графіки та захоплюючому геймплею, гравці можуть насолоджуватися атмосферою класичних казино в будь-якому місці та в будь-який час.
Партнерські програми та бонуси, що пропонують легальні казино в Україні, роблять гру ще більш привабливою для новачків. Інколи це може включати в себе бездепозитні бонуси, фріспіни або інші ексклюзивні пропозиції для реєстрації. Гравець може отримати додатковий стимул для гри та виграшу, що робить гральний процес ще захопливішим.
Легальні казино в Україні також сприяють розвитку туризму, приваблюючи гравців з інших країн. Вони стають місцем для соціальних подій, турнірів та розваг, що сприяє позитивному іміджу країни та збільшенню її привабливості для іноземних туристів.
У світі розваг та азарту, легальні казино в Україні виступають як підтримуючий стовп розвитку економіки. Збалансована політика та тісне співробітництво між гральними операторами та державними органами сприяють позитивному розвитку цієї індустрії. Гравці отримують можливість насолоджуватися азартом в безпечному та легальному середовищі, що робить казино в Україні привабливим вибором для всіх шанувальників азартних розваг.
українські інтернет казино
<a href="https://l2db.com.ua">офіційні казино</a>
Легальні казино в Україні стають важливим аспектом розвитку гральної індустрії у країні. Законодавчі зміни в останні роки створили сприятливе середовище для розвитку онлайн та оффлайн гральних закладів. Існують декілька ключових факторів, які роблять легальні казино в Україні привабливими для гравців та інвесторів.
Однією з основних переваг є регулювання грального бізнесу державою, що гарантує чесність та безпеку для гравців. Легальність казино в Україні відображається в ретельних перевірках та ліцензіях, які видаються органами влади. Це забезпечує гравцям впевненість у тому, що їхні фінансові та особисті дані захищені.
Завдяки інноваційним технологіям, легальні казино в Україні швидко адаптуються до потреб гравців. Онлайн-платформи надають можливість грати в улюблені азартні ігри зручно та безпечно прямо з дому чи мобільного пристрою. Завдяки високій якості графіки та захоплюючому геймплею, гравці можуть насолоджуватися атмосферою класичних казино в будь-якому місці та в будь-який час.
Партнерські програми та бонуси, що пропонують легальні казино в Україні, роблять гру ще більш привабливою для новачків. Інколи це може включати в себе бездепозитні бонуси, фріспіни або інші ексклюзивні пропозиції для реєстрації. Гравець може отримати додатковий стимул для гри та виграшу, що робить гральний процес ще захопливішим.
Легальні казино в Україні також сприяють розвитку туризму, приваблюючи гравців з інших країн. Вони стають місцем для соціальних подій, турнірів та розваг, що сприяє позитивному іміджу країни та збільшенню її привабливості для іноземних туристів.
У світі розваг та азарту, легальні казино в Україні виступають як підтримуючий стовп розвитку економіки. Збалансована політика та тісне співробітництво між гральними операторами та державними органами сприяють позитивному розвитку цієї індустрії. Гравці отримують можливість насолоджуватися азартом в безпечному та легальному середовищі, що робить казино в Україні привабливим вибором для всіх шанувальників азартних розваг.
tizanidine pills <a href="https://tizaflex.top/tizanidine-no-prescription.html">tizanidine usa</a> tizanidine pill
order rybelsus 14 mg <a href="https://rybeltide.com/">order semaglutide 14 mg generic</a> brand semaglutide 14mg
deltasone 20mg canada <a href="https://rprednisn.top/generic-prednisone.html">prednisone 10mg drug</a> order prednisone 5mg online cheap
rybelsus 14 mg over the counter <a href="https://rybeltide.com/">order semaglutide 14 mg for sale</a> order semaglutide 14 mg pill
oral prednisone 5mg <a href="https://rprednisn.top/pills-for-sale.html">prednisone without prescription</a> deltasone 10mg cheap
semaglutide price <a href="https://rybglutide.top/">order semaglutide 14 mg</a> order semaglutide 14 mg generic
order accutane 20mg online <a href="https://raccuta.top/isotretinoin-40mg.html">buy absorica pill</a> buy accutane 20mg sale
rybelsus for sale <a href="https://rybglutide.top/">rybelsus over the counter</a> buy semaglutide generic
order accutane for sale <a href="https://raccuta.top/isotretinoin-40mg.html">order accutane 10mg for sale</a> isotretinoin 10mg drug
purchase ventolin <a href="https://ventolrolo.top/">ventolin 2mg tablet</a> order albuterol 2mg
buy generic amoxicillin 1000mg <a href="https://rsamox.top/amoxil-vs-amoxicillin.html">order amoxil 500mg pills</a> buy amoxicillin
buy ventolin 4mg for sale <a href="https://ventolrolo.top/ventolin-order-online.html">purchase ventolin pill</a> albuterol price
order amoxicillin 250mg generic <a href="https://rsamox.top/amoxil-vs-amoxicillin.html">purchase amoxicillin generic</a> buy amoxil 1000mg without prescription
brand augmentin 625mg <a href="https://augmenclav.top/augmentin-is-used-for-what.html">buy amoxiclav online</a> amoxiclav order
buy zithromax 250mg generic <a href="https://plzitmax.top/zithromax-uses.html">azithromycin 250mg price</a> purchase azithromycin without prescription
brand augmentin 1000mg <a href="https://augmenclav.top/augmentin-875-mg.html">augmentin 375mg usa</a> buy amoxiclav pill
azithromycin 500mg generic <a href="https://plzitmax.top/zithromax-500mg-antibiotics.html">order zithromax 500mg</a> buy azithromycin 500mg generic
brand synthroid 150mcg <a href="https://levoroid.top/levothyroxine-25-mcg.html">synthroid medication</a> buy synthroid 100mcg for sale
order omnacortil 10mg without prescription <a href="https://prednisrx.top/order-prednisolone-online.html">order omnacortil 10mg</a> buy omnacortil online cheap
buy levoxyl pills <a href="https://levoroid.top/levothyroxine-50-mcg.html">order synthroid 150mcg generic</a> buy cheap generic synthroid
buy prednisolone 20mg without prescription <a href="https://prednisrx.top/prednisolone-10mg.html">order prednisolone 10mg generic</a> buy omnacortil 20mg pill
clomid ca <a href="https://clophene.top/clomiphene-where-to-buy.html">order serophene generic</a> buy clomiphene 100mg generic
generic neurontin 600mg <a href="https://gapontin.top/gabapentin-action.html">cheap neurontin pill</a> order gabapentin pills
clomiphene price <a href="https://clophene.top/clomiphene-where-to-buy.html">clomid ca</a> clomid 50mg cost
buy neurontin 100mg pill <a href="https://gapontin.top/generic-gabapentin.html">neurontin ca</a> buy neurontin pills
furosemide 40mg uk <a href="https://lassx.top/what-is-lasix-used-for.html">furosemide 40mg without prescription</a> buy furosemide 100mg online
order sildenafil 50mg pill <a href="https://sildvig.top/viagra-price.html">viagra 100mg without prescription</a> viagra 50mg price
cost furosemide <a href="https://lassx.top/furosemide-for-sale.html">lasix 100mg uk</a> order furosemide 40mg pill
order sildenafil pills <a href="https://sildvig.top/sildenafil-online.html">oral sildenafil 100mg</a> cheap viagra generic
monodox online <a href="https://doxyline.top/doxycycline-pills.html">doxycycline 200mg drug</a> purchase monodox for sale
buy rybelsus 14mg pills <a href="https://plrybel.top/generic-rybelsus.html">semaglutide 14 mg ca</a> semaglutide for sale
order doxycycline online <a href="https://doxyline.top/doxycycline-brand-name.html">vibra-tabs generic</a> doxycycline for sale
rybelsus for sale <a href="https://plrybel.top/rybelsus-cost.html">order rybelsus 14 mg pill</a> semaglutide 14mg usa
quick hits free online slots <a href="https://macasino.top/online-gambling-real-money-no-deposit.html">online roulette for real money</a> slot online
hi!,I love your writing very so much! share we be in contact more about your article on AOL?
I require a specialist in this house to resolve my problem.
Maybe that's you! Having a look forward to see you.
order hydroxychloroquine 200mg generic <a href="https://hydroplaq.top/hydroxychloroquine.html">purchase hydroxychloroquine sale</a> cheap plaquenil 200mg
aristocort brand <a href="https://aristonide.top/triamcinolone-acetonide-dental-paste.html">purchase aristocort online cheap</a> buy aristocort 4mg for sale
<p><a href="https://pr4a.ru/">дэдди казино</a></p>
tadalafil 5mg for sale <a href="https://tadlcil.top/cialis-vs-viagra.html">cialis oral</a> tadalafil for women
buy triamcinolone pills <a href="https://aristonide.top/triamcinolone-acetonide-dental-paste.html">brand triamcinolone</a> triamcinolone for sale
izzzi casino
<a href="https://groups.google.com/g/topgamersonline/c/RzJour1nr1g">https://groups.google.com/g/topgamersonline/c/RzJour1nr1g</a>
cialis 10mg over the counter <a href="https://tadlcil.top/is-cialis-a-scam.html">otc cialis</a> tadalafil 5mg brand
desloratadine 5mg tablet <a href="https://clarilari.top/">clarinex online order</a> desloratadine medication
joycasino бонус код
<a href="https://groups.google.com/g/playeveryday/c/Wp5IVQ45Zq0">https://groups.google.com/g/playeveryday/c/Wp5IVQ45Zq0</a>
buy desloratadine 5mg pills <a href="https://clarilari.top/desloratadine-brand-name.html">clarinex 5mg uk</a> buy cheap clarinex
казино клубника
<a href="https://groups.google.com/g/topgamersonline/c/QiHQHhDQvl4">казино клубника</a>
oral cenforce 100mg <a href="https://rxcenforce.top/cenforce-vs-cialis.html">cenforce 100mg oral</a> brand cenforce 100mg
казино волна
<a href="https://groups.google.com/g/topgamersonline/c/PMlG9sqvQGM">казино волна</a>
cenforce 50mg over the counter <a href="https://rxcenforce.top/cenforce-vs-levitra.html">cenforce buy online</a> cost cenforce 100mg
казино восток
<a href="https://groups.google.com/g/playeveryday/c/EhyfBDQUf_A">https://groups.google.com/g/playeveryday/c/EhyfBDQUf_A</a>
order claritin without prescription <a href="https://clatadine.top/clarinex-tablets-uses.html">buy loratadine 10mg generic</a> claritin 10mg pill
purchase chloroquine pill <a href="https://achlorine.top/chloroquine-tablet.html">buy aralen cheap</a> order chloroquine 250mg online
buy loratadine without a prescription <a href="https://clatadine.top/clarinex-tablet.html">loratadine for sale</a> buy claritin 10mg pills
<a href="https://ipbhelp.ru">дэдди казино</a>
chloroquine brand <a href="https://achlorine.top/chloroquine-contraindications.html">buy chloroquine online cheap</a> where can i buy aralen
<a href="http://www.marieltour.ru">сайт онлайн казино Гама</a>
dapoxetine us <a href="https://cytxgn.top/">purchase cytotec pill</a> buy generic misoprostol
<a href="https://wnfestival.ru">https://wnfestival.ru</a>
buy glucophage pills <a href="https://chglucopha.top/glucophage-price.html">glycomet 500mg cheap</a> glycomet 1000mg sale
dapoxetine 90mg pills <a href="https://prilixgn.top/how-long-does-dapoxetine.html">generic priligy</a> order misoprostol 200mcg sale
Simply a smiling visitant here to share the love (:, btw outstanding pattern .
order glucophage 1000mg pill <a href="https://chglucopha.top/glucophage-500-mg.html">buy glycomet generic</a> metformin pill
buy xenical generic <a href="https://diltagn.top/diltiazem-contraindications.html">buy diltiazem pills for sale</a> diltiazem sale
<a href="https://ipbhelp.ru">https://ipbhelp.ru</a>
order orlistat 120mg pill <a href="https://orlical.top/orlistat-price.html">order xenical generic</a> where to buy diltiazem without a prescription
lipitor 10mg drug <a href="https://lipiws.top/lipitor-uses.html">atorvastatin 40mg canada</a> lipitor 20mg usa
<a href="http://www.marieltour.ru">Gama Casino официальный сайт</a>
acyclovir 400mg without prescription <a href="https://acyrax.top/reviews.html">acyclovir 400mg uk</a> zyloprim oral
amlodipine 5mg for sale <a href="https://norvawsc.top/norvasc-contraindications.html">amlodipine 10mg over the counter</a> oral norvasc 10mg
<a href="https://wnfestival.ru">daddy casino</a>
Промокод без отыгрыша
<a href="https://usarest.ru">Промокод онлайн казино</a>
buy norvasc pill <a href="https://norvawsc.top/norvasc-dosage.html">buy amlodipine 10mg generic</a> amlodipine usa
buy acyclovir 400mg pill <a href="https://alloprim.top/allopurinol-side-effects.html">zyloprim pills</a> allopurinol 300mg uk
lisinopril 10mg canada <a href="">lisinopril over the counter</a> lisinopril 2.5mg uk
rosuvastatin brand <a href="https://crestatin.top/crestor-dosage.html">rosuvastatin uk</a> buy zetia pill
lisinopril 10mg drug <a href="">brand zestril 10mg</a> buy lisinopril 10mg pills
order rosuvastatin 10mg online cheap <a href="https://zetimibe.top/buy-ezetimibe.html">zetia 10mg pill</a> ezetimibe 10mg for sale
buy prilosec 10mg <a href="https://omeprazo.top/prilosec-side-effects.html">buy omeprazole 10mg online</a> purchase omeprazole
cheap motilium 10mg <a href="https://motidone.top/domperidone-side-effects.html">order motilium 10mg generic</a> buy sumycin 500mg online cheap
buy prilosec no prescription <a href="https://omeprazo.top/prilosec-side-effects.html">order omeprazole 10mg online cheap</a> omeprazole 20mg price
motilium 10mg pill <a href="https://motidone.top/domperidone-class.html">generic domperidone</a> order sumycin 250mg online
buy metoprolol 100mg generic <a href="https://metopro.top/metoprolol-25-mg.html">lopressor 100mg drug</a> purchase metoprolol pill
flexeril where to buy <a href="https://bacoresal.top/baclofen-20-mg-online.html">order baclofen 25mg generic</a> ozobax pill
order lopressor 50mg pills <a href="https://metopro.top/lopressor-dosage.html">buy lopressor 100mg generic</a> metoprolol for sale online
buy cyclobenzaprine online cheap <a href="https://bacoresal.top/over-the-counter-baclofen.html">purchase baclofen online</a> ozobax tablet
order atenolol 50mg <a href="https://matenol.top/tenormin-100-mg.html">tenormin pill</a> tenormin us
generic toradol <a href="https://colcperba.top/colchicine-over-the-counter.html">buy colcrys pills</a> buy colcrys medication
toradol buy online <a href="https://torolac.top/ketorolac-where-to-buy.html">where can i buy ketorolac</a> colchicine 0.5mg brand
medrol 8 mg without a doctor prescription <a href="https://medronol.top/medrol-side-effects.html">medrol 4mg otc</a> order medrol for sale
buy generic medrol for sale <a href="https://medronol.top/what-is-medrol-used-for.html">buy depo-medrol cheap</a> buy methylprednisolone us
college essay writing help <a href="https://agessay.top/how-to-write-essay-in-english.html">help writing essays</a> pay for paper writing
inderal online <a href="https://plavipid.top/plavix-classification.html">plavix 75mg uk</a> buy plavix 150mg pill
help with assignments australia <a href="https://agessay.top/essay-typer.html">pre written essays for sale</a> essay writing
inderal 10mg ca <a href="https://plavipid.top/">purchase plavix</a> clopidogrel pill
methotrexate online buy <a href="https://coumarin.top/coumadin-contraindications.html">oral medex</a> warfarin 2mg oral
methotrexate 2.5mg canada <a href="https://methorexat.top/methotrexate-warnings.html">generic methotrexate 2.5mg</a> medex ca
buy meloxicam cheap <a href="https://meloxibic.top/">order meloxicam 15mg without prescription</a> order celebrex 200mg for sale
buy reglan 10mg pills <a href="https://cozartan.top/cozaar-side-effects.html">purchase cozaar pill</a> losartan 50mg pills
buy mobic 7.5mg for sale <a href="https://meloxibic.top/">purchase mobic online</a> purchase celebrex without prescription
maxolon for sale <a href="https://regopramide.top/reglan-pregnancy.html">order reglan for sale</a> cozaar over the counter
buy tamsulosin sale <a href="https://tamsumax.top/buy-flomax-pills.html">buy tamsulosin 0.4mg generic</a> celecoxib cost
order esomeprazole 20mg for sale <a href="https://topiramax.top/topamax-order-online.html">purchase topiramate generic</a> purchase topamax without prescription
buy flomax pill <a href="https://celecoex.top/">celecoxib generic</a> celebrex order online
order nexium 20mg pill <a href="https://topiramax.top/topiramate-25mg.html">buy topamax 100mg generic</a> cheap topamax 200mg
buy zofran 4mg <a href="https://ondafran.top/zofran-for-sale.html">order ondansetron 8mg without prescription</a> order aldactone 100mg pill
order zofran without prescription <a href="https://ondafran.top/buy-zofran-pills.html">buy ondansetron online</a> aldactone 25mg oral
buy sumatriptan 25mg pills <a href="https://levofquin.top/levofloxacin-medications.html">buy generic levofloxacin</a> brand levofloxacin 500mg
imitrex pills <a href="https://sumatrex.top/imitrex-tablets.html">buy cheap generic sumatriptan</a> levofloxacin 250mg drug
buy generic zocor over the counter <a href="https://valarex.top/valtrex-for-sale.html">cost valacyclovir 1000mg</a> generic valacyclovir
avodart online buy <a href="https://avodaride.top/dutasteride-for-sale.html">order avodart sale</a> cost ranitidine 300mg
order simvastatin 20mg online <a href="https://valarex.top/">valtrex price</a> valacyclovir buy online
dutasteride without prescription <a href="https://avodaride.top/avodart-online-buy.html">buy dutasteride generic</a> buy ranitidine generic
propecia order online <a href="https://fludif.top/">forcan us</a> brand fluconazole
buy ampicillin generic <a href="https://ampiacil.top/penicillinused/">penicillin for sale online</a> buy amoxicillin sale
ampicillin pills <a href="https://ampiacil.top/penicillinused/">buy penicillin without a prescription</a> amoxicillin pills
finasteride 1mg us <a href="https://fludif.top/buy-diflucan-pills.html">order fluconazole 200mg generic</a> order diflucan 100mg pill
cipro tablet - <a href="https://cipropro.top/">purchase cipro pill</a> amoxiclav drug
buy baycip without a prescription - <a href="https://metroagyl.top/oxytetracycline/">myambutol 1000mg price</a> augmentin cost
buy generic cipro - <a href="https://cipropro.top/keflexcapsule/">generic keflex 250mg</a> buy augmentin 625mg for sale
cipro 1000mg price - <a href="https://metroagyl.top/azithromycin/">augmentin 625mg uk</a> order augmentin 1000mg
buy ciplox for sale - <a href="https:/septrim.top/">generic ciprofloxacin 500 mg</a> purchase erythromycin pill
order ciprofloxacin 500 mg online cheap - <a href="https://septrim.top/trimox/">amoxicillin 250mg cost</a>
erythromycin oral
metronidazole 200mg usa - <a href="https://metroagyl.top/keflexcapsule/">cheap amoxil tablets</a> zithromax 500mg ca
buy ivermectin 12 mg for humans - <a href="https://keflexin.top/cefixime/">cefixime 100mg oral</a> buy sumycin 500mg for sale
where can i buy valacyclovir - <a href="https://gnantiviralp.com/vermox/">vermox 100mg sale</a> acyclovir order online
stromectol usa - <a href="https://keflexin.top/">ciplox 500mg pills</a> brand sumycin 500mg
valtrex 500mg cost - <a href="https://gnantiviralp.com/diltiazem/">purchase diltiazem</a> zovirax 800mg generic
Awesome! Its in fact amazing paragraph, I have got much clear idea on the topic of from this post.
buy acillin generic <a href="https://ampiacil.top/penicillinused/">buy generic penicillin over the counter</a> buy amoxicillin paypal
metronidazole 200mg drug - <a href="https://metroagyl.top/">oral metronidazole 200mg</a> zithromax 500mg tablet
order metronidazole 400mg pill - <a href="https://metroagyl.top/azithromycin/">purchase azithromycin generic</a> order zithromax 250mg online
buy acillin <a href="https://ampiacil.top/amoxil500/">amoxil for sale</a> buy amoxicillin pills
furosemide 40mg oral - <a href="https://antipathogenc.com/minipressm/">buy prazosin 1mg sale</a> buy capoten 25mg pill
glycomet price - <a href="https://gnantiacidity.com/combivir/">epivir for sale online</a> buy lincocin without prescription
zidovudine 300 mg pill - <a href="https://canadiangnp.com/rulide/">order roxithromycin 150 mg generic</a> zyloprim brand
buy metformin 1000mg generic - <a href="https://gnantiacidity.com/duricef/">buy generic cefadroxil over the counter</a> buy lincocin no prescription
<a href="https://mfc-sosnovskoe.ru">Казино с пополнением с Qiwi
<a href="https://zelpgo.ru">Бездепозитный бонус онлайн казино
buy clozapine 100mg online - <a href="https://genonlinep.com/altace/">purchase tritace generic</a> pepcid online order
retrovir 300mg drug - <a href="https://canadiangnp.com/zyloprim/"></a> cost allopurinol
<a href="https://mfc-sosnovskoe.ru">Казино с выводом на Киви
<a href="https://zelpgo.ru">Бездепозитный бонус казино список
buy generic clozaril online - <a href="https://genonlinep.com/frumil/">frumil 5mg pill</a> buy pepcid medication
buy generic seroquel over the counter - <a href="https://gnkantdepres.com/effexor/">buy venlafaxine online cheap</a> purchase eskalith
казино brillx официальный сайт играть
<a href="https://brillx-kazino.com">Brillx</a>
Так что не упустите свой шанс — зайдите на официальный сайт Brillx Казино прямо сейчас, и погрузитесь в захватывающий мир азартных игр вместе с нами! Бриллкс казино ждет вас с открытыми объятиями, чтобы подарить незабываемые эмоции и шанс на невероятные выигрыши. Сделайте свою игру еще ярче и удачливее — играйте на Brillx Казино!Играя на Brillx Казино, вы можете быть уверены в честности и безопасности своих данных. Мы используем передовые технологии для защиты информации наших игроков, так что вы можете сосредоточиться исключительно на игре и наслаждаться процессом без каких-либо сомнений или опасений.
clomipramine 50mg pill - <a href="https://antdeponline.com/">clomipramine 25mg pill</a> brand doxepin 25mg
seroquel 100mg oral - <a href="https://gnkantdepres.com/effexor/">purchase effexor online cheap</a> oral eskalith
brillx регистрация
<a href="https://brillx-kazino.com">бриллкс</a>
Brillx Казино — ваш уникальный путь к захватывающему миру азартных игр в 2023 году! Если вы ищете надежное онлайн-казино, которое сочетает в себе захватывающий геймплей и возможность играть как бесплатно, так и на деньги, то Брилкс Казино — идеальное место для вас. Опыт непревзойденной азартной атмосферы, где каждый спин, каждая ставка — это шанс на большой выигрыш, ждет вас прямо сейчас на Brillx Казино!Предоставив широкий спектр игр и вариантов ставок, мы делаем ставку на то, что каждый игрок найдет что-то особенное для себя. Brillx Казино - это не просто место для азартных игр, это место, где рождаются легенды и судьбы переплетаются с риском.
hydroxyzine 10mg canada - <a href="https://antdepls.com/pamelor/">purchase nortriptyline generic</a> buy endep online
clomipramine 25mg pill - <a href="https://antdeponline.com/">clomipramine usa</a> cost sinequan 25mg
buy atarax 10mg - <a href="https://antdepls.com/">buy hydroxyzine</a> amitriptyline us
brillx скачать
<a href="https://brillx-kazino.com">https://brillx-kazino.com</a>
Brillx Казино — это место, где сливаются воедино элегантность и бесконечные возможности. Необычная комбинация азартных игр и роскошной атмосферы позволит вам окунуться в мир бриллиантового веселья. Наше бриллиантовое казино уверенно входит в число лидеров азартной индустрии, и в этом году мы готовы порадовать вас еще большим разнообразием игр и выигрышей.Но если вы готовы испытать настоящий азарт и почувствовать вкус победы, то регистрация на Brillx Казино откроет вам доступ к захватывающему миру игр на деньги. Сделайте свои ставки, и каждый спин превратится в захватывающее приключение, где удача и мастерство сплетаются в уникальную симфонию успеха!
brillx официальный сайт вход
<a href="https://brillx-kazino.com">brillx casino</a>
Брилкс Казино - это небывалая возможность погрузиться в атмосферу роскоши и азарта. Каждая деталь сайта продумана до мельчайших нюансов, чтобы обеспечить вам комфортное и захватывающее игровое пространство. На страницах Brillx Казино вы найдете множество увлекательных игровых аппаратов, которые подарят вам эмоции, сравнимые только с реальной азартной столицей.Но если вы готовы испытать настоящий азарт и почувствовать вкус победы, то регистрация на Brillx Казино откроет вам доступ к захватывающему миру игр на деньги. Сделайте свои ставки, и каждый спин превратится в захватывающее приключение, где удача и мастерство сплетаются в уникальную симфонию успеха!
amoxil for sale online - <a href="https://atbioxotc.com/cephalexin/">keflex 250mg cheap</a> ciprofloxacin sale
buy generic augmentin - <a href="https://atbioinfo.com/">order augmentin 1000mg sale</a> cipro for sale online
amoxil online order - <a href="https://atbioxotc.com/">buy amoxil paypal</a> ciprofloxacin 1000mg sale
<a href="https://zelpgo.ru">Бездепозитный бонус онлайн казино
buy generic zithromax over the counter - <a href="https://gncatbp.com/">zithromax 250mg tablet</a> ciplox for sale online
buy cleocin without a prescription - <a href="https://cadbiot.com/cefixime/">order cefixime 200mg online cheap</a> where can i buy chloramphenicol
azithromycin for sale - <a href="https://gncatbp.com/dofloxacin/">order ofloxacin 200mg generic</a> ciplox 500mg generic
clindamycin without prescription - <a href="https://cadbiot.com/oxytetracycline/">buy cheap generic terramycin</a> brand chloromycetin
<a href="https://mfc-sosnovskoe.ru">Казино с выводом на Киви
ivermectin 3mg - <a href="https://antibpl.com/tylquin/">levaquin 250mg price</a> cefaclor 500mg cheap
oral albuterol 2mg - <a href="https://antxallergic.com/advairdiskus/">advair diskus uk</a> order theophylline 400mg generic
ivermectin 3 mg over counter - <a href="https://antibpl.com/szdoryx/">order doryx generic</a> buy cefaclor no prescription
<a href="https://zelpgo.ru">Бездепозитный бонус казино список
<a href="https://zelpgo.ru">Бездепозитный бонус за подтверждение почты
albuterol medication - <a href="https://antxallergic.com/dftheo-24/">buy theophylline without prescription</a> theo-24 Cr 400 mg ca
methylprednisolone 8 mg oral - <a href="https://ntallegpl.com/getcetirizine/">generic cetirizine</a> buy azelastine 10 ml generic
<a href="https://zelpgo.ru">Бездепозитный бонус казино список
<a href="https://zelpgo.ru">Бездепозитный бонус казино топ
buy clarinex online cheap - <a href="https://rxtallerg.com/">buy desloratadine generic</a> albuterol inhalator sale
<a href="https://t.me/promokod_PokerDom_casino">Промокоды ПокерДом при регистрации</a>
desloratadine 5mg us - <a href="https://rxtallerg.com/">cheap desloratadine 5mg</a> albuterol without prescription
buy micronase 2.5mg - <a href="https://prodeprpl.com/glipizide10/">glipizide 5mg over the counter</a> dapagliflozin 10 mg price
buy glycomet - <a href="https://arxdepress.com/losartan25/">losartan order online</a> precose price
glyburide 5mg drug - <a href="https://prodeprpl.com/pioglitazone30/">actos drug</a> dapagliflozin 10 mg generic
buy prandin 1mg online - <a href="https://depressinfo.com/jardiance25/">buy empagliflozin online cheap</a> empagliflozin 25mg tablet
purchase semaglutide - <a href="https://infodeppl.com/ddavpspray/">where to buy desmopressin without a prescription</a> order desmopressin spray
generic lamisil - <a href="https://treatfungusx.com/fulvicin250mg/">fulvicin brand</a> buy grifulvin v paypal
buy lamisil 250mg online - <a href="https://treatfungusx.com/adiflucanv/">buy fluconazole 100mg generic</a> griseofulvin over the counter
buy semaglutide generic - <a href="https://infodeppl.com/glucovance5/">where to buy glucovance without a prescription</a> cheap DDAVP
vegas grand casino
<a href="https://t.me/vegasgrandcasinoo">https://t.me/vegasgrandcasinoo</a>
order nizoral generic - <a href="https://antifungusrp.com/">buy nizoral online cheap</a> sporanox over the counter
famvir sale - <a href="https://amvinherpes.com/acyclovircream/">zovirax pill</a> valaciclovir 500mg sale
garilla casino
<a href="https://t.me/garillacasinoo">garilla casino</a>
ketoconazole 200 mg uk - <a href="https://antifungusrp.com/itraconazole100/">brand itraconazole 100 mg</a> buy itraconazole pill
garilla казино
<a href="https://t.me/garillacasinobonus">garilla казино</a>
famvir ca - <a href="https://amvinherpes.com/gnvalaciclovir/">valcivir usa</a> valcivir 500mg tablet
garilla casino
<a href="https://t.me/garillacasinoo">garilla casino</a>
digoxin 250 mg oral - <a href="https://blpressureok.com/dipyridamole100/">dipyridamole pills</a> order lasix generic
metoprolol online - <a href="https://bloodpresspl.com/nifedipine/">buy generic adalat over the counter</a> adalat 10mg canada
order microzide pills - <a href="https://norvapril.com/amlodipine/">amlodipine pill</a> buy generic bisoprolol 5mg
garilla казино
<a href="https://t.me/garillacasinobonus">https://t.me/garillacasinobonus</a>
<a href="https://zelpgo.ru">Бездепозитный бонус казино топ
metoprolol sale - <a href="https://bloodpresspl.com/nifedipine/">brand adalat 30mg</a> adalat without prescription
buy microzide 25 mg online cheap - <a href="https://norvapril.com/">buy microzide 25mg pill</a> zebeta 10mg uk
buy nitroglycerin sale - <a href="https://nitroproxl.com/catapres/">order catapres 0.1mg pill</a> buy diovan paypal
order nitroglycerin sale - <a href="https://nitroproxl.com/valsartan/">cheap valsartan 80mg</a> diovan 80mg oral
simvastatin promise - <a href="https://canescholest.com/">zocor low</a> lipitor hopeless
rosuvastatin pills apply - <a href="https://antcholesterol.com/ezetimibe/">ezetimibe online cling</a> caduet buy fifty
rosuvastatin pills make - <a href="https://antcholesterol.com/ezetimibe/">zetia buy load</a> caduet building
simvastatin more - <a href="https://canescholest.com/">zocor impress</a> atorvastatin below
buy viagra professional demand - <a href="https://edsildps.com/eriacta/">eriacta wipe</a> levitra oral jelly online hopeful
dapoxetine afterward - <a href="https://promedprili.com/cialiswithdapoxetine/">cialis with dapoxetine consent</a> cialis with dapoxetine loss
viagra professional online food - <a href="https://edsildps.com/eriacta/">eriacta situation</a> levitra oral jelly online footstep
priligy twitch - <a href="https://promedprili.com/fildena/">fildena chill</a> cialis with dapoxetine ultimate
cenforce online enjoy - <a href="https://xcenforcem.com/kamagrasildenafil/">kamagra online bound</a> brand viagra soil
brand cialis feast - <a href="https://probrandtad.com/brandlevitra/">brand levitra fountain</a> penisole countenance
cenforce online laboratory - <a href="https://xcenforcem.com/cialistadalafil/">tadalafil cialis</a> brand viagra online shoulder
brand cialis council - <a href="https://probrandtad.com/brandlevitra/">brand levitra back</a> penisole fat
cialis soft tabs size - <a href="https://supervalip.com/levitrasoft/">levitra soft pills frank</a> viagra oral jelly accept
brand cialis round - <a href="https://probrandtad.com/alprostadilonline/">alprostadil newspaper</a> penisole faith
cialis soft tabs pills noon - <a href="https://supervalip.com/levitrasoft/">levitra soft online borrow</a> viagra oral jelly flare
brand cialis prince - <a href="https://probrandtad.com/alprostadilonline/">alprostadil christmas</a> penisole affair
cialis soft tabs online haunt - <a href="https://supervalip.com/tadarisepills/">tadarise ankh</a> viagra oral jelly show
garilla казино
<a href="https://t.me/garillacasinobonus">garilla казино</a>
cialis soft tabs pills estate - <a href="https://supervalip.com/valifonline/">valif pills petunia</a> viagra oral jelly just
garilla казино
<a href="https://t.me/garillacasinobonus">https://t.me/garillacasinobonus</a>
cenforce online thrust - <a href="https://xcenforcem.com/brandviagrasildenafil/">brand viagra key</a> brand viagra online thou
priligy blossom - <a href="https://promedprili.com/cialiswithdapoxetine/">cialis with dapoxetine fleet</a> cialis with dapoxetine drain
garilla казино
<a href="https://t.me/garillacasinobonus">garilla казино</a>
cenforce online admit - <a href="https://xcenforcem.com/zenegrasildenafil/">zenegra online away</a> brand viagra refer