标签: motordriver

按位向右旋转4位值

我正在尝试使用简单的完整步骤来控制步进电机.这意味着我正在输出一系列值,如下所示:

1000
0100
0010
0001
Run Code Online (Sandbox Code Playgroud)

我认为一个简单的方法是只取我的4位值,然后在每一步之后执行右旋操作."代码"显然不遵循任何语法,它只是用来说明我的想法:

step = 1000;
//Looping
Motor_Out(step)
//Rotate my step variable right by 1 bit
Rotate_Right(step, 1)
Run Code Online (Sandbox Code Playgroud)

我的问题是,显然我没有任何4位简单数据类型可以用于此,如果我使用8位无符号整数,我最终将1关闭到MSB,这意味着4位我真正感兴趣的价值,将转为0000几步.

我已经读过你可以使用结构和位字来解决这个问题,但我从中读到的大部分内容都告诉我这是一个非常糟糕的主意.

c bit-manipulation motordriver

23
推荐指数
6
解决办法
2765
查看次数

如何隐藏聚合中的_id?

我有这个问题:

produits = yield motor.Op(db.users.aggregate, [{"$unwind":"$pup"},{"$match":{"pup.spec.np":nomp}}, {"$group":{"_id":"$pup.spec.id","pup":{"$push":"$pup"}}}])
Run Code Online (Sandbox Code Playgroud)

结果给了我这个:

print produits

{u'ok': 1.0, u'result': [{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]}
Run Code Online (Sandbox Code Playgroud)

所以我能做到:

prod = produits["result"]

[{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]
Run Code Online (Sandbox Code Playgroud)

但我怎么隐藏"_id"所以我只能得到

[{u'pup': [{u'avt': {u'fto': ..all the results}}]}]
Run Code Online (Sandbox Code Playgroud)

在正常的查询中,我只是添加类似{"_id":0}这里的东西它不起作用.

mongodb motordriver pymongo tornado-motor

22
推荐指数
2
解决办法
2万
查看次数

附加到不同循环的未来任务

我正在尝试在 FastAPI 中连接到 mongodb。我反复收到此异常。

文件 - main.py

app = FastAPI(
    title=config.PROJECT_NAME, docs_url="/api/docs", openapi_url="/api"
)

@app.get("/api/testing")
async def testit():
    user_collection = readernetwork_db.get_collection("user_collection")
    all_users = await user_collection.find_one({"email": "sample_email"})
    print("all users --- ", all_users)
    return all_users

if __name__ == "__main__":
    uvicorn.run("main:app", host="0.0.0.0", reload=True, port=8888)
Run Code Online (Sandbox Code Playgroud)

文件 - session.py

import motor.motor_asyncio
from app.core import config


print("here we go again....")
client = motor.motor_asyncio.AsyncIOMotorClient(
    config.MONGOATLAS_DATABASE_URI)
readernetwork_db = client.get_database("readernetwork")
Run Code Online (Sandbox Code Playgroud)

例外 -:

all_users = await user_collection.find_one({"email": "sample_email"})

RuntimeError: Task <Task pending name='Task-4' coro=<RequestResponseCycle.run_asgi() running at /usr/local/lib/python3.8/site-packages/uvicorn/protocols/http/h11_impl.py:389> cb=[set.discard()]> got Future …
Run Code Online (Sandbox Code Playgroud)

python motordriver python-asyncio motorengine fastapi

8
推荐指数
1
解决办法
1208
查看次数

Sanic和Motor使用不同的事件循环

我是Sanic的新手,我正试图让它与Motor合作.我确实设法让所有东西都在一个文件中工作,但是,当我在我的项目结构中尝试时,我遇到了以下问题.

[2018-02-28 17:26:58 +0530] [3720] [ERROR] Traceback (most recent call 
last):
File "/usr/local/lib/python3.6/site-packages/sanic/app.py", line 556, in 
handle_request
response = await response
File "/usr/src/Python-3.6.4/Lib/asyncio/coroutines.py", line 129, in throw
return self.gen.throw(type, value, traceback)
File "/home/msambare/Documents/Projects/Snippets/Sanic-Motor-
Issue/IAC/src/MyPackgae/REST/user_REST.py", line 42, in post
request.json['last']
File "/usr/src/Python-3.6.4/Lib/asyncio/coroutines.py", line 129, in throw
return self.gen.throw(type, value, traceback)
File "/home/msambare/Documents/Projects/Snippets/Sanic-Motor-
Issue/IAC/src/MyPackgae/DAO/user_DAO.py", line 40, in register_user
result = await db.users.insert_one(serialized_user)
RuntimeError: Task <Task pending coro=<Sanic.handle_request() running at 
/usr/local/lib/python3.6/site-packages/sanic/app.py:556> created at 
/usr/local/lib/python3.6/site-packages/sanic/server.py:299> got Future 
<Future pending cb=[run_on_executor.<locals>._call_check_cancel() at 
/usr/local/lib/python3.6/site-
packages/motor/frameworks/asyncio/__init__.py:85]> attached …
Run Code Online (Sandbox Code Playgroud)

python motordriver sanic

3
推荐指数
1
解决办法
1239
查看次数

PID反馈和位置控制器,带直流电机/编码器

我很难让PID反馈和定位同时运行.

我计算RPM的想法是:

  1. 启动定时器并使用中断计数编码器脉冲.
  2. 使用一些简单的数学转换为RPM.
  3. 重置变量使用并重新开始.

我可以计算RPM但是我只能在计算之后调用我的PID控制器(不管我想等多久才能获得良好的分辨率.)这会导致代码非常混乱.是否有更简单的方法或我缺少的东西?

关于我的应用的信息: 我正在使用直流电机/双磁编码器编程到Atmel ATmega328P,每转约600个脉冲(齿轮箱后).我想调用GoToTarget(#)并让电机在更新PID参数时转到该位置.此外,它必须双向进行.

c embedded avr avr-gcc motordriver

2
推荐指数
1
解决办法
1987
查看次数

如何使用atmega 32 pwm控制电机

我已经有一段时间了解如何使用我的atmega32以快速pwm模式控制电机(控制其速度).我需要使用8位Timer0,因为我对其他计数器有其他用途.我想我知道如何为此任务初始化计时器:

void initial_io (void){
    DDRC = 0xFF;
    DDRB = 0xFF;
    PORTA = (1<<PA4)|(1<<PA5);
    TCCR0 = (1<<WGM01)|(1<<WGM00); // PWM mode : Fast PWM.
    TCCR0 = (1<<CS02)|(1<<CS00); // PWM clock = CPU_Clock/1024
}
Run Code Online (Sandbox Code Playgroud)

但问题就来了.我根本不知道接下来该做什么,在我的主要做什么.

我的确切项目是用加速驾驶遥控车.因此,当我从汽车要求前进时,它必须从固定加速度的停止加速到最大速度.我不知道任何大会,所以如果你能帮助我,请在C中做.任何帮助将不胜感激.

c atmega atmel motordriver pwm

2
推荐指数
1
解决办法
8564
查看次数

如何将 MotorLatentCommandCursor 转换为列表

我在我的 Django 项目中使用了 mongoDB 的 Motor 驱动程序,但在将我的数据(作为游标来自数据库的数据)转换为列表时遇到问题,这是我的代码:

documents = db.factor.aggregate([{"$limit": 3},
     {"$lookup": {"from": "subfactor", "localField": "_id", "foreignField": "factor_id", "as": "subfactor"}}])

for d in await list(documents):
    print(d)
Run Code Online (Sandbox Code Playgroud)

和错误:

File "/usr/lib/python3.8/asyncio/runners.py", line 43, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 595, in run_until_complete
self.run_forever()
File "/usr/lib/python3.8/asyncio/base_events.py", line 563, in run_forever
self._run_once()
File "/usr/lib/python3.8/asyncio/base_events.py", line 1808, in _run_once
event_list = self._selector.select(timeout)
File "/usr/lib/python3.8/selectors.py", line 468, in select
fd_event_list = self._selector.poll(timeout, max_ev)
Run Code Online (Sandbox Code Playgroud)

python django mongodb motordriver python-3.x

2
推荐指数
1
解决办法
249
查看次数