![]() |
Re: Battery powered raspberry pi
Quote:
Have there been situations where you can't move parts on the robot without power? |
Re: Battery powered raspberry pi
With regard to moving the robot with power down this happens all the time. But even if it happens only once in a while, do you want to be the team that has its auton mode freak because a field reset requires you to turn your robot off and on.
The problem with using a "know position" at the start is that this is a pretty squishy position in a number of cases. Not accurate enough to reliably shoot frisbees last year (at least for the one robot that I worked with, 3958) The idea of writing to flash periodically, this solves many problems (especially just a quick power cycle without moving the robot). But it doesn't really solve the move while the robot is off problem. I THINK that folks are saying this is legal. Is it wise? not sure. Time will tell. Joe J. |
Re: Battery powered raspberry pi
Quote:
It's not going to create a safety situation because the cRIO must be in control of the motors on the robot so having a laptop like that on the robot is not going to move anything with the cRIO powered down (otherwise it will not pass inspection). |
Re: Battery powered raspberry pi
Quote:
What's the real reason for avoiding potentiometers? There are also magnetic angle sensors that serve the same purpose but lack the mechanical/electrical wear issue, and some of them don't need a physical connection to the rotating shaft. Of course, one of the easiest solutions to the problem is to use an actuator that doesn't require feedback for it to go to a known position. Plenty of teams use pneumatic cylinders with very good results. You do need a problem that lends itself to that solution, however. |
Re: Battery powered raspberry pi
Quote:
As to why? encoders on the motors are so much nicer from a controls point of view. With no backlash to worry about, you can have a nice tight loop controlling motor velocity, then have a slower loop controlling position. At least that is the theory. Once you have encoders on the motors, it seems like a waste to have to put pots on the joint as well. But, it is also a waste to have to put a PC on the robot just to keep your sensors alive so... ...it is a trade off either way. It is an interesting idea (says the ME who doesn't have to implement the software or the electronics to make it happen!) Joe J. |
Re: Battery powered raspberry pi
Do you guys have a suggestion of a low-power MCU to use for the controls? I am currently thinking about using the propeller, but that isn't exactly low-power. It can draw as much as 300mA, running all 8 cogs at max, and all I/O at max threshold!
|
Re: Battery powered raspberry pi
Quote:
Also standard caveat applies - opinions on CD are just that, and they won't hold any weight during an inspection. |
Re: Battery powered raspberry pi
Quote:
FIRST could alter the rules to disallow custom circuits connected to the COTS device but in doing that you now have a can of worms for the connection between the COTS device and the robot. FIRST could clarify the rules about the COTS device being powered on or off but that invites an issue where the students now have to link the power to a battery or non-battery equipped device to the main breaker. A Spike relay for example driven by the cRIO to comply with other rules, and therefore extending the boot time of the COTS device with the cRIO boot time. FIRST could say that only COTS devices could be connected to the USB ports of a COTS device but then what if you need to cut the cord on the USB camera to route it around inside the robot? If you can't power the custom circuits for a COTS device from the COTS device are you allowed to splice power from the PDB into the USB device referencing a common ground (that could be a risky issue so probably not). Can we connect to opto-isolated devices and power them from the robot mains (there are opti-isolated USB cables). So obviously this opens the door to many other questions that will beg official answers because the window to alter the 2014 documentation is pretty much past closed at this point. If the goal here is to interpret the rules so that there are no sources of power on the robot then that is not possible. Even if the main breaker is disconnected the robot battery and the wires to the main breaker are still very much live. Also, back to an earlier point in this topic, if GDC now says the COTS device can't power accessories like a USB camera then someone needs to ask in the official forums about bootstrapping the power to the COTS device external to the robot with a FRC legal battery before the mains is turned on. I've never seen someone bootstrap power like that on a competition robot and so it should be asked anyway. Quote:
If 28 I/O pins are sourcing or sinking 10mA each that's 280mA. As the circuit designer you completely control that aspect of the external circuit design. So unless you as the circuit designer demand 10mA per I/O pin it won't exist. So what you are really asking is for 8 processors with power management turned off (because there are power saving features in the Parallax Propeller) and windowed static RAM with 28 I/Os that offer a lower maximum current. Keep in mind that the 1st generation Parallax Propeller is 3.3VDC so it's already demonstrating a common solution to powering that device from batteries (reduce the voltages and often the currents follow per Ohm's law). So I would be interested...apples for apples...what is a better choice? 8 of the smallest lowest power MCU you can get plus equivalent circuitry will draw more current max. The only way I can think of to reduce the power further is strip features or further reduce the voltage and at some point you'll loose 5V tolerant I/O and then you'll need level shifters which draw power. |
Re: Battery powered raspberry pi
Yeah. I did point out worst-case scenarios, but I think the Prop may draw 100mA at lease, commutating a boost converter. I'd have to set up an entire core to do a PID loop, when the voltage goes lower than 4.9v, pulse the boost converter. When the voltage gets higher than 5.1v, wait for it to drop to 4.9v, then pulse the boost converter. Running this a couple hundred times a second, with a pretty big Capacitor (5,000uF), that should be a good enough speed to give a very stable output of up to, maybe 5 amps!
The Propeller is quite picky about voltage, and requires an LDO regulator, because of their very high accuracy. Most other microcontrollers, like PICs, and some AVRs have quite some tolerance and will work from 2v7 to 5v! That would make the design process more headache free! Also, the Propeller has no built-in memory, something that even the BASIC stamp has! That means more chips, a higher price and more failure points! It also means that you will have a bigger board size! 28I/O seems quite overkill for a UPS, unless I make this an integrated lighting controller as well :D. But yeah, the Propeller's video generator means that We could have displays on the sides of the robot showing advertisements*, etc. But yeah, that would be unnecessary fluff and would be 100% un-required for most teams! You can already buy integrated lighting controllers, or maybe even individually-controllable ones to control from the cRIO! I am looking for an MCU series that can be programmed in C. I'm in high school, so I don't have the time to learn ten different Assembler languages. Also, around 8-12 I/O would be nice, and a 4 channel 12 or 16-bit ADC would be nice, allowing me to ditch the MCU3204! *Stuff about your team, not the stuff that comes on your TV! |
Re: Battery powered raspberry pi
Quote:
Quote:
In fact you will not get close. Quote:
Even with 2 chips you still need a crystal oscillator and other parts and you might need a reset controller with something like the 8051. As far as failure points you would have to mess up pretty bad to be better off. Unless you use the internal R/C oscillator in a cheap low end 8bit Microchip or Atmel AVR chip. Plus the external program storage means that if you kill that storage you save the MCU itself. Not so big a deal for an experienced user but an issue for the inexperienced or eventually it will become an issue. Plus there's the whole: potentially needing a chip programmer issues you are overlooking unless you use some form of ISP (In-System-Programming). Never mind the potential need for a debugger which the Parallax Propeller to some extent already offers. Quote:
For example an R/C time constant will make your timers temperature sensitive and will drift. Fine for something not timing sensitive but not so good if you need the timing of something predictable. Quote:
Quote:
Quote:
I believe previously you wanted to program in Java but here you go. There are 100 or more other languages or ports available on the Propeller as well but that's neither here nor there. Quote:
Muxed or unmuxed? Muxed A/D inputs let you switch analog inputs but you can't read them all at the same time. Differential inputs allow you to lift the monitored circuit ground. The cRIO analog bumper is single ended, ground is the system ground, and even the cRIO uses an external ADC. |
Re: Battery powered raspberry pi
Quote:
Quote:
Quote:
Quote:
Currently, it seems as though here are some good choices, for the end product. PIC32 PIC PicAxe AVR SX [strikethrough]BASIC Stamp[/strikethrough] Quote:
Quote:
Quote:
[quote]For example an R/C time constant will make your timers temperature sensitive and will drift. Fine for something not timing sensitive but not so good if you need the timing of something predictable. [quote] I won't be using RC because it is hard to get very accurate values quickly. I am going to use an MCP3204, with a Sigma-Delta setup because it offers a very high refresh rate, faster than the Propeller can handle! Quote:
Quote:
Quote:
Quote:
Quote:
|
Re: Battery powered raspberry pi
Quote:
Look up the Microchip and Atmel product selectors on their websites it lists all the current production models and you can filter that list to find the ones that fit what you want. Quote:
Quote:
Quote:
PIC and PICAXE are both 8bit Microchip PICs. One has software in it already. Atmel AVR and the AVR MEGA are 8bit microcontrollers. Atmel XMEGA offer 16bit. Atmel AVR U3 offer 32bit (think PIC32 competitor space). The Parallax Semiconductor (previously Ubicom) chips are 8bit but fast. I have plenty of old SX chips I don't use because anything that needs that sort of RISC speed I probably move too much data to use those chips. Quote:
If you want to design PCB you may as well start learning how to connect parts because you can not avoid it. It's true that putting some things in the chips can reduce board complexity and the number of layers. However there are many examples of where putting something like an ADC in a chip produces a not so great example of an ADC because you can't alter the ADC to deal with system issues. I have 2 LPKF PCB mills. I make 2 layer boards all the time. There are many examples where I am assured that I need 4 layers and even in the RF range it works as long as I respect design practice and shield. PCB designing is a big job and requires a fair degree of knowledge. Do not fear it just learn how to do it because if you make a career out of electronics you'll be doing it again in the future. Quote:
The Propeller development boards come with the USB to serial adapters. You'll be in a situation where you don't have that. ISP is basically serial but usually it's not done these days with a serial port. There are plenty of cheap Chinese knockoffs of the PIC and AVR ISP programmers that work great. Quote:
Quote:
Now for a better question - what are you doing with that data? Quote:
It is an illusion that analog is dead >entirely<. An analog circuit is not subject to illusion of synchronized timing to a clock. True digital has valuable contributions it can make but truly an array of programmable transistor interconnects is an analog construct it does not require a clock even if it can harness it. In fact there was a company that used to make analog programmable circuits. I often see students trying to bang all problems with the same hammer. Anyone telling you as a student in high school you can't handle analog electronics is being dishonest. I was fixing tube televisions by 7th grade. In the context of your comments previously by the time I was in high school I was programming in assembler on 5 platforms and at least 3 of those professionally for parts of projects (at least one of those was a multimillion dollar job). So whatever reason I could handle that having graduated from high school in 1994 it shouldn't have become harder. Quote:
Quote:
Quote:
If that's the case you can't actually read all the inputs at the same time. You have to switch the mux. Quote:
Another good part about knowing your external ADC and it being SPI/I2C is you can pivot that knowledge to another MCU. So let's say you decide the Propeller is a way over the top for a production product. So you leave your existing ADC circuit and put it on the other MCU. That was a big factor in my choice in my helping to propose a 2015 control system. I wanted to know that peripherals were flexible. You could connect them to ARM, Atmel and PIC and connect those all together and the knowledge would transplant (mostly). Building blocks like LEGO instead of a limited COTS product. |
Re: Battery powered raspberry pi
Quote:
The lower voltage won't directly help me. It will help me in the voltage regulator etcetera. I like the multi-core environment much more, the reason why I want to use a Propeller for the host controller. I will dedicate a core to the settings, a core to continuously fetch the ADC and store it's value. There will be a separate core for each regulator, making sure that the current spikes don't cause sudden voltage ups and downs. This is the reason why I will use a semi-large capacitor on the output. I like using an MCU because the frontend will allow me to change settings like the output voltage. If I can calculate how much the voltage will be increased by each switch, the frontend can be used to set exact voltage, for example, 4.9v instead of 5v. Or, if you are wierd and want something like 12v coming from a USB port (Why would anyone want that?!?!), that could be set up! MCUs are just lovely because you can customize them completely and do what you want! I think that you will have problems in interrupt-based coding if you are used to multi-core, vice-versa. It's based on what the programmer has experience with. I didn't know that a PICAxe was a PIC with a bootloader! That's quite interesting, and probably why it is the "PIC"Axe! I program my Propeller in C already. However, for this project, I most-likely will switch to Assembler because of the brisker operation! Also, I know that MCUs aren't the best thing to use. FPGAs will still beat them. However, FPGAs will lack behind building the gates yourself and creating a circuit that does NO processing! MCUs open up a world of simplicity, however, If I program an MCU wrong, I can change the code. However, redesigning a PCB can be a much more expensive process. Compare and contrast this to a 3D printer. These make it possible for anyone to build prototypes without shelling thousands of bucks to a mold. In the other hands, using an injection molding system would mean a higher quality. Just think of an MCU as a 3D printer and an IMS as using transistors to build an autonomous system. Sorry about that. I typically call a Mux by a Multiplexer. You, being the guru at PAsm, probably know what can be done. With 20MIPS, an MCP3204 could be outrun, but I would have to be as good of a programmer as you, which won't happen in all of a sudden. You, being the guru, how would you code that? It seems quite complicated to run an entire set lines of code to initialize the chip, download the data and store the data in the form of a variable. Then, the same core will decide whether to switch or stay closed. Should I do it in a different method? I don't want the chip to double-switch and damage the electronics behind the regulator. I want this to be a measure twice (read:once) switch once, making sure no fatal errors exist. For PCB design, I want to start out with CAD and slowly learn tips and tricks to improve the layout. I'm pretty sure that the CAD software should work on making sure the CAD software will optimize the layout. What PCB layout software do you suggest? I could use Eagle, DipTrace Freeware, Fritzing, or Autodesk Autocad Electrical (My student account gives me access to this. However, it is only non-profit!) The data from the MCP3204 will be so that the Propeller can react to the changes in the stored voltage. Hey, DO you think that it would be wise to have a high-resistance trace between the terminals of the capacitor so that it will self-discharge quickly after the power goes out? That would be a safety measure, though the voltages in the cap bank would be small Just a random (and stupid) idea: Would it be possible to make a transformer on the PCB? The reason why I categorized the PIC32 differently is because they have quite a high max DMIPS rating, and they seem like a different architecture to me. Oh yes, the Chinese stuff! :) I love some of the Chinese stuff because a few products have a high quality and art dirt cheap! What about if I build an ICSP? They aren't too hard to build and I would get some soldering practice, and may even learn how to solder SMT! Would it be better for me to fabricate the PCB myself or to have it fabricated? :DI feel like I almost killed my Pi by writing this post on it:D |
Re: Battery powered raspberry pi
Phew! We've covered a lot of ground in that post.
How about a new tangent? Anybody used a Rpi and the 5Mpixel camera to do anything useful on a FIRST robot? I am thinking FIRST target ranging, but perhaps "find the big red/blue ball" would be useful as well* If so, do tell. Joe J. *it has been a few years since FIRST has had a big ball as a game piece. I suppose it is about time for a game with a big ball - my money is on that or footballs this year |
Re: Battery powered raspberry pi
Though I don't know any team that has done RPi processing, I'll have to say, the RPi is unsuitable for a high speed robot lie in FRC. It's hard to get the info you need with the lag you get. However, it is much faster than cRIO processing and you may get 2-3FPS!
As with color tracking, if you wrote code like the CMUCam5, he RPi would be the killer machine, capable of many times the framerate. Why don't you try the CMUCam? It may be what you're looking for ;) |
| All times are GMT -5. The time now is 22:51. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi